diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..69bf6b6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true +end_of_line = lf +indent_style = space +indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js index e928b86..5a0c99a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,9 +1,9 @@ // This configuration only applies to the package manager root. /** @type {import("eslint").Linter.Config} */ module.exports = { - ignorePatterns: ["apps/**", "packages/**"], - extends: ["@repo/eslint-config/library.js"], - parser: "@typescript-eslint/parser", + ignorePatterns: ['configs/**', 'packages/**', 'tests/**'], + extends: ['@repo/eslint-config/library.js'], + parser: '@typescript-eslint/parser', parserOptions: { project: true, }, diff --git a/.github/actions/setup-turbo/action.yaml b/.github/actions/setup-turbo/action.yaml index b2a20b5..48915aa 100644 --- a/.github/actions/setup-turbo/action.yaml +++ b/.github/actions/setup-turbo/action.yaml @@ -15,7 +15,7 @@ runs: - name: Launch Turbo Remote Cache Server uses: dtinth/setup-github-actions-caching-for-turbo@v1.1.0 with: - cache-prefix: turbogha_${{ runner.os }}_${{ inputs.turbo-cache-key }}_node${{ inputs.node-version }} + cache-prefix: turbogha-${{ runner.os }}-${{ inputs.turbo-cache-key }}-node${{ inputs.node-version }}_ - name: Setup node uses: ./.github/actions/setup-node with: diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml new file mode 100644 index 0000000..09c540a --- /dev/null +++ b/.github/workflows/build-and-test.yaml @@ -0,0 +1,26 @@ +name: build-and-test + +on: + push: + branches: [main] + pull_request_target: + +permissions: read-all + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - if: ${{ github.event_name != 'pull_request_target' }} + uses: actions/checkout@v3 + - if: ${{ github.event_name == 'pull_request_target' }} + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Setup turbo + uses: ./.github/actions/setup-turbo + with: + turbo-cache-key: build-and-test + - name: Run Build + run: pnpm build + diff --git a/.github/workflows/format-and-lint.yaml b/.github/workflows/format-and-lint.yaml index 97cf194..984bd9c 100644 --- a/.github/workflows/format-and-lint.yaml +++ b/.github/workflows/format-and-lint.yaml @@ -21,7 +21,7 @@ jobs: uses: ./.github/actions/setup-node - name: Run Prettier run: pnpm run format:check - + eslint: runs-on: ubuntu-latest steps: @@ -37,4 +37,3 @@ jobs: turbo-cache-key: lint - name: Run ESLint run: pnpm run lint - diff --git a/.gitignore b/.gitignore index 96fab4f..5be7104 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ dist npm-debug.log* yarn-debug.log* yarn-error.log* +.vite-inspect/ # Misc .DS_Store diff --git a/.prettierrc.toml b/.prettierrc.toml new file mode 100644 index 0000000..3c3b765 --- /dev/null +++ b/.prettierrc.toml @@ -0,0 +1,3 @@ +trailingComma = "es5" +semi = true +singleQuote = true diff --git a/configs/eslint-config/library.js b/configs/eslint-config/library.js index c667cd1..8b0c63a 100644 --- a/configs/eslint-config/library.js +++ b/configs/eslint-config/library.js @@ -1,11 +1,11 @@ -const { resolve } = require("node:path"); +const { resolve } = require('node:path'); -const project = resolve(process.cwd(), "tsconfig.json"); +const project = resolve(process.cwd(), 'tsconfig.json'); /** @type {import("eslint").Linter.Config} */ module.exports = { - extends: ["eslint:recommended", "prettier", "eslint-config-turbo"], - plugins: ["only-warn"], + extends: ['eslint:recommended', 'prettier', 'eslint-config-turbo'], + plugins: ['only-warn'], globals: { React: true, JSX: true, @@ -14,7 +14,7 @@ module.exports = { node: true, }, settings: { - "import/resolver": { + 'import/resolver': { typescript: { project, }, @@ -22,13 +22,13 @@ module.exports = { }, ignorePatterns: [ // Ignore dotfiles - ".*.js", - "node_modules/", - "dist/", + '.*.js', + 'node_modules/', + 'dist/', ], overrides: [ { - files: ["*.js?(x)", "*.ts?(x)"], + files: ['*.js?(x)', '*.ts?(x)'], }, ], }; diff --git a/configs/eslint-config/package.json b/configs/eslint-config/package.json index 21ab58d..98319b0 100644 --- a/configs/eslint-config/package.json +++ b/configs/eslint-config/package.json @@ -14,6 +14,6 @@ "eslint-config-prettier": "^9.0.0", "eslint-config-turbo": "^1.10.12", "eslint-plugin-only-warn": "^1.1.0", - "typescript": "^5.2.2" + "typescript": "^5.3.3" } } diff --git a/configs/eslint-config/react-internal.js b/configs/eslint-config/react-internal.js index f56c924..19b5fb8 100644 --- a/configs/eslint-config/react-internal.js +++ b/configs/eslint-config/react-internal.js @@ -1,6 +1,6 @@ -const { resolve } = require("node:path"); +const { resolve } = require('node:path'); -const project = resolve(process.cwd(), "tsconfig.json"); +const project = resolve(process.cwd(), 'tsconfig.json'); /* * This is a custom ESLint configuration for use with @@ -14,8 +14,8 @@ const project = resolve(process.cwd(), "tsconfig.json"); /** @type {import("eslint").Linter.Config} */ module.exports = { - extends: ["eslint:recommended", "prettier", "eslint-config-turbo"], - plugins: ["only-warn"], + extends: ['eslint:recommended', 'prettier', 'eslint-config-turbo'], + plugins: ['only-warn'], globals: { React: true, JSX: true, @@ -24,7 +24,7 @@ module.exports = { browser: true, }, settings: { - "import/resolver": { + 'import/resolver': { typescript: { project, }, @@ -32,12 +32,12 @@ module.exports = { }, ignorePatterns: [ // Ignore dotfiles - ".*.js", - "node_modules/", - "dist/", + '.*.js', + 'node_modules/', + 'dist/', ], overrides: [ // Force ESLint to detect .tsx files - { files: ["*.js?(x)", "*.ts?(x)"] }, + { files: ['*.js?(x)', '*.ts?(x)'] }, ], }; diff --git a/configs/typescript-config/base.json b/configs/typescript-config/base.json index 0f80cfd..d5656c6 100644 --- a/configs/typescript-config/base.json +++ b/configs/typescript-config/base.json @@ -8,12 +8,12 @@ "incremental": false, "isolatedModules": true, "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "NodeNext", + "module": "ESNext", "moduleDetection": "force", - "moduleResolution": "NodeNext", + "moduleResolution": "bundler", "noUncheckedIndexedAccess": true, "resolveJsonModule": true, - "skipLibCheck": true, + "skipLibCheck": false, "strict": true, "target": "ES2022" } diff --git a/configs/typescript-config/react-library.json b/configs/typescript-config/react-library.json index 44924d9..0f26e24 100644 --- a/configs/typescript-config/react-library.json +++ b/configs/typescript-config/react-library.json @@ -3,6 +3,9 @@ "display": "React Library", "extends": "./base.json", "compilerOptions": { - "jsx": "react-jsx" + "jsx": "react-jsx", + "declaration": true, + "declarationMap": true, + "incremental": true } } diff --git a/package.json b/package.json index 04c3344..2339acd 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,31 @@ { "name": "sugarform", "private": true, + "type": "module", "scripts": { "build": "turbo build", "lint": "turbo lint -- --max-warnings=0", - "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "format:check": "prettier --check \"**/*.{ts,tsx,md}\"" + "typecheck": "turbo typecheck", + "format": "prettier --write \"**/*.{js,jsx,ts,tsx,md,json}\"", + "format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,md,json}\"" }, "devDependencies": { "@manypkg/cli": "^0.21.1", "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", + "@swc/core": "^1.3.100", + "@types/multi-stage-sourcemap": "^0.3.4", + "@types/node": "^20.10.4", + "consola": "^3.2.3", + "esbuild": "^0.19.9", + "esbuild-node-externals": "^1.11.0", + "execa": "^8.0.1", + "multi-stage-sourcemap": "^0.3.1", "prettier": "^3.1.0", - "turbo": "latest" + "source-map": "^0.7.4", + "tsx": "^4.6.2", + "turbo": "latest", + "typescript": "^5.3.3" }, "packageManager": "pnpm@8.9.0", "engines": { @@ -21,7 +34,8 @@ "manypkg": { "ignoredRules": [ "INTERNAL_MISMATCH", - "ROOT_HAS_DEV_DEPENDENCIES" + "ROOT_HAS_DEV_DEPENDENCIES", + "INVALID_DEV_AND_PEER_DEPENDENCY_RELATIONSHIP" ] } } diff --git a/packages/core/.eslintrc.cjs b/packages/core/.eslintrc.cjs new file mode 100644 index 0000000..1f2263b --- /dev/null +++ b/packages/core/.eslintrc.cjs @@ -0,0 +1,9 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ['@repo/eslint-config/library.js'], + parser: '@typescript-eslint/parser', + parserOptions: { + project: './tsconfig.json', + }, +}; diff --git a/packages/core/build.ts b/packages/core/build.ts new file mode 100644 index 0000000..22f0e2a --- /dev/null +++ b/packages/core/build.ts @@ -0,0 +1,187 @@ +import { consola } from 'consola'; +import { basename, join } from 'path'; +import type { RawSourceMap } from 'source-map'; +import { mkdir, readFile, rm, writeFile } from 'fs/promises'; +import { transform, minify } from '@swc/core'; +import { build } from 'esbuild'; +import { execa } from 'execa'; +import { nodeExternalsPlugin } from 'esbuild-node-externals'; +import packageJson from './package.json' assert { type: 'json' }; +import { transfer } from 'multi-stage-sourcemap'; +import { stderr, stdout } from 'process'; + +const entry = './src/lib.ts'; +const tsbuildinfo = 'node_modules/.cache/tsbuildinfo.json'; + +consola.start('Building @sugarform/core...'); + +consola.info(`entrypoint: ${entry}`); + +await rm('./dist', { recursive: true, force: true }); +consola.success('Cleaned up dist folder.'); + +await mkdir('./dist', { recursive: true }); +consola.success('Created dist folder.'); + +consola.log(''); +const bundled = bundle(); +await Promise.all([bundled, pipeline('esm'), pipeline('cjs'), types()]); +consola.log(''); +consola.success('All tasks completed.'); +consola.log(''); + +async function bundle() { + consola.start(`Bundling...`); + const { outputFiles } = await build({ + entryPoints: [entry], + sourcemap: 'external', + target: 'esnext', + bundle: true, + write: false, + platform: 'neutral', + outfile: './index.ts', + jsx: 'preserve', + plugins: [ + nodeExternalsPlugin({ + devDependencies: false, + }), + ], + }); + const sourcemap = outputFiles.find((v) => v.path.endsWith('index.ts.map')) + ?.text; + const source = outputFiles.find((v) => v.path.endsWith('index.ts'))?.text; + + if (sourcemap === undefined) { + consola.error('Build result of esbuild did not contain sourcemap!'); + process.exit(1); + } + if (source === undefined) { + consola.error('Build result of esbuild did not contain source!'); + process.exit(1); + } + consola.success( + `Bundled by esbuild! (${toKiloBytes(getStringBytes(source))})` + ); + return { sourcemap, source }; +} + +async function types() { + const output = join(packageJson.exports['.'].types); + consola.start('Building types...'); + + const preserved_buildinfo = await readFile(tsbuildinfo).catch(() => null); + await execa('tsc', ['--project', 'tsconfig.types.json']) + .pipeStdout?.(stdout) + .pipeStderr?.(stderr); + if (preserved_buildinfo !== null) { + consola.info('tsbuildinfo was changed. reverting...'); + await writeFile(tsbuildinfo, preserved_buildinfo); + } else { + consola.info('tsbuildinfo was generated. removing...'); + await rm(tsbuildinfo); + } + + consola.success(`Done! (${output})`); +} + +async function pipeline(format: 'esm' | 'cjs') { + const code = await bundled; + + consola.start(`[${format}] Building...`); + const output = join( + format === 'esm' + ? packageJson.exports['.'].import + : packageJson.exports['.'].require + ); + const sourcemap_output = `${output}.map`; + + const transformed = await transform(code.source, { + sourceMaps: true, + isModule: true, + minify: true, + module: { + type: format === 'esm' ? 'es6' : 'commonjs', + }, + jsc: { + parser: { + syntax: 'typescript', + tsx: true, + }, + target: 'es2017', + loose: false, + }, + }); + + const transform_map = transformed.map; + if (transform_map === undefined) { + consola.error( + `[${format}] Transform result of SWC did not contain source!` + ); + process.exit(1); + } + + const minified = await minify(transformed.code, { + compress: {}, + sourceMap: true, + mangle: false, + module: true, + }); + + const minify_map = minified.map; + if (minify_map === undefined) { + consola.error(`[${format}] Minify result of SWC did not contain source!`); + process.exit(1); + } + + const size = { + unminified: getStringBytes(transformed.code), + minified: getStringBytes(minified.code), + }; + + consola.info( + `[${format}] SWC minified. (${toKiloBytes( + size.unminified + )} -> ${toKiloBytes(size.minified)}, -${Math.round( + (1 - size.minified / size.unminified) * 100 + )}%)` + ); + + await writeFile( + output, + minified.code + `\n//# sourceMappingURL=${basename(sourcemap_output)}` + ); + consola.success(`[${format}] Done! (${output})`); + + consola.start(`[${format}] Merging sourcemaps...`); + const swc_map = transfer({ + fromSourceMap: minify_map, + toSourceMap: transform_map, + }); + const sourcemap = transfer({ + fromSourceMap: swc_map, + toSourceMap: (await bundled).sourcemap, + }); + + const relative_sourcemap = JSON.parse(sourcemap) as RawSourceMap; + relative_sourcemap.sourcesContent = undefined; + relative_sourcemap.sourceRoot = ''; + relative_sourcemap.sources = relative_sourcemap.sources.map((v) => { + if (!v.startsWith('src')) { + consola.error( + `[${format}] Source path ${v} is including out of ./src folder!` + ); + process.exit(1); + } + return `../${v}`; + }); + + await writeFile(sourcemap_output, JSON.stringify(relative_sourcemap)); + consola.success(`[${format}] Done! (${sourcemap_output})`); +} + +function getStringBytes(str: string) { + return Buffer.byteLength(str, 'utf-8'); +} +function toKiloBytes(bytes: number) { + return `${Math.round(bytes / 10) / 100}kB`; +} diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..ce70a7b --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,47 @@ +{ + "name": "@sugarform/core", + "version": "0.1.0", + "description": "Sugarform is Uncontrolled, Growth-ready, And Reusable form framework of react.", + "type": "module", + "repository": { + "type": "git", + "url": "git+https://github.com/sugarform-dev/sugarform.git" + }, + "author": "aspulse ", + "keywords": [ + "react", + "front-end" + ], + "main": "dist/lib.cjs", + "module": "dist/lib.js", + "types": "dist/lib.d.ts", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/lib.d.ts", + "require": "./dist/lib.cjs", + "import": "./dist/lib.js" + } + }, + "files": [ + "src", + "dist" + ], + "scripts": { + "build": "tsx build.ts", + "typecheck": "tsc --noEmit --composite false", + "lint": "eslint ." + }, + "peerDependencies": { + "@types/react": "^18.0.0", + "react": "^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/core/src/lib.ts b/packages/core/src/lib.ts new file mode 100644 index 0000000..43b86d4 --- /dev/null +++ b/packages/core/src/lib.ts @@ -0,0 +1,5 @@ +export { bare } from './util'; + +export function hello(a: string): string { + return 'Hello, world!' + a; +} diff --git a/packages/core/src/util.tsx b/packages/core/src/util.tsx new file mode 100644 index 0000000..09deaf6 --- /dev/null +++ b/packages/core/src/util.tsx @@ -0,0 +1,3 @@ +export function bare() { + return <>; +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..5561a94 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@repo/typescript-config/react-library.json", + "compilerOptions": { + "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" + }, + "include": ["../**/*.ts", "../**/*.tsx", ".eslintrc.cjs"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/core/tsconfig.types.json b/packages/core/tsconfig.types.json new file mode 100644 index 0000000..43ba6f5 --- /dev/null +++ b/packages/core/tsconfig.types.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "emitDeclarationOnly": true + }, + "files": ["./src/lib.ts"], + "include": [] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0807459..5d4e47c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,24 +17,57 @@ importers: '@repo/typescript-config': specifier: workspace:* version: link:configs/typescript-config + '@swc/core': + specifier: ^1.3.100 + version: 1.3.100 + '@types/multi-stage-sourcemap': + specifier: ^0.3.4 + version: 0.3.4 + '@types/node': + specifier: ^20.10.4 + version: 20.10.4 + consola: + specifier: ^3.2.3 + version: 3.2.3 + esbuild: + specifier: ^0.19.9 + version: 0.19.9 + esbuild-node-externals: + specifier: ^1.11.0 + version: 1.11.0(esbuild@0.19.9) + execa: + specifier: ^8.0.1 + version: 8.0.1 + multi-stage-sourcemap: + specifier: ^0.3.1 + version: 0.3.1 prettier: specifier: ^3.1.0 version: 3.1.0 + source-map: + specifier: ^0.7.4 + version: 0.7.4 + tsx: + specifier: ^4.6.2 + version: 4.6.2 turbo: specifier: latest version: 1.11.1 + typescript: + specifier: ^5.3.3 + version: 5.3.3 configs/eslint-config: devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.11.0(eslint@8.54.0)(typescript@5.2.2) + version: 6.11.0(eslint@8.54.0)(typescript@5.3.3) '@vercel/style-guide': specifier: ^5.1.0 - version: 5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.2.2) + version: 5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.3) eslint-config-prettier: specifier: ^9.0.0 version: 9.0.0(eslint@8.54.0) @@ -45,11 +78,20 @@ importers: specifier: ^1.1.0 version: 1.1.0 typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.3 + version: 5.3.3 configs/typescript-config: {} + packages/core: + dependencies: + '@types/react': + specifier: ^18.0.0 + version: 18.2.43 + react: + specifier: ^18.0.0 + version: 18.2.0 + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -277,6 +319,402 @@ packages: to-fast-properties: 2.0.0 dev: true + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.9: + resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.9: + resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.9: + resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.9: + resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.9: + resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.9: + resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.9: + resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.9: + resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.9: + resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.9: + resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.9: + resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.9: + resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.9: + resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.9: + resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.9: + resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.9: + resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.9: + resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.9: + resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.9: + resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.9: + resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.9: + resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.9: + resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -493,6 +931,119 @@ packages: engines: {node: '>=14.16'} dev: true + /@swc/core-darwin-arm64@1.3.100: + resolution: {integrity: sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.100: + resolution: {integrity: sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.100: + resolution: {integrity: sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.100: + resolution: {integrity: sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.100: + resolution: {integrity: sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.100: + resolution: {integrity: sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.100: + resolution: {integrity: sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.100: + resolution: {integrity: sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.100: + resolution: {integrity: sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.100: + resolution: {integrity: sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.2 + '@swc/types': 0.1.5 + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.100 + '@swc/core-darwin-x64': 1.3.100 + '@swc/core-linux-arm64-gnu': 1.3.100 + '@swc/core-linux-arm64-musl': 1.3.100 + '@swc/core-linux-x64-gnu': 1.3.100 + '@swc/core-linux-x64-musl': 1.3.100 + '@swc/core-win32-arm64-msvc': 1.3.100 + '@swc/core-win32-ia32-msvc': 1.3.100 + '@swc/core-win32-x64-msvc': 1.3.100 + dev: true + + /@swc/counter@0.1.2: + resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + dev: true + + /@swc/types@0.1.5: + resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + dev: true + /@szmarczak/http-timer@5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -512,10 +1063,38 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/multi-stage-sourcemap@0.3.4: + resolution: {integrity: sha512-gmfq/5T1tLwpVlD63RqllRqz8xMdasOZPkuAndu8eW/zJVPwEpDQVqq+oF/Z9Q7x7htHlMiJ5ilmonaxrZdpCA==} + dependencies: + source-map: 0.7.4 + dev: true + + /@types/node@20.10.4: + resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + dev: false + + /@types/react@18.2.43: + resolution: {integrity: sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 + dev: false + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + dev: false + /@types/semver@6.2.7: resolution: {integrity: sha512-blctEWbzUFzQx799RZjzzIdBJOXmE37YYEyDtKkx5Dg+V7o/zyyAxLPiI98A2jdTtDgxZleMdfV+7p8WbRJ1OQ==} dev: true @@ -524,7 +1103,7 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -536,10 +1115,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.11.0 - '@typescript-eslint/type-utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.11.0(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 eslint: 8.54.0 @@ -547,13 +1126,13 @@ packages: ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.2(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.2(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -565,11 +1144,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 eslint: 8.54.0 - typescript: 5.2.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -590,7 +1169,7 @@ packages: '@typescript-eslint/visitor-keys': 6.11.0 dev: true - /@typescript-eslint/type-utils@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.11.0(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -600,12 +1179,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.11.0(eslint@8.54.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.54.0 - ts-api-utils: 1.0.2(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.2(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -620,7 +1199,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -635,13 +1214,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.3.3): resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -656,13 +1235,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.2(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.2(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -673,7 +1252,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) eslint: 8.54.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -682,7 +1261,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.11.0(eslint@8.54.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.11.0(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -693,7 +1272,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -721,7 +1300,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vercel/style-guide@5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.2.2): + /@vercel/style-guide@5.1.0(eslint@8.54.0)(prettier@3.1.0)(typescript@5.3.3): resolution: {integrity: sha512-L9lWYePIycm7vIOjDLj+mmMdmmPkW3/brHjgq+nJdvMOrL7Hdk/19w8X583HYSk0vWsq494o5Qkh6x5+uW7ljg==} engines: {node: '>=16'} peerDependencies: @@ -742,25 +1321,25 @@ packages: '@babel/core': 7.23.3 '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.54.0) '@rushstack/eslint-patch': 1.5.1 - '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.3.3) eslint: 8.54.0 eslint-config-prettier: 9.0.0(eslint@8.54.0) eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.29.0) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.54.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.54.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.3.3) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.54.0) eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.54.0) eslint-plugin-react: 7.33.2(eslint@8.54.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0) - eslint-plugin-testing-library: 6.1.2(eslint@8.54.0)(typescript@5.2.2) + eslint-plugin-testing-library: 6.1.2(eslint@8.54.0)(typescript@5.3.3) eslint-plugin-tsdoc: 0.2.17 eslint-plugin-unicorn: 48.0.1(eslint@8.54.0) prettier: 3.1.0 prettier-plugin-packagejson: 2.4.6(prettier@3.1.0) - typescript: 5.2.2 + typescript: 5.3.3 transitivePeerDependencies: - eslint-import-resolver-node - eslint-import-resolver-webpack @@ -791,6 +1370,11 @@ packages: uri-js: 4.4.1 dev: true + /amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1082,6 +1666,11 @@ packages: proto-list: 1.2.4 dev: true + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -1103,6 +1692,10 @@ packages: which: 2.0.2 dev: true + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: false + /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true @@ -1348,6 +1941,77 @@ packages: is-symbol: 1.0.4 dev: true + /esbuild-node-externals@1.11.0(esbuild@0.19.9): + resolution: {integrity: sha512-ceISJR4U9ejE5ZShoD9HTHO0ClZ8Va7gkkBgejjYMo6/Kn7YDEYvt7YSiLgxor4xb47O7PTpgSoRNtRlV9WXKw==} + engines: {node: '>=12'} + peerDependencies: + esbuild: 0.12 - 0.19 + dependencies: + esbuild: 0.19.9 + find-up: 5.0.0 + tslib: 2.6.2 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.9 + '@esbuild/android-arm64': 0.19.9 + '@esbuild/android-x64': 0.19.9 + '@esbuild/darwin-arm64': 0.19.9 + '@esbuild/darwin-x64': 0.19.9 + '@esbuild/freebsd-arm64': 0.19.9 + '@esbuild/freebsd-x64': 0.19.9 + '@esbuild/linux-arm': 0.19.9 + '@esbuild/linux-arm64': 0.19.9 + '@esbuild/linux-ia32': 0.19.9 + '@esbuild/linux-loong64': 0.19.9 + '@esbuild/linux-mips64el': 0.19.9 + '@esbuild/linux-ppc64': 0.19.9 + '@esbuild/linux-riscv64': 0.19.9 + '@esbuild/linux-s390x': 0.19.9 + '@esbuild/linux-x64': 0.19.9 + '@esbuild/netbsd-x64': 0.19.9 + '@esbuild/openbsd-x64': 0.19.9 + '@esbuild/sunos-x64': 0.19.9 + '@esbuild/win32-arm64': 0.19.9 + '@esbuild/win32-ia32': 0.19.9 + '@esbuild/win32-x64': 0.19.9 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -1444,7 +2108,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 @@ -1474,7 +2138,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1499,7 +2163,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2): + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -1512,8 +2176,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.54.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.3) eslint: 8.54.0 transitivePeerDependencies: - supports-color @@ -1560,7 +2224,7 @@ packages: optional: true dependencies: eslint: 8.54.0 - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.2.2) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.54.0)(typescript@5.3.3) dev: true /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): @@ -1597,13 +2261,13 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-testing-library@6.1.2(eslint@8.54.0)(typescript@5.2.2): + /eslint-plugin-testing-library@6.1.2(eslint@8.54.0)(typescript@5.3.3): resolution: {integrity: sha512-Ra16FeBlonfbScOIdZEta9o+OxtwDqiUt+4UCpIM42TuatyLdtfU/SbwnIzPcAszrbl58PGwyZ9YGU9dwIo/tA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.54.0)(typescript@5.3.3) eslint: 8.54.0 transitivePeerDependencies: - supports-color @@ -1797,6 +2461,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1892,6 +2571,14 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true @@ -1934,6 +2621,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -2124,6 +2816,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -2402,7 +3099,6 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -2537,7 +3233,6 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 - dev: true /lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} @@ -2620,6 +3315,12 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /multi-stage-sourcemap@0.3.1: + resolution: {integrity: sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==} + dependencies: + source-map: 0.1.43 + dev: true + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -2956,6 +3657,13 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -3204,6 +3912,11 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3231,6 +3944,18 @@ packages: sort-object-keys: 1.1.3 dev: true + /source-map@0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} + engines: {node: '>=0.8.0'} + dependencies: + amdefine: 1.0.1 + dev: true + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: @@ -3395,13 +4120,13 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.0.2(typescript@5.2.2): + /ts-api-utils@1.0.2(typescript@5.3.3): resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true /tsconfig-paths@3.14.2: @@ -3421,14 +4146,25 @@ packages: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true - /tsutils@3.21.0(typescript@5.2.2): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.2.2 + typescript: 5.3.3 + dev: true + + /tsx@4.6.2: + resolution: {integrity: sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.18.20 + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 dev: true /turbo-darwin-64@1.11.1: @@ -3551,8 +4287,8 @@ packages: is-typed-array: 1.1.12 dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -3566,6 +4302,10 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} diff --git a/turbo.json b/turbo.json index 7c0608f..510a342 100644 --- a/turbo.json +++ b/turbo.json @@ -2,10 +2,17 @@ "$schema": "https://turbo.build/schema.json", "globalDependencies": ["**/.env.*local"], "pipeline": { + "topo": { + "dependsOn": ["^topo"] + }, "build": { - "dependsOn": ["^build"], - "outputs": [".next/**", "!.next/cache/**"] + "dependsOn": ["typecheck", "^build"], + "outputs": ["dist/**"] }, - "lint": {} + "lint": {}, + "typecheck": { + "dependsOn": ["^topo", "^build"], + "outputs": ["node_modules/.cache/tsbuildinfo.json"] + } } }