From b1673232992b7b35c3516032d3467b0cf04a98ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20UB?= <22903142+adrian-ub@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:23:41 -0500 Subject: [PATCH] initial project --- .changeset/README.md | 8 + .changeset/config.json | 14 + .../DISCUSSION_TEMPLATE/blocks-request.yml | 25 + .github/ISSUE_TEMPLATE/bug_report.yml | 85 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 55 + .github/changeset-version.js | 12 + .github/version-script-beta.js | 21 + .github/version-script-next.js | 21 + .github/workflows/ci.yml | 45 + .github/workflows/issue-stale.yml | 26 + .github/workflows/prerelease-comment.yml | 65 + .github/workflows/prerelease.yml | 60 + .github/workflows/release.yml | 53 + .gitignore | 42 + .npmrc | 2 + .verdaccio/config.yml | 28 + .vscode/extensions.json | 6 + LICENSE.md | 21 + README.md | 17 + apps/www/.gitignore | 21 + apps/www/.vscode/extensions.json | 4 + apps/www/.vscode/launch.json | 11 + apps/www/astro.config.mjs | 32 + apps/www/package.json | 46 + apps/www/public/og.jpg | Bin 0 -> 299278 bytes apps/www/public/schema.json | 47 + apps/www/src/assets/logo-dark.svg | 8 + apps/www/src/assets/logo-light.svg | 8 + apps/www/src/content/config.ts | 6 + apps/www/src/content/docs/docs/index.mdx | 14 + apps/www/src/content/docs/index.mdx | 16 + apps/www/src/env.d.ts | 2 + apps/www/src/lib/utils.ts | 6 + .../src/pages/registry/colors/[base].json.ts | 127 + .../pages/registry/colors/index/index.json.ts | 5 + .../src/pages/registry/index/index.json.ts | 7 + .../registry/styles/[style]/[name].json.ts | 59 + .../pages/registry/styles/index/index.json.ts | 5 + apps/www/src/pages/registry/themes.css.ts | 86 + .../src/pages/registry/themes/[theme].json.ts | 41 + apps/www/src/registry/blocks.ts | 3 + apps/www/src/registry/charts.ts | 3 + apps/www/src/registry/colors.ts | 1609 ++ .../registry/default/ui/button.directive.ts | 64 + apps/www/src/registry/examples.ts | 3 + .../registry/new-york/ui/button.directive.ts | 65 + apps/www/src/registry/registry.ts | 7 + apps/www/src/registry/schema.ts | 58 + apps/www/src/registry/styles.ts | 12 + apps/www/src/registry/themes.ts | 756 + apps/www/src/registry/ui.ts | 9 + apps/www/src/tailwind.css | 8 + apps/www/tailwind.config.mjs | 16 + apps/www/tsconfig.app.json | 34 + apps/www/tsconfig.json | 9 + nx.json | 10 + package.json | 21 + packages/cli/.gitignore | 3 + packages/cli/CHANGELOG.md | 1 + packages/cli/README.md | 43 + packages/cli/package.json | 81 + packages/cli/src/commands/add.ts | 218 + packages/cli/src/commands/diff.ts | 196 + packages/cli/src/commands/init.ts | 399 + packages/cli/src/index.ts | 29 + packages/cli/src/utils/get-config.ts | 103 + packages/cli/src/utils/get-package-info.ts | 9 + packages/cli/src/utils/get-package-manager.ts | 13 + packages/cli/src/utils/get-project-info.ts | 194 + packages/cli/src/utils/handle-error.ts | 16 + packages/cli/src/utils/logger.ts | 19 + packages/cli/src/utils/registry/index.ts | 155 + packages/cli/src/utils/registry/schema.ts | 44 + packages/cli/src/utils/resolve-import.ts | 13 + packages/cli/src/utils/templates.ts | 253 + packages/cli/src/utils/transformers/index.ts | 58 + .../utils/transformers/transform-css-vars.ts | 183 + .../utils/transformers/transform-import.ts | 38 + .../src/utils/transformers/transform-jsx.ts | 95 + .../src/utils/transformers/transform-rsc.ts | 16 + .../utils/transformers/transform-tw-prefix.ts | 201 + packages/cli/test/commands/init.test.ts | 160 + .../cli/test/fixtures/colors/neutral.json | 92 + packages/cli/test/fixtures/colors/slate.json | 92 + packages/cli/test/fixtures/colors/stone.json | 92 + packages/cli/test/fixtures/colors/zinc.json | 92 + .../test/fixtures/config-full/components.json | 15 + .../test/fixtures/config-full/package.json | 7 + .../test/fixtures/config-full/tsconfig.json | 33 + .../fixtures/config-invalid/components.json | 5 + .../test/fixtures/config-invalid/package.json | 7 + .../test/fixtures/config-jsx/components.json | 14 + .../test/fixtures/config-jsx/jsconfig.json | 7 + .../cli/test/fixtures/config-jsx/package.json | 7 + .../test/fixtures/config-none/package.json | 7 + .../fixtures/config-partial/components.json | 13 + .../test/fixtures/config-partial/package.json | 7 + .../fixtures/config-partial/tsconfig.json | 9 + .../test/fixtures/config-ui/components.json | 16 + .../cli/test/fixtures/config-ui/package.json | 7 + .../cli/test/fixtures/config-ui/tsconfig.json | 33 + .../test/fixtures/next-app-js/app/favicon.ico | Bin 0 -> 25931 bytes .../test/fixtures/next-app-js/app/globals.css | 27 + .../test/fixtures/next-app-js/app/layout.js | 17 + .../cli/test/fixtures/next-app-js/app/page.js | 113 + .../test/fixtures/next-app-js/jsconfig.json | 7 + .../test/fixtures/next-app-js/next.config.js | 4 + .../test/fixtures/next-app-js/package.json | 23 + .../fixtures/next-app-js/postcss.config.js | 6 + .../fixtures/next-app-js/tailwind.config.js | 18 + .../test/fixtures/next-app-src/next-env.d.ts | 5 + .../test/fixtures/next-app-src/next.config.js | 4 + .../cli/test/fixtures/next-app-src/other.css | 3 + .../test/fixtures/next-app-src/package.json | 11 + .../test/fixtures/next-app-src/pnpm-lock.yaml | 2620 +++ .../fixtures/next-app-src/postcss.config.js | 6 + .../fixtures/next-app-src/src/app/favicon.ico | Bin 0 -> 39535 bytes .../fixtures/next-app-src/src/app/layout.tsx | 13 + .../fixtures/next-app-src/src/app/other.css | 3 + .../fixtures/next-app-src/src/app/page.tsx | 113 + .../fixtures/next-app-src/src/app/styles.css | 27 + .../test/fixtures/next-app-src/src/other.css | 3 + .../fixtures/next-app-src/tailwind.config.ts | 21 + .../test/fixtures/next-app-src/tsconfig.json | 27 + .../test/fixtures/next-app/app/favicon.ico | Bin 0 -> 25931 bytes .../test/fixtures/next-app/app/globals.css | 27 + .../cli/test/fixtures/next-app/app/layout.tsx | 22 + .../cli/test/fixtures/next-app/app/other.css | 3 + .../cli/test/fixtures/next-app/app/page.tsx | 113 + .../cli/test/fixtures/next-app/next-env.d.ts | 5 + .../cli/test/fixtures/next-app/next.config.js | 4 + .../cli/test/fixtures/next-app/package.json | 11 + .../cli/test/fixtures/next-app/pnpm-lock.yaml | 2620 +++ .../test/fixtures/next-app/postcss.config.js | 6 + .../test/fixtures/next-app/tailwind.config.ts | 21 + .../cli/test/fixtures/next-app/tsconfig.json | 27 + .../fixtures/next-pages-src/next-env.d.ts | 5 + .../fixtures/next-pages-src/next.config.js | 6 + .../test/fixtures/next-pages-src/other.css | 3 + .../test/fixtures/next-pages-src/package.json | 11 + .../fixtures/next-pages-src/pnpm-lock.yaml | 2620 +++ .../fixtures/next-pages-src/postcss.config.js | 6 + .../fixtures/next-pages-src/src/other.css | 3 + .../next-pages-src/src/pages/_app.tsx | 6 + .../next-pages-src/src/pages/_document.tsx | 13 + .../next-pages-src/src/pages/api/hello.ts | 13 + .../next-pages-src/src/pages/index.tsx | 118 + .../next-pages-src/src/pages/other.css | 3 + .../next-pages-src/src/styles/globals.css | 27 + .../next-pages-src/src/styles/other.css | 3 + .../next-pages-src/tailwind.config.ts | 21 + .../fixtures/next-pages-src/tsconfig.json | 22 + .../test/fixtures/next-pages/next.config.js | 6 + .../cli/test/fixtures/next-pages/package.json | 11 + .../test/fixtures/next-pages/pages/_app.tsx | 6 + .../fixtures/next-pages/pages/_document.tsx | 13 + .../fixtures/next-pages/pages/api/hello.ts | 13 + .../test/fixtures/next-pages/pages/index.tsx | 118 + .../test/fixtures/next-pages/pages/other.css | 3 + .../test/fixtures/next-pages/pnpm-lock.yaml | 2620 +++ .../fixtures/next-pages/postcss.config.js | 6 + .../fixtures/next-pages/styles/globals.css | 27 + .../test/fixtures/next-pages/styles/other.css | 3 + .../fixtures/next-pages/tailwind.config.ts | 21 + .../test/fixtures/next-pages/tsconfig.json | 22 + .../cli/test/fixtures/next-src/.gitignore | 35 + .../cli/test/fixtures/next-src/next.config.js | 4 + .../cli/test/fixtures/next-src/package.json | 11 + .../fixtures/next-src/src/app/globals.css | 27 + .../test/fixtures/next-src/tailwind.config.js | 18 + .../cli/test/fixtures/next-src/tsconfig.json | 28 + packages/cli/test/fixtures/next/.gitignore | 35 + .../cli/test/fixtures/next/app/globals.css | 27 + .../cli/test/fixtures/next/next.config.js | 4 + packages/cli/test/fixtures/next/package.json | 25 + .../cli/test/fixtures/next/pnpm-lock.yaml | 1 + .../cli/test/fixtures/next/tailwind.config.js | 76 + packages/cli/test/fixtures/next/tsconfig.json | 28 + .../cli/test/fixtures/project-bun/bun.lockb | Bin 0 -> 1280 bytes .../test/fixtures/project-bun/package.json | 7 + .../fixtures/project-npm/package-lock.json | 13 + .../test/fixtures/project-npm/package.json | 7 + .../test/fixtures/project-pnpm/package.json | 7 + .../test/fixtures/project-pnpm/pnpm-lock.yaml | 1 + .../test/fixtures/project-src/components.json | 7 + .../fixtures/project-src/package-lock.json | 13 + .../test/fixtures/project-src/package.json | 5 + .../test/fixtures/project-yarn/package.json | 7 + .../cli/test/fixtures/project-yarn/yarn.lock | 4 + .../cli/test/fixtures/project/components.json | 8 + .../cli/test/fixtures/project/package.json | 5 + .../cli/test/fixtures/project/pnpm-lock.yaml | 1 + .../cli/test/fixtures/t3-app/.eslintrc.cjs | 35 + packages/cli/test/fixtures/t3-app/.gitignore | 42 + .../cli/test/fixtures/t3-app/next.config.mjs | 22 + .../cli/test/fixtures/t3-app/package.json | 38 + packages/cli/test/fixtures/t3-app/src/env.mjs | 35 + .../test/fixtures/t3-app/src/pages/_app.tsx | 8 + .../test/fixtures/t3-app/src/pages/index.tsx | 48 + .../fixtures/t3-app/src/styles/globals.css | 3 + .../test/fixtures/t3-app/tailwind.config.ts | 9 + .../cli/test/fixtures/t3-app/tsconfig.json | 33 + .../test/fixtures/with-base-url/tsconfig.json | 9 + .../fixtures/without-base-url/tsconfig.json | 9 + .../transform-css-vars.test.ts.snap | 33 + .../transform-import.test.ts.snap | 60 + .../__snapshots__/transform-rsc.test.ts.snap | 31 + .../transform-tw-prefix.test.ts.snap | 118 + .../test/utils/apply-color-mapping.test.ts | 84 + packages/cli/test/utils/apply-prefix.test.ts | 42 + packages/cli/test/utils/get-config.test.ts | 166 + .../test/utils/get-item-target-path.test.ts | 39 + .../test/utils/get-package-manager.test.ts | 26 + .../cli/test/utils/get-project-type.test.ts | 37 + .../test/utils/get-tailwind-css-file.test.ts | 33 + .../utils/get-ts-config-alias-prefix.test.ts | 35 + .../test/utils/is-typescript-project.test.ts | 37 + packages/cli/test/utils/registry.test.ts | 70 + .../cli/test/utils/resolve-import.test.ts | 81 + .../cli/test/utils/transform-css-vars.test.ts | 98 + .../cli/test/utils/transform-import.test.ts | 120 + packages/cli/test/utils/transform-rsc.test.ts | 65 + .../test/utils/transform-tw-prefix.test.ts | 82 + packages/cli/tsconfig.json | 13 + packages/cli/tsup.config.ts | 12 + pnpm-lock.yaml | 13754 ++++++++++++++++ pnpm-workspace.yaml | 3 + project.json | 14 + tsconfig.base.json | 22 + 230 files changed, 34393 insertions(+) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100644 .github/DISCUSSION_TEMPLATE/blocks-request.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/changeset-version.js create mode 100644 .github/version-script-beta.js create mode 100644 .github/version-script-next.js create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/issue-stale.yml create mode 100644 .github/workflows/prerelease-comment.yml create mode 100644 .github/workflows/prerelease.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .verdaccio/config.yml create mode 100644 .vscode/extensions.json create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 apps/www/.gitignore create mode 100644 apps/www/.vscode/extensions.json create mode 100644 apps/www/.vscode/launch.json create mode 100644 apps/www/astro.config.mjs create mode 100644 apps/www/package.json create mode 100644 apps/www/public/og.jpg create mode 100644 apps/www/public/schema.json create mode 100644 apps/www/src/assets/logo-dark.svg create mode 100644 apps/www/src/assets/logo-light.svg create mode 100644 apps/www/src/content/config.ts create mode 100644 apps/www/src/content/docs/docs/index.mdx create mode 100644 apps/www/src/content/docs/index.mdx create mode 100644 apps/www/src/env.d.ts create mode 100644 apps/www/src/lib/utils.ts create mode 100644 apps/www/src/pages/registry/colors/[base].json.ts create mode 100644 apps/www/src/pages/registry/colors/index/index.json.ts create mode 100644 apps/www/src/pages/registry/index/index.json.ts create mode 100644 apps/www/src/pages/registry/styles/[style]/[name].json.ts create mode 100644 apps/www/src/pages/registry/styles/index/index.json.ts create mode 100644 apps/www/src/pages/registry/themes.css.ts create mode 100644 apps/www/src/pages/registry/themes/[theme].json.ts create mode 100644 apps/www/src/registry/blocks.ts create mode 100644 apps/www/src/registry/charts.ts create mode 100644 apps/www/src/registry/colors.ts create mode 100644 apps/www/src/registry/default/ui/button.directive.ts create mode 100644 apps/www/src/registry/examples.ts create mode 100644 apps/www/src/registry/new-york/ui/button.directive.ts create mode 100644 apps/www/src/registry/registry.ts create mode 100644 apps/www/src/registry/schema.ts create mode 100644 apps/www/src/registry/styles.ts create mode 100644 apps/www/src/registry/themes.ts create mode 100644 apps/www/src/registry/ui.ts create mode 100644 apps/www/src/tailwind.css create mode 100644 apps/www/tailwind.config.mjs create mode 100644 apps/www/tsconfig.app.json create mode 100644 apps/www/tsconfig.json create mode 100644 nx.json create mode 100644 package.json create mode 100644 packages/cli/.gitignore create mode 100644 packages/cli/CHANGELOG.md create mode 100644 packages/cli/README.md create mode 100644 packages/cli/package.json create mode 100644 packages/cli/src/commands/add.ts create mode 100644 packages/cli/src/commands/diff.ts create mode 100644 packages/cli/src/commands/init.ts create mode 100644 packages/cli/src/index.ts create mode 100644 packages/cli/src/utils/get-config.ts create mode 100644 packages/cli/src/utils/get-package-info.ts create mode 100644 packages/cli/src/utils/get-package-manager.ts create mode 100644 packages/cli/src/utils/get-project-info.ts create mode 100644 packages/cli/src/utils/handle-error.ts create mode 100644 packages/cli/src/utils/logger.ts create mode 100644 packages/cli/src/utils/registry/index.ts create mode 100644 packages/cli/src/utils/registry/schema.ts create mode 100644 packages/cli/src/utils/resolve-import.ts create mode 100644 packages/cli/src/utils/templates.ts create mode 100644 packages/cli/src/utils/transformers/index.ts create mode 100644 packages/cli/src/utils/transformers/transform-css-vars.ts create mode 100644 packages/cli/src/utils/transformers/transform-import.ts create mode 100644 packages/cli/src/utils/transformers/transform-jsx.ts create mode 100644 packages/cli/src/utils/transformers/transform-rsc.ts create mode 100644 packages/cli/src/utils/transformers/transform-tw-prefix.ts create mode 100644 packages/cli/test/commands/init.test.ts create mode 100644 packages/cli/test/fixtures/colors/neutral.json create mode 100644 packages/cli/test/fixtures/colors/slate.json create mode 100644 packages/cli/test/fixtures/colors/stone.json create mode 100644 packages/cli/test/fixtures/colors/zinc.json create mode 100644 packages/cli/test/fixtures/config-full/components.json create mode 100644 packages/cli/test/fixtures/config-full/package.json create mode 100644 packages/cli/test/fixtures/config-full/tsconfig.json create mode 100644 packages/cli/test/fixtures/config-invalid/components.json create mode 100644 packages/cli/test/fixtures/config-invalid/package.json create mode 100644 packages/cli/test/fixtures/config-jsx/components.json create mode 100644 packages/cli/test/fixtures/config-jsx/jsconfig.json create mode 100644 packages/cli/test/fixtures/config-jsx/package.json create mode 100644 packages/cli/test/fixtures/config-none/package.json create mode 100644 packages/cli/test/fixtures/config-partial/components.json create mode 100644 packages/cli/test/fixtures/config-partial/package.json create mode 100644 packages/cli/test/fixtures/config-partial/tsconfig.json create mode 100644 packages/cli/test/fixtures/config-ui/components.json create mode 100644 packages/cli/test/fixtures/config-ui/package.json create mode 100644 packages/cli/test/fixtures/config-ui/tsconfig.json create mode 100644 packages/cli/test/fixtures/next-app-js/app/favicon.ico create mode 100644 packages/cli/test/fixtures/next-app-js/app/globals.css create mode 100644 packages/cli/test/fixtures/next-app-js/app/layout.js create mode 100644 packages/cli/test/fixtures/next-app-js/app/page.js create mode 100644 packages/cli/test/fixtures/next-app-js/jsconfig.json create mode 100644 packages/cli/test/fixtures/next-app-js/next.config.js create mode 100644 packages/cli/test/fixtures/next-app-js/package.json create mode 100644 packages/cli/test/fixtures/next-app-js/postcss.config.js create mode 100644 packages/cli/test/fixtures/next-app-js/tailwind.config.js create mode 100644 packages/cli/test/fixtures/next-app-src/next-env.d.ts create mode 100644 packages/cli/test/fixtures/next-app-src/next.config.js create mode 100644 packages/cli/test/fixtures/next-app-src/other.css create mode 100644 packages/cli/test/fixtures/next-app-src/package.json create mode 100644 packages/cli/test/fixtures/next-app-src/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/next-app-src/postcss.config.js create mode 100644 packages/cli/test/fixtures/next-app-src/src/app/favicon.ico create mode 100644 packages/cli/test/fixtures/next-app-src/src/app/layout.tsx create mode 100644 packages/cli/test/fixtures/next-app-src/src/app/other.css create mode 100644 packages/cli/test/fixtures/next-app-src/src/app/page.tsx create mode 100644 packages/cli/test/fixtures/next-app-src/src/app/styles.css create mode 100644 packages/cli/test/fixtures/next-app-src/src/other.css create mode 100644 packages/cli/test/fixtures/next-app-src/tailwind.config.ts create mode 100644 packages/cli/test/fixtures/next-app-src/tsconfig.json create mode 100644 packages/cli/test/fixtures/next-app/app/favicon.ico create mode 100644 packages/cli/test/fixtures/next-app/app/globals.css create mode 100644 packages/cli/test/fixtures/next-app/app/layout.tsx create mode 100644 packages/cli/test/fixtures/next-app/app/other.css create mode 100644 packages/cli/test/fixtures/next-app/app/page.tsx create mode 100644 packages/cli/test/fixtures/next-app/next-env.d.ts create mode 100644 packages/cli/test/fixtures/next-app/next.config.js create mode 100644 packages/cli/test/fixtures/next-app/package.json create mode 100644 packages/cli/test/fixtures/next-app/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/next-app/postcss.config.js create mode 100644 packages/cli/test/fixtures/next-app/tailwind.config.ts create mode 100644 packages/cli/test/fixtures/next-app/tsconfig.json create mode 100644 packages/cli/test/fixtures/next-pages-src/next-env.d.ts create mode 100644 packages/cli/test/fixtures/next-pages-src/next.config.js create mode 100644 packages/cli/test/fixtures/next-pages-src/other.css create mode 100644 packages/cli/test/fixtures/next-pages-src/package.json create mode 100644 packages/cli/test/fixtures/next-pages-src/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/next-pages-src/postcss.config.js create mode 100644 packages/cli/test/fixtures/next-pages-src/src/other.css create mode 100644 packages/cli/test/fixtures/next-pages-src/src/pages/_app.tsx create mode 100644 packages/cli/test/fixtures/next-pages-src/src/pages/_document.tsx create mode 100644 packages/cli/test/fixtures/next-pages-src/src/pages/api/hello.ts create mode 100644 packages/cli/test/fixtures/next-pages-src/src/pages/index.tsx create mode 100644 packages/cli/test/fixtures/next-pages-src/src/pages/other.css create mode 100644 packages/cli/test/fixtures/next-pages-src/src/styles/globals.css create mode 100644 packages/cli/test/fixtures/next-pages-src/src/styles/other.css create mode 100644 packages/cli/test/fixtures/next-pages-src/tailwind.config.ts create mode 100644 packages/cli/test/fixtures/next-pages-src/tsconfig.json create mode 100644 packages/cli/test/fixtures/next-pages/next.config.js create mode 100644 packages/cli/test/fixtures/next-pages/package.json create mode 100644 packages/cli/test/fixtures/next-pages/pages/_app.tsx create mode 100644 packages/cli/test/fixtures/next-pages/pages/_document.tsx create mode 100644 packages/cli/test/fixtures/next-pages/pages/api/hello.ts create mode 100644 packages/cli/test/fixtures/next-pages/pages/index.tsx create mode 100644 packages/cli/test/fixtures/next-pages/pages/other.css create mode 100644 packages/cli/test/fixtures/next-pages/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/next-pages/postcss.config.js create mode 100644 packages/cli/test/fixtures/next-pages/styles/globals.css create mode 100644 packages/cli/test/fixtures/next-pages/styles/other.css create mode 100644 packages/cli/test/fixtures/next-pages/tailwind.config.ts create mode 100644 packages/cli/test/fixtures/next-pages/tsconfig.json create mode 100644 packages/cli/test/fixtures/next-src/.gitignore create mode 100644 packages/cli/test/fixtures/next-src/next.config.js create mode 100644 packages/cli/test/fixtures/next-src/package.json create mode 100644 packages/cli/test/fixtures/next-src/src/app/globals.css create mode 100644 packages/cli/test/fixtures/next-src/tailwind.config.js create mode 100644 packages/cli/test/fixtures/next-src/tsconfig.json create mode 100644 packages/cli/test/fixtures/next/.gitignore create mode 100644 packages/cli/test/fixtures/next/app/globals.css create mode 100644 packages/cli/test/fixtures/next/next.config.js create mode 100644 packages/cli/test/fixtures/next/package.json create mode 100644 packages/cli/test/fixtures/next/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/next/tailwind.config.js create mode 100644 packages/cli/test/fixtures/next/tsconfig.json create mode 100644 packages/cli/test/fixtures/project-bun/bun.lockb create mode 100644 packages/cli/test/fixtures/project-bun/package.json create mode 100644 packages/cli/test/fixtures/project-npm/package-lock.json create mode 100644 packages/cli/test/fixtures/project-npm/package.json create mode 100644 packages/cli/test/fixtures/project-pnpm/package.json create mode 100644 packages/cli/test/fixtures/project-pnpm/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/project-src/components.json create mode 100644 packages/cli/test/fixtures/project-src/package-lock.json create mode 100644 packages/cli/test/fixtures/project-src/package.json create mode 100644 packages/cli/test/fixtures/project-yarn/package.json create mode 100644 packages/cli/test/fixtures/project-yarn/yarn.lock create mode 100644 packages/cli/test/fixtures/project/components.json create mode 100644 packages/cli/test/fixtures/project/package.json create mode 100644 packages/cli/test/fixtures/project/pnpm-lock.yaml create mode 100644 packages/cli/test/fixtures/t3-app/.eslintrc.cjs create mode 100644 packages/cli/test/fixtures/t3-app/.gitignore create mode 100644 packages/cli/test/fixtures/t3-app/next.config.mjs create mode 100644 packages/cli/test/fixtures/t3-app/package.json create mode 100644 packages/cli/test/fixtures/t3-app/src/env.mjs create mode 100644 packages/cli/test/fixtures/t3-app/src/pages/_app.tsx create mode 100644 packages/cli/test/fixtures/t3-app/src/pages/index.tsx create mode 100644 packages/cli/test/fixtures/t3-app/src/styles/globals.css create mode 100644 packages/cli/test/fixtures/t3-app/tailwind.config.ts create mode 100644 packages/cli/test/fixtures/t3-app/tsconfig.json create mode 100644 packages/cli/test/fixtures/with-base-url/tsconfig.json create mode 100644 packages/cli/test/fixtures/without-base-url/tsconfig.json create mode 100644 packages/cli/test/utils/__snapshots__/transform-css-vars.test.ts.snap create mode 100644 packages/cli/test/utils/__snapshots__/transform-import.test.ts.snap create mode 100644 packages/cli/test/utils/__snapshots__/transform-rsc.test.ts.snap create mode 100644 packages/cli/test/utils/__snapshots__/transform-tw-prefix.test.ts.snap create mode 100644 packages/cli/test/utils/apply-color-mapping.test.ts create mode 100644 packages/cli/test/utils/apply-prefix.test.ts create mode 100644 packages/cli/test/utils/get-config.test.ts create mode 100644 packages/cli/test/utils/get-item-target-path.test.ts create mode 100644 packages/cli/test/utils/get-package-manager.test.ts create mode 100644 packages/cli/test/utils/get-project-type.test.ts create mode 100644 packages/cli/test/utils/get-tailwind-css-file.test.ts create mode 100644 packages/cli/test/utils/get-ts-config-alias-prefix.test.ts create mode 100644 packages/cli/test/utils/is-typescript-project.test.ts create mode 100644 packages/cli/test/utils/registry.test.ts create mode 100644 packages/cli/test/utils/resolve-import.test.ts create mode 100644 packages/cli/test/utils/transform-css-vars.test.ts create mode 100644 packages/cli/test/utils/transform-import.test.ts create mode 100644 packages/cli/test/utils/transform-rsc.test.ts create mode 100644 packages/cli/test/utils/transform-tw-prefix.test.ts create mode 100644 packages/cli/tsconfig.json create mode 100644 packages/cli/tsup.config.ts create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 project.json create mode 100644 tsconfig.base.json diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..2707074 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.2/schema.json", + "changelog": [ + "@changesets/changelog-github", + { "repo": "adrian-ub/shadcn-ng" } + ], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": ["www"] +} diff --git a/.github/DISCUSSION_TEMPLATE/blocks-request.yml b/.github/DISCUSSION_TEMPLATE/blocks-request.yml new file mode 100644 index 0000000..d23ca30 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/blocks-request.yml @@ -0,0 +1,25 @@ +title: "[blocks]: " +labels: ["Blocks Request"] +body: + - type: markdown + attributes: + value: | + ### Thanks for taking the time to create a block request! Please search open/closed requests before submitting, as the block or a similar one may have already been requested. + + - type: textarea + id: block-description + attributes: + label: Description + description: Tell us about your block request + placeholder: "A dashboard for an e-commerce website showing sales, orders, and customers..." + validations: + required: true + + - type: input + id: block-example-url + attributes: + label: Example + description: Link to an example of the block + placeholder: ex. https://example.com + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..0330c21 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,85 @@ +name: "Bug report" +description: Report an issue +title: "[bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + ### Thanks for taking the time to create a bug report. Please search open/closed issues before submitting, as the issue may have already been reported/addressed. + + - type: markdown + attributes: + value: | + #### If you aren't sure this is a bug or not, please open a discussion instead: + - [Discussions](https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general) + + - type: textarea + id: bug-description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us how in the description. Thanks! + placeholder: Bug description + validations: + required: true + + - type: input + id: components-affected + attributes: + label: Affected component/components + description: Which shadcn-ng components are affected? + placeholder: ex. Button, Checkbox... + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: How to reproduce + description: A step-by-step description of how to reproduce the bug. + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. See error + validations: + required: true + + - type: input + id: codesandbox-stackblitz + attributes: + label: Codesandbox/StackBlitz link + description: | + A link to a CodeSandbox or StackBlitz that includes a minimal reproduction of the problem. In rare cases when not applicable, you can link to a GitHub repository that we can easily run to recreate the issue. If a report is vague and does not have a reproduction, it will be closed without warning. + + > [!CAUTION] + > If you skip this step, this issue might be **labeled** with `please add a reproduction` and **closed**. + validations: + required: false + + - type: textarea + id: logs + attributes: + label: Logs + description: "Please include browser console and server logs around the time this bug occurred. Optional if provided reproduction. Please try not to insert an image but copy paste the log text." + render: bash + + - type: textarea + id: system-info + attributes: + label: System Info + description: Information about browsers, system or binaries that's relevant. + render: bash + placeholder: System, Binaries, Browsers + validations: + required: true + + - type: checkboxes + id: terms + attributes: + label: Before submitting + description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/adrian-ub/shadcn-ng/blob/main/CONTRIBUTING.md). + options: + - label: I've made research efforts and searched the documentation + required: true + - label: I've searched for existing issues + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..4d1e383 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Get Help + url: https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general + about: If you can't get something to work the way you expect, open a question in our discussion forums. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..4e08aa0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,55 @@ +name: "Feature request" +description: Create a feature request for shadcn-ng +title: "[feat]: " +labels: ["area: request"] +body: + - type: markdown + attributes: + value: | + ### Thanks for taking the time to create a feature request! Please search open/closed issues before submitting, as the issue may have already been reported/addressed. + + - type: markdown + attributes: + value: | + #### If you aren't sure this is a bug or not, please open a discussion instead: + - [Discussions](https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general) + + - type: textarea + id: feature-description + attributes: + label: Feature description + description: Tell us about your feature request + placeholder: "I think this feature would be great because..." + value: "Describe your feature request..." + validations: + required: true + + - type: input + id: components-affected + attributes: + label: Affected component/components + description: Is this feature request relevant to any of the already existing components? + placeholder: ex. Button, Checkbox... + validations: + required: false + + - type: textarea + id: context + attributes: + label: Additional Context + description: Add any other context about the feature here. + placeholder: ex. screenshots, Stack Overflow links, forum links, etc. + value: "Additional details here..." + validations: + required: false + + - type: checkboxes + id: terms + attributes: + label: Before submitting + description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/adrian-ub/shadcn-ng/blob/main/CONTRIBUTING.md). + options: + - label: I've made research efforts and searched the documentation + required: true + - label: I've searched for existing issues and PRs + required: true diff --git a/.github/changeset-version.js b/.github/changeset-version.js new file mode 100644 index 0000000..e1b4cef --- /dev/null +++ b/.github/changeset-version.js @@ -0,0 +1,12 @@ +// ORIGINALLY FROM CLOUDFLARE WRANGLER: +// https://github.com/cloudflare/wrangler2/blob/main/.github/changeset-version.js + +import { exec } from "child_process" + +// This script is used by the `release.yml` workflow to update the version of the packages being released. +// The standard step is only to run `changeset version` but this does not update the package-lock.json file. +// So we also run `npm install`, which does this update. +// This is a workaround until this is handled automatically by `changeset version`. +// See https://github.com/changesets/changesets/issues/421. +exec("npx changeset version") +exec("npm install") diff --git a/.github/version-script-beta.js b/.github/version-script-beta.js new file mode 100644 index 0000000..4dd5ea2 --- /dev/null +++ b/.github/version-script-beta.js @@ -0,0 +1,21 @@ +// ORIGINALLY FROM CLOUDFLARE WRANGLER: +// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js + +import { exec } from "child_process" +import fs from "fs" + +const pkgJsonPath = "packages/cli/package.json" +try { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath)) + exec("git rev-parse --short HEAD", (err, stdout) => { + if (err) { + console.log(err) + process.exit(1) + } + pkg.version = "0.0.0-beta." + stdout.trim() + fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n") + }) +} catch (error) { + console.error(error) + process.exit(1) +} diff --git a/.github/version-script-next.js b/.github/version-script-next.js new file mode 100644 index 0000000..c18a7af --- /dev/null +++ b/.github/version-script-next.js @@ -0,0 +1,21 @@ +// ORIGINALLY FROM CLOUDFLARE WRANGLER: +// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js + +import { exec } from "child_process" +import fs from "fs" + +const pkgJsonPath = "packages/cli/package.json" +try { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath)) + exec("git rev-parse --short HEAD", (err, stdout) => { + if (err) { + console.log(err) + process.exit(1) + } + pkg.version = "0.0.0-next." + stdout.trim() + fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n") + }) +} catch (error) { + console.error(error) + process.exit(1) +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..36eb7e5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + actions: read + contents: read + +jobs: + main: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + + + # This enables task distribution via Nx Cloud + # Run this command as early as possible, before dependencies are installed + # Learn more at https://nx.dev/ci/reference/nx-cloud-cli#npx-nxcloud-startcirun + - run: pnpm dlx nx-cloud start-ci-run --distribute-on="3 linux-medium-js" --stop-agents-after="build" + + + # Cache node_modules + - uses: actions/setup-node@v3 + with: + node-version: 20 + cache: 'pnpm' + + - run: pnpm install --frozen-lockfile + - uses: nrwl/nx-set-shas@v4 + + # Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud + # - run: pnpm exec nx-cloud record -- echo Hello World + # Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected + - run: pnpm exec nx affected -t lint test build diff --git a/.github/workflows/issue-stale.yml b/.github/workflows/issue-stale.yml new file mode 100644 index 0000000..3fe6d20 --- /dev/null +++ b/.github/workflows/issue-stale.yml @@ -0,0 +1,26 @@ +# Adapted from vercel/next.js +name: Issue Stale +on: + workflow_dispatch: + schedule: + # This runs every day 20 minutes before midnight: https://crontab.guru/#40_23_*_*_* + - cron: "40 23 * * *" + +jobs: + stale: + runs-on: ubuntu-latest + if: github.repository_owner == 'adrian-ub' + steps: + - uses: actions/stale@v4 + id: stale-no-repro + name: "Close stale issues with no reproduction" + with: + repo-token: ${{ secrets.STALE_TOKEN }} + close-issue-message: "This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you." + days-before-issue-close: 7 + days-before-issue-stale: 15 + stale-pr-label: "stale?" + days-before-pr-close: -1 + days-before-pr-stale: -1 + exempt-issue-labels: "roadmap,next,bug" + operations-per-run: 300 # 1 operation per 100 issues, the rest is to label/comment/close diff --git a/.github/workflows/prerelease-comment.yml b/.github/workflows/prerelease-comment.yml new file mode 100644 index 0000000..1fad87f --- /dev/null +++ b/.github/workflows/prerelease-comment.yml @@ -0,0 +1,65 @@ +# Adapted from create-t3-app. +name: Write Beta Release comment + +on: + workflow_run: + workflows: ["Release - Beta"] + types: + - completed + +jobs: + comment: + if: | + github.repository_owner == 'adrian-ub' && + ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + name: Write comment to the PR + steps: + - name: "Comment on PR" + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); + + for (const artifact of allArtifacts.data.artifacts) { + // Extract the PR number and package version from the artifact name + const match = /^npm-package-shadcn-ng@(.*?)-pr-(\d+)/.exec(artifact.name); + + if (match) { + require("fs").appendFileSync( + process.env.GITHUB_ENV, + `\nBETA_PACKAGE_VERSION=${match[1]}` + + `\nWORKFLOW_RUN_PR=${match[2]}` + + `\nWORKFLOW_RUN_ID=${context.payload.workflow_run.id}` + ); + break; + } + } + + - name: "Comment on PR with Link" + uses: marocchino/sticky-pull-request-comment@v2 + with: + number: ${{ env.WORKFLOW_RUN_PR }} + message: | + A new prerelease is available for testing: + + ```sh + npx shadcn-ng@${{ env.BETA_PACKAGE_VERSION }} + ``` + + - name: "Remove the autorelease label once published" + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: '${{ env.WORKFLOW_RUN_PR }}', + name: '🚀 autorelease', + }); diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml new file mode 100644 index 0000000..d949f95 --- /dev/null +++ b/.github/workflows/prerelease.yml @@ -0,0 +1,60 @@ +# Adapted from create-t3-app. + +name: Release - Beta + +on: + pull_request: + types: [labeled] + branches: + - main +jobs: + prerelease: + if: | + github.repository_owner == 'adrian-ub' && + contains(github.event.pull_request.labels.*.name, '🚀 autorelease') + name: Build & Publish a beta release to NPM + runs-on: ubuntu-latest + environment: Preview + + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Use PNPM + uses: pnpm/action-setup@v4 + with: + version: 9.0.6 + + - name: Use Node.js 18 + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: "pnpm" + + - name: Install NPM Dependencies + run: pnpm install + + - name: Modify package.json version + run: node .github/version-script-beta.js + + - name: Authenticate to NPM + run: echo "//registry.npmjs.org/:_authToken=$NPM_ACCESS_TOKEN" >> packages/cli/.npmrc + env: + NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} + + - name: Publish Beta to NPM + run: pnpm pub:beta + + - name: get-npm-version + id: package-version + uses: martinbeentjes/npm-get-version-action@main + with: + path: packages/cli + + - name: Upload packaged artifact + uses: actions/upload-artifact@v2 + with: + name: npm-package-shadcn-ng@${{ steps.package-version.outputs.current-version }}-pr-${{ github.event.number }} # encode the PR number into the artifact name + path: packages/cli/dist/index.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ff6c380 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,53 @@ +# Adapted from create-t3-app. + +name: Release + +on: + push: + branches: + - main + +jobs: + release: + if: ${{ github.repository_owner == 'adrian-ub' }} + name: Create a PR for release workflow + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Use PNPM + uses: pnpm/action-setup@v4 + with: + version: 9.0.6 + + - name: Use Node.js 18 + uses: actions/setup-node@v3 + with: + version: 9.0.6 + node-version: 18 + cache: "pnpm" + + - name: Install NPM Dependencies + run: pnpm install + + # - name: Check for errors + # run: pnpm check + + - name: Build the package + run: pnpm build:cli + + - name: Create Version PR or Publish to NPM + id: changesets + uses: changesets/action@v1.4.1 + with: + commit: "chore(release): version packages" + title: "chore(release): version packages" + version: node .github/changeset-version.js + publish: npx changeset publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} + NODE_ENV: "production" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f4d87b --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +dist +tmp +/out-tsc + +# dependencies +node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db + +.nx/cache +.nx/workspace-data diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..19be10e --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +strict-peer-dependencies=false +auto-install-peers=true diff --git a/.verdaccio/config.yml b/.verdaccio/config.yml new file mode 100644 index 0000000..0a857ab --- /dev/null +++ b/.verdaccio/config.yml @@ -0,0 +1,28 @@ +# path to a directory with all packages +storage: ../tmp/local-registry/storage + +# a list of other known repositories we can talk to +uplinks: + npmjs: + url: https://registry.npmjs.org + maxage: 60m + +packages: + '**': + # give all users (including non-authenticated users) full access + # because it is a local registry + access: $all + publish: $all + unpublish: $all + + # if package is not available locally, proxy requests to npm registry + proxy: npmjs + +# log settings +logs: + type: stdout + format: pretty + level: warn + +publish: + allow_offline: true # set offline to true to allow publish offline diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bf14b26 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + + "nrwl.angular-console" + ] +} diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..0683d59 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Adrián UB + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..221f117 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# shadcn-ng + +Accessible and customizable components that you can copy and paste into your apps. Free. Open Source. **Use this to build your own component library**. + +![hero](apps/www/public/og.jpg) + +## Documentation + +Visit http://ui.adrianub.dev/docs to view the documentation. + +## Contributing + +Please read the [contributing guide](/CONTRIBUTING.md). + +## License + +Licensed under the [MIT license](https://github.com/adrian-ub/shadcn-ng/blob/main/LICENSE.md). diff --git a/apps/www/.gitignore b/apps/www/.gitignore new file mode 100644 index 0000000..6240da8 --- /dev/null +++ b/apps/www/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/apps/www/.vscode/extensions.json b/apps/www/.vscode/extensions.json new file mode 100644 index 0000000..22a1505 --- /dev/null +++ b/apps/www/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/apps/www/.vscode/launch.json b/apps/www/.vscode/launch.json new file mode 100644 index 0000000..d642209 --- /dev/null +++ b/apps/www/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/apps/www/astro.config.mjs b/apps/www/astro.config.mjs new file mode 100644 index 0000000..232e0fd --- /dev/null +++ b/apps/www/astro.config.mjs @@ -0,0 +1,32 @@ +import { defineConfig } from "astro/config"; +import starlight from "@astrojs/starlight"; +import tailwind from "@astrojs/tailwind"; + +// https://astro.build/config +export default defineConfig({ + integrations: [ + starlight({ + title: "shadcn-ng", + logo: { + dark: "./src/assets/logo-dark.svg", + light: "./src/assets/logo-light.svg", + }, + favicon: "./src/assets/logo-dark.svg", + social: { + github: "https://github.com/adrian-ub/shadcn-ng", + }, + sidebar: [ + { + label: "Getting Started", + autogenerate: { + directory: "docs", + }, + }, + ], + customCss: ["./src/tailwind.css"], + }), + tailwind({ + applyBaseStyles: false, + }), + ], +}); diff --git a/apps/www/package.json b/apps/www/package.json new file mode 100644 index 0000000..da59aed --- /dev/null +++ b/apps/www/package.json @@ -0,0 +1,46 @@ +{ + "name": "www", + "type": "module", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@analogjs/astro-angular": "^1.6.2", + "@angular-devkit/build-angular": "^18.1.1", + "@angular/animations": "^18.1.1", + "@angular/common": "^18.1.1", + "@angular/compiler": "^18.1.1", + "@angular/compiler-cli": "^18.1.1", + "@angular/core": "^18.1.1", + "@angular/language-service": "^18.1.1", + "@angular/platform-browser": "^18.1.1", + "@angular/platform-browser-dynamic": "^18.1.1", + "@angular/platform-server": "^18.1.1", + "@astrojs/check": "^0.8.2", + "@astrojs/starlight": "^0.25.1", + "@astrojs/starlight-tailwind": "^2.0.3", + "@astrojs/tailwind": "^5.1.0", + "astro": "^4.10.2", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "rxjs": "^7.8.1", + "sharp": "^0.32.5", + "tailwind-merge": "^2.4.0", + "tailwindcss": "^3.4.4", + "tslib": "^2.6.3", + "typescript": "^5.5.3", + "zone.js": "^0.14.8" + }, + "devDependencies": { + "@types/lodash.template": "^4.5.1", + "lodash.template": "^4.5.0", + "rimraf": "^4.1.3", + "ts-morph": "^18.0.0" + } +} diff --git a/apps/www/public/og.jpg b/apps/www/public/og.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12a4d5ff81898243b886e4a2df17f6b097262e24 GIT binary patch literal 299278 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%0AlP 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 z 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

2BCqCG(}W!|x^(A+)}arE^zyFusPde0 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 literal 0 HcmV?d00001 diff --git a/apps/www/public/schema.json b/apps/www/public/schema.json new file mode 100644 index 0000000..361071b --- /dev/null +++ b/apps/www/public/schema.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "style": { + "type": "string", + "enum": ["default", "new-york"] + }, + "tailwind": { + "type": "object", + "properties": { + "config": { + "type": "string" + }, + "css": { + "type": "string" + }, + "baseColor": { + "type": "string" + }, + "cssVariables": { + "type": "boolean" + }, + "prefix": { + "type": "string" + } + }, + "required": ["config", "css", "baseColor", "cssVariables"] + }, + "aliases": { + "type": "object", + "properties": { + "utils": { + "type": "string" + }, + "components": { + "type": "string" + }, + "ui": { + "type": "string" + } + }, + "required": ["utils", "components"] + } + }, + "required": ["style", "tailwind", "aliases"] +} diff --git a/apps/www/src/assets/logo-dark.svg b/apps/www/src/assets/logo-dark.svg new file mode 100644 index 0000000..8e78e73 --- /dev/null +++ b/apps/www/src/assets/logo-dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/www/src/assets/logo-light.svg b/apps/www/src/assets/logo-light.svg new file mode 100644 index 0000000..72b2ce0 --- /dev/null +++ b/apps/www/src/assets/logo-light.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/www/src/content/config.ts b/apps/www/src/content/config.ts new file mode 100644 index 0000000..45f60b0 --- /dev/null +++ b/apps/www/src/content/config.ts @@ -0,0 +1,6 @@ +import { defineCollection } from 'astro:content'; +import { docsSchema } from '@astrojs/starlight/schema'; + +export const collections = { + docs: defineCollection({ schema: docsSchema() }), +}; diff --git a/apps/www/src/content/docs/docs/index.mdx b/apps/www/src/content/docs/docs/index.mdx new file mode 100644 index 0000000..cd4137b --- /dev/null +++ b/apps/www/src/content/docs/docs/index.mdx @@ -0,0 +1,14 @@ +--- +title: Introduction +description: Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source. +--- + +This is **NOT** a component library. It's a collection of re-usable components that you can copy and paste into your apps. + +**What do you mean by not a component library?** + +I mean you do not install it as a dependency. It is not available or distributed via npm. + +Pick the components you need. Copy and paste the code into your project and customize to your needs. The code is yours. + +_Use this as a reference to build your own component libraries._ diff --git a/apps/www/src/content/docs/index.mdx b/apps/www/src/content/docs/index.mdx new file mode 100644 index 0000000..32f7bf2 --- /dev/null +++ b/apps/www/src/content/docs/index.mdx @@ -0,0 +1,16 @@ +--- +title: shadcn-ng +description: Beautifully designed components that you can copy and paste into your apps. +template: splash +hero: + title: Build your component library + tagline: Beautifully designed components that you can copy and paste into your apps. + actions: + - text: Get Started + link: /docs + icon: right-arrow + variant: primary + - text: GitHub + link: https://github.com/adrian-ub/shadcn-ng + icon: external +--- diff --git a/apps/www/src/env.d.ts b/apps/www/src/env.d.ts new file mode 100644 index 0000000..acef35f --- /dev/null +++ b/apps/www/src/env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/apps/www/src/lib/utils.ts b/apps/www/src/lib/utils.ts new file mode 100644 index 0000000..a5ef193 --- /dev/null +++ b/apps/www/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/apps/www/src/pages/registry/colors/[base].json.ts b/apps/www/src/pages/registry/colors/[base].json.ts new file mode 100644 index 0000000..ceca092 --- /dev/null +++ b/apps/www/src/pages/registry/colors/[base].json.ts @@ -0,0 +1,127 @@ +import { colorMapping, colorsData, availableColors } from "@/registry/colors"; +import template from "lodash.template"; + +const BASE_STYLES = `@tailwind base; +@tailwind components; +@tailwind utilities; + `; + +const BASE_STYLES_WITH_VARIABLES = `@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: <%- colors.light["background"] %>; + --foreground: <%- colors.light["foreground"] %>; + --card: <%- colors.light["card"] %>; + --card-foreground: <%- colors.light["card-foreground"] %>; + --popover: <%- colors.light["popover"] %>; + --popover-foreground: <%- colors.light["popover-foreground"] %>; + --primary: <%- colors.light["primary"] %>; + --primary-foreground: <%- colors.light["primary-foreground"] %>; + --secondary: <%- colors.light["secondary"] %>; + --secondary-foreground: <%- colors.light["secondary-foreground"] %>; + --muted: <%- colors.light["muted"] %>; + --muted-foreground: <%- colors.light["muted-foreground"] %>; + --accent: <%- colors.light["accent"] %>; + --accent-foreground: <%- colors.light["accent-foreground"] %>; + --destructive: <%- colors.light["destructive"] %>; + --destructive-foreground: <%- colors.light["destructive-foreground"] %>; + --border: <%- colors.light["border"] %>; + --input: <%- colors.light["input"] %>; + --ring: <%- colors.light["ring"] %>; + --radius: 0.5rem; + --chart-1: <%- colors.light["chart-1"] %>; + --chart-2: <%- colors.light["chart-2"] %>; + --chart-3: <%- colors.light["chart-3"] %>; + --chart-4: <%- colors.light["chart-4"] %>; + --chart-5: <%- colors.light["chart-5"] %>; + } + + .dark { + --background: <%- colors.dark["background"] %>; + --foreground: <%- colors.dark["foreground"] %>; + --card: <%- colors.dark["card"] %>; + --card-foreground: <%- colors.dark["card-foreground"] %>; + --popover: <%- colors.dark["popover"] %>; + --popover-foreground: <%- colors.dark["popover-foreground"] %>; + --primary: <%- colors.dark["primary"] %>; + --primary-foreground: <%- colors.dark["primary-foreground"] %>; + --secondary: <%- colors.dark["secondary"] %>; + --secondary-foreground: <%- colors.dark["secondary-foreground"] %>; + --muted: <%- colors.dark["muted"] %>; + --muted-foreground: <%- colors.dark["muted-foreground"] %>; + --accent: <%- colors.dark["accent"] %>; + --accent-foreground: <%- colors.dark["accent-foreground"] %>; + --destructive: <%- colors.dark["destructive"] %>; + --destructive-foreground: <%- colors.dark["destructive-foreground"] %>; + --border: <%- colors.dark["border"] %>; + --input: <%- colors.dark["input"] %>; + --ring: <%- colors.dark["ring"] %>; + --chart-1: <%- colors.dark["chart-1"] %>; + --chart-2: <%- colors.dark["chart-2"] %>; + --chart-3: <%- colors.dark["chart-3"] %>; + --chart-4: <%- colors.dark["chart-4"] %>; + --chart-5: <%- colors.dark["chart-5"] %>; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +}`; + +export async function getStaticPaths() { + const paths = availableColors.map((color) => ({ + params: { base: color }, + })); + + return paths; +} + +export async function GET({ params }: { params: { base: string } }) { + const baseColor = params.base; + const base: Record = { + inlineColors: {}, + cssVars: {}, + }; + + for (const [mode, values] of Object.entries(colorMapping)) { + base["inlineColors"][mode] = {}; + base["cssVars"][mode] = {}; + for (const [key, value] of Object.entries(values)) { + if (typeof value === "string") { + // Chart colors do not have a 1-to-1 mapping with tailwind colors. + if (key.startsWith("chart-")) { + base["cssVars"][mode][key] = value; + continue; + } + + const resolvedColor = value.replace(/{{base}}-/g, `${baseColor}-`); + base["inlineColors"][mode][key] = resolvedColor; + + const [resolvedBase, scale] = resolvedColor.split("-"); + const color = scale + ? colorsData()[resolvedBase].find( + (item: { scale: number }) => item.scale === parseInt(scale) + ) + : colorsData()[resolvedBase]; + if (color) { + base["cssVars"][mode][key] = color.hslChannel; + } + } + } + } + + base["inlineColorsTemplate"] = template(BASE_STYLES)({}); + base["cssVarsTemplate"] = template(BASE_STYLES_WITH_VARIABLES)({ + colors: base["cssVars"], + }); + + return new Response(JSON.stringify(base, null, 2)); +} diff --git a/apps/www/src/pages/registry/colors/index/index.json.ts b/apps/www/src/pages/registry/colors/index/index.json.ts new file mode 100644 index 0000000..27ce934 --- /dev/null +++ b/apps/www/src/pages/registry/colors/index/index.json.ts @@ -0,0 +1,5 @@ +import { colorsData } from "@/registry/colors"; + +export async function GET() { + return new Response(JSON.stringify(colorsData(), null, 2)); +} diff --git a/apps/www/src/pages/registry/index/index.json.ts b/apps/www/src/pages/registry/index/index.json.ts new file mode 100644 index 0000000..33c621c --- /dev/null +++ b/apps/www/src/pages/registry/index/index.json.ts @@ -0,0 +1,7 @@ +import { registry } from "@/registry/registry"; + +export async function GET() { + const names = registry.filter((item) => item.type === "components:ui"); + const registryJson = JSON.stringify(names, null, 2); + return new Response(registryJson); +} diff --git a/apps/www/src/pages/registry/styles/[style]/[name].json.ts b/apps/www/src/pages/registry/styles/[style]/[name].json.ts new file mode 100644 index 0000000..7c2cc44 --- /dev/null +++ b/apps/www/src/pages/registry/styles/[style]/[name].json.ts @@ -0,0 +1,59 @@ +import { registry } from "@/registry/registry"; +import type { RegistryEntry } from "@/registry/schema"; +import { styles } from "@/registry/styles"; +import { readFileSync } from "fs"; +import path, { basename } from "path"; + +export async function getStaticPaths() { + return registry + .filter((item) => item.type === "components:ui") + .flatMap((item) => { + return styles.map((style) => ({ + params: { + style: style.name, + name: item.name, + }, + props: { + componentRegistry: item, + }, + })); + }); +} + +export async function GET({ + params, + props, +}: { + params: { + style: string; + name: string; + }; + props: { + componentRegistry: RegistryEntry; + }; +}) { + const { style } = params; + const { componentRegistry } = props; + const files = componentRegistry.files.map((file) => { + const content = readFileSync( + path.join(process.cwd(), "src", "registry", style, file), + "utf8" + ); + + return { + name: basename(file), + content, + }; + }); + + return new Response( + JSON.stringify( + { + ...componentRegistry, + files, + }, + null, + 2 + ) + ); +} diff --git a/apps/www/src/pages/registry/styles/index/index.json.ts b/apps/www/src/pages/registry/styles/index/index.json.ts new file mode 100644 index 0000000..ae728ff --- /dev/null +++ b/apps/www/src/pages/registry/styles/index/index.json.ts @@ -0,0 +1,5 @@ +import { styles } from "@/registry/styles"; + +export async function GET() { + return new Response(JSON.stringify(styles, null, 2)); +} diff --git a/apps/www/src/pages/registry/themes.css.ts b/apps/www/src/pages/registry/themes.css.ts new file mode 100644 index 0000000..7e5d528 --- /dev/null +++ b/apps/www/src/pages/registry/themes.css.ts @@ -0,0 +1,86 @@ +import { themes } from "@/registry/themes"; +import template from "lodash.template"; + +export async function GET() { + const themeCSS = []; + + const THEME_STYLES_WITH_VARIABLES = ` +.theme-<%- theme %> { + --background: <%- colors.light["background"] %>; + --foreground: <%- colors.light["foreground"] %>; + + --muted: <%- colors.light["muted"] %>; + --muted-foreground: <%- colors.light["muted-foreground"] %>; + + --popover: <%- colors.light["popover"] %>; + --popover-foreground: <%- colors.light["popover-foreground"] %>; + + --card: <%- colors.light["card"] %>; + --card-foreground: <%- colors.light["card-foreground"] %>; + + --border: <%- colors.light["border"] %>; + --input: <%- colors.light["input"] %>; + + --primary: <%- colors.light["primary"] %>; + --primary-foreground: <%- colors.light["primary-foreground"] %>; + + --secondary: <%- colors.light["secondary"] %>; + --secondary-foreground: <%- colors.light["secondary-foreground"] %>; + + --accent: <%- colors.light["accent"] %>; + --accent-foreground: <%- colors.light["accent-foreground"] %>; + + --destructive: <%- colors.light["destructive"] %>; + --destructive-foreground: <%- colors.light["destructive-foreground"] %>; + + --ring: <%- colors.light["ring"] %>; + + --radius: <%- colors.light["radius"] %>; +} + +.dark .theme-<%- theme %> { + --background: <%- colors.dark["background"] %>; + --foreground: <%- colors.dark["foreground"] %>; + + --muted: <%- colors.dark["muted"] %>; + --muted-foreground: <%- colors.dark["muted-foreground"] %>; + + --popover: <%- colors.dark["popover"] %>; + --popover-foreground: <%- colors.dark["popover-foreground"] %>; + + --card: <%- colors.dark["card"] %>; + --card-foreground: <%- colors.dark["card-foreground"] %>; + + --border: <%- colors.dark["border"] %>; + --input: <%- colors.dark["input"] %>; + + --primary: <%- colors.dark["primary"] %>; + --primary-foreground: <%- colors.dark["primary-foreground"] %>; + + --secondary: <%- colors.dark["secondary"] %>; + --secondary-foreground: <%- colors.dark["secondary-foreground"] %>; + + --accent: <%- colors.dark["accent"] %>; + --accent-foreground: <%- colors.dark["accent-foreground"] %>; + + --destructive: <%- colors.dark["destructive"] %>; + --destructive-foreground: <%- colors.dark["destructive-foreground"] %>; + + --ring: <%- colors.dark["ring"] %>; +}`; + + for (const theme of themes) { + themeCSS.push( + template(THEME_STYLES_WITH_VARIABLES)({ + colors: theme.cssVars, + theme: theme.name, + }) + ); + } + + return new Response(themeCSS.join("\n"), { + headers: { + "Content-Type": "text/css", + }, + }); +} diff --git a/apps/www/src/pages/registry/themes/[theme].json.ts b/apps/www/src/pages/registry/themes/[theme].json.ts new file mode 100644 index 0000000..6929947 --- /dev/null +++ b/apps/www/src/pages/registry/themes/[theme].json.ts @@ -0,0 +1,41 @@ +import { availableColors, colorMapping, colorsData } from "@/registry/colors"; + +export async function getStaticPaths() { + const paths = availableColors.map((color) => ({ + params: { theme: color }, + })); + + return paths; +} + +export async function GET({ params }: { params: { theme: string } }) { + const baseColor = params.theme; + + const payload = { + name: baseColor, + label: baseColor.charAt(0).toUpperCase() + baseColor.slice(1), + cssVars: {} as { [key: string]: { [key: string]: string } }, + }; + + for (const [mode, values] of Object.entries(colorMapping)) { + payload["cssVars"][mode] = {}; + for (const [key, value] of Object.entries(values)) { + if (typeof value === "string") { + const resolvedColor = value.replace(/{{base}}-/g, `${baseColor}-`); + payload["cssVars"][mode][key] = resolvedColor; + + const [resolvedBase, scale] = resolvedColor.split("-"); + const color = scale + ? colorsData()[resolvedBase].find( + (item: { scale: number }) => item.scale === parseInt(scale) + ) + : colorsData()[resolvedBase]; + if (color) { + payload["cssVars"][mode][key] = color.hslChannel; + } + } + } + } + + return new Response(JSON.stringify(payload, null, 2)); +} diff --git a/apps/www/src/registry/blocks.ts b/apps/www/src/registry/blocks.ts new file mode 100644 index 0000000..5255991 --- /dev/null +++ b/apps/www/src/registry/blocks.ts @@ -0,0 +1,3 @@ +import type { Registry } from "./schema"; + +export const blocks: Registry = []; diff --git a/apps/www/src/registry/charts.ts b/apps/www/src/registry/charts.ts new file mode 100644 index 0000000..9395091 --- /dev/null +++ b/apps/www/src/registry/charts.ts @@ -0,0 +1,3 @@ +import type { Registry } from "./schema"; + +export const charts: Registry = []; diff --git a/apps/www/src/registry/colors.ts b/apps/www/src/registry/colors.ts new file mode 100644 index 0000000..d2c3e27 --- /dev/null +++ b/apps/www/src/registry/colors.ts @@ -0,0 +1,1609 @@ +export const colors = { + inherit: "inherit", + current: "currentColor", + transparent: "transparent", + black: { + hex: "#000000", + rgb: "rgb(0,0,0)", + hsl: "hsl(0,0%,0%)", + }, + white: { + hex: "#ffffff", + rgb: "rgb(255,255,255)", + hsl: "hsl(0,0%,100%)", + }, + slate: [ + { + scale: 50, + hex: "#f8fafc", + rgb: "rgb(248,250,252)", + hsl: "hsl(210,40%,98%)", + }, + { + scale: 100, + hex: "#f1f5f9", + rgb: "rgb(241,245,249)", + hsl: "hsl(210,40%,96.1%)", + }, + { + scale: 200, + hex: "#e2e8f0", + rgb: "rgb(226,232,240)", + hsl: "hsl(214.3,31.8%,91.4%)", + }, + { + scale: 300, + hex: "#cbd5e1", + rgb: "rgb(203,213,225)", + hsl: "hsl(212.7,26.8%,83.9%)", + }, + { + scale: 400, + hex: "#94a3b8", + rgb: "rgb(148,163,184)", + hsl: "hsl(215,20.2%,65.1%)", + }, + { + scale: 500, + hex: "#64748b", + rgb: "rgb(100,116,139)", + hsl: "hsl(215.4,16.3%,46.9%)", + }, + { + scale: 600, + hex: "#475569", + rgb: "rgb(71,85,105)", + hsl: "hsl(215.3,19.3%,34.5%)", + }, + { + scale: 700, + hex: "#334155", + rgb: "rgb(51,65,85)", + hsl: "hsl(215.3,25%,26.7%)", + }, + { + scale: 800, + hex: "#1e293b", + rgb: "rgb(30,41,59)", + hsl: "hsl(217.2,32.6%,17.5%)", + }, + { + scale: 900, + hex: "#0f172a", + rgb: "rgb(15,23,42)", + hsl: "hsl(222.2,47.4%,11.2%)", + }, + { + scale: 950, + hex: "#020617", + rgb: "rgb(2,6,23)", + hsl: "hsl(222.2,84%,4.9%)", + }, + ], + gray: [ + { + scale: 50, + hex: "#f9fafb", + rgb: "rgb(249,250,251)", + hsl: "hsl(210,20%,98%)", + }, + { + scale: 100, + hex: "#f3f4f6", + rgb: "rgb(243,244,246)", + hsl: "hsl(220,14.3%,95.9%)", + }, + { + scale: 200, + hex: "#e5e7eb", + rgb: "rgb(229,231,235)", + hsl: "hsl(220,13%,91%)", + }, + { + scale: 300, + hex: "#d1d5db", + rgb: "rgb(209,213,219)", + hsl: "hsl(216,12.2%,83.9%)", + }, + { + scale: 400, + hex: "#9ca3af", + rgb: "rgb(156,163,175)", + hsl: "hsl(217.9,10.6%,64.9%)", + }, + { + scale: 500, + hex: "#6b7280", + rgb: "rgb(107,114,128)", + hsl: "hsl(220,8.9%,46.1%)", + }, + { + scale: 600, + hex: "#4b5563", + rgb: "rgb(75,85,99)", + hsl: "hsl(215,13.8%,34.1%)", + }, + { + scale: 700, + hex: "#374151", + rgb: "rgb(55,65,81)", + hsl: "hsl(216.9,19.1%,26.7%)", + }, + { + scale: 800, + hex: "#1f2937", + rgb: "rgb(31,41,55)", + hsl: "hsl(215,27.9%,16.9%)", + }, + { + scale: 900, + hex: "#111827", + rgb: "rgb(17,24,39)", + hsl: "hsl(220.9,39.3%,11%)", + }, + { + scale: 950, + hex: "#030712", + rgb: "rgb(3,7,18)", + hsl: "hsl(224,71.4%,4.1%)", + }, + ], + zinc: [ + { + scale: 50, + hex: "#fafafa", + rgb: "rgb(250,250,250)", + hsl: "hsl(0,0%,98%)", + }, + { + scale: 100, + hex: "#f4f4f5", + rgb: "rgb(244,244,245)", + hsl: "hsl(240,4.8%,95.9%)", + }, + { + scale: 200, + hex: "#e4e4e7", + rgb: "rgb(228,228,231)", + hsl: "hsl(240,5.9%,90%)", + }, + { + scale: 300, + hex: "#d4d4d8", + rgb: "rgb(212,212,216)", + hsl: "hsl(240,4.9%,83.9%)", + }, + { + scale: 400, + hex: "#a1a1aa", + rgb: "rgb(161,161,170)", + hsl: "hsl(240,5%,64.9%)", + }, + { + scale: 500, + hex: "#71717a", + rgb: "rgb(113,113,122)", + hsl: "hsl(240,3.8%,46.1%)", + }, + { + scale: 600, + hex: "#52525b", + rgb: "rgb(82,82,91)", + hsl: "hsl(240,5.2%,33.9%)", + }, + { + scale: 700, + hex: "#3f3f46", + rgb: "rgb(63,63,70)", + hsl: "hsl(240,5.3%,26.1%)", + }, + { + scale: 800, + hex: "#27272a", + rgb: "rgb(39,39,42)", + hsl: "hsl(240,3.7%,15.9%)", + }, + { + scale: 900, + hex: "#18181b", + rgb: "rgb(24,24,27)", + hsl: "hsl(240,5.9%,10%)", + }, + { + scale: 950, + hex: "#09090b", + rgb: "rgb(9,9,11)", + hsl: "hsl(240,10%,3.9%)", + }, + ], + neutral: [ + { + scale: 50, + hex: "#fafafa", + rgb: "rgb(250,250,250)", + hsl: "hsl(0,0%,98%)", + }, + { + scale: 100, + hex: "#f5f5f5", + rgb: "rgb(245,245,245)", + hsl: "hsl(0,0%,96.1%)", + }, + { + scale: 200, + hex: "#e5e5e5", + rgb: "rgb(229,229,229)", + hsl: "hsl(0,0%,89.8%)", + }, + { + scale: 300, + hex: "#d4d4d4", + rgb: "rgb(212,212,212)", + hsl: "hsl(0,0%,83.1%)", + }, + { + scale: 400, + hex: "#a3a3a3", + rgb: "rgb(163,163,163)", + hsl: "hsl(0,0%,63.9%)", + }, + { + scale: 500, + hex: "#737373", + rgb: "rgb(115,115,115)", + hsl: "hsl(0,0%,45.1%)", + }, + { + scale: 600, + hex: "#525252", + rgb: "rgb(82,82,82)", + hsl: "hsl(0,0%,32.2%)", + }, + { + scale: 700, + hex: "#404040", + rgb: "rgb(64,64,64)", + hsl: "hsl(0,0%,25.1%)", + }, + { + scale: 800, + hex: "#262626", + rgb: "rgb(38,38,38)", + hsl: "hsl(0,0%,14.9%)", + }, + { + scale: 900, + hex: "#171717", + rgb: "rgb(23,23,23)", + hsl: "hsl(0,0%,9%)", + }, + { + scale: 950, + hex: "#0a0a0a", + rgb: "rgb(10,10,10)", + hsl: "hsl(0,0%,3.9%)", + }, + ], + stone: [ + { + scale: 50, + hex: "#fafaf9", + rgb: "rgb(250,250,249)", + hsl: "hsl(60,9.1%,97.8%)", + }, + { + scale: 100, + hex: "#f5f5f4", + rgb: "rgb(245,245,244)", + hsl: "hsl(60,4.8%,95.9%)", + }, + { + scale: 200, + hex: "#e7e5e4", + rgb: "rgb(231,229,228)", + hsl: "hsl(20,5.9%,90%)", + }, + { + scale: 300, + hex: "#d6d3d1", + rgb: "rgb(214,211,209)", + hsl: "hsl(24,5.7%,82.9%)", + }, + { + scale: 400, + hex: "#a8a29e", + rgb: "rgb(168,162,158)", + hsl: "hsl(24,5.4%,63.9%)", + }, + { + scale: 500, + hex: "#78716c", + rgb: "rgb(120,113,108)", + hsl: "hsl(25,5.3%,44.7%)", + }, + { + scale: 600, + hex: "#57534e", + rgb: "rgb(87,83,78)", + hsl: "hsl(33.3,5.5%,32.4%)", + }, + { + scale: 700, + hex: "#44403c", + rgb: "rgb(68,64,60)", + hsl: "hsl(30,6.3%,25.1%)", + }, + { + scale: 800, + hex: "#292524", + rgb: "rgb(41,37,36)", + hsl: "hsl(12,6.5%,15.1%)", + }, + { + scale: 900, + hex: "#1c1917", + rgb: "rgb(28,25,23)", + hsl: "hsl(24,9.8%,10%)", + }, + { + scale: 950, + hex: "#0c0a09", + rgb: "rgb(12,10,9)", + hsl: "hsl(20,14.3%,4.1%)", + }, + ], + red: [ + { + scale: 50, + hex: "#fef2f2", + rgb: "rgb(254,242,242)", + hsl: "hsl(0,85.7%,97.3%)", + }, + { + scale: 100, + hex: "#fee2e2", + rgb: "rgb(254,226,226)", + hsl: "hsl(0,93.3%,94.1%)", + }, + { + scale: 200, + hex: "#fecaca", + rgb: "rgb(254,202,202)", + hsl: "hsl(0,96.3%,89.4%)", + }, + { + scale: 300, + hex: "#fca5a5", + rgb: "rgb(252,165,165)", + hsl: "hsl(0,93.5%,81.8%)", + }, + { + scale: 400, + hex: "#f87171", + rgb: "rgb(248,113,113)", + hsl: "hsl(0,90.6%,70.8%)", + }, + { + scale: 500, + hex: "#ef4444", + rgb: "rgb(239,68,68)", + hsl: "hsl(0,84.2%,60.2%)", + }, + { + scale: 600, + hex: "#dc2626", + rgb: "rgb(220,38,38)", + hsl: "hsl(0,72.2%,50.6%)", + }, + { + scale: 700, + hex: "#b91c1c", + rgb: "rgb(185,28,28)", + hsl: "hsl(0,73.7%,41.8%)", + }, + { + scale: 800, + hex: "#991b1b", + rgb: "rgb(153,27,27)", + hsl: "hsl(0,70%,35.3%)", + }, + { + scale: 900, + hex: "#7f1d1d", + rgb: "rgb(127,29,29)", + hsl: "hsl(0,62.8%,30.6%)", + }, + { + scale: 950, + hex: "#450a0a", + rgb: "rgb(69,10,10)", + hsl: "hsl(0,74.7%,15.5%)", + }, + ], + orange: [ + { + scale: 50, + hex: "#fff7ed", + rgb: "rgb(255,247,237)", + hsl: "hsl(33.3,100%,96.5%)", + }, + { + scale: 100, + hex: "#ffedd5", + rgb: "rgb(255,237,213)", + hsl: "hsl(34.3,100%,91.8%)", + }, + { + scale: 200, + hex: "#fed7aa", + rgb: "rgb(254,215,170)", + hsl: "hsl(32.1,97.7%,83.1%)", + }, + { + scale: 300, + hex: "#fdba74", + rgb: "rgb(253,186,116)", + hsl: "hsl(30.7,97.2%,72.4%)", + }, + { + scale: 400, + hex: "#fb923c", + rgb: "rgb(251,146,60)", + hsl: "hsl(27,96%,61%)", + }, + { + scale: 500, + hex: "#f97316", + rgb: "rgb(249,115,22)", + hsl: "hsl(24.6,95%,53.1%)", + }, + { + scale: 600, + hex: "#ea580c", + rgb: "rgb(234,88,12)", + hsl: "hsl(20.5,90.2%,48.2%)", + }, + { + scale: 700, + hex: "#c2410c", + rgb: "rgb(194,65,12)", + hsl: "hsl(17.5,88.3%,40.4%)", + }, + { + scale: 800, + hex: "#9a3412", + rgb: "rgb(154,52,18)", + hsl: "hsl(15,79.1%,33.7%)", + }, + { + scale: 900, + hex: "#7c2d12", + rgb: "rgb(124,45,18)", + hsl: "hsl(15.3,74.6%,27.8%)", + }, + { + scale: 950, + hex: "#431407", + rgb: "rgb(67,20,7)", + hsl: "hsl(13,81.1%,14.5%)", + }, + ], + amber: [ + { + scale: 50, + hex: "#fffbeb", + rgb: "rgb(255,251,235)", + hsl: "hsl(48,100%,96.1%)", + }, + { + scale: 100, + hex: "#fef3c7", + rgb: "rgb(254,243,199)", + hsl: "hsl(48,96.5%,88.8%)", + }, + { + scale: 200, + hex: "#fde68a", + rgb: "rgb(253,230,138)", + hsl: "hsl(48,96.6%,76.7%)", + }, + { + scale: 300, + hex: "#fcd34d", + rgb: "rgb(252,211,77)", + hsl: "hsl(45.9,96.7%,64.5%)", + }, + { + scale: 400, + hex: "#fbbf24", + rgb: "rgb(251,191,36)", + hsl: "hsl(43.3,96.4%,56.3%)", + }, + { + scale: 500, + hex: "#f59e0b", + rgb: "rgb(245,158,11)", + hsl: "hsl(37.7,92.1%,50.2%)", + }, + { + scale: 600, + hex: "#d97706", + rgb: "rgb(217,119,6)", + hsl: "hsl(32.1,94.6%,43.7%)", + }, + { + scale: 700, + hex: "#b45309", + rgb: "rgb(180,83,9)", + hsl: "hsl(26,90.5%,37.1%)", + }, + { + scale: 800, + hex: "#92400e", + rgb: "rgb(146,64,14)", + hsl: "hsl(22.7,82.5%,31.4%)", + }, + { + scale: 900, + hex: "#78350f", + rgb: "rgb(120,53,15)", + hsl: "hsl(21.7,77.8%,26.5%)", + }, + { + scale: 950, + hex: "#451a03", + rgb: "rgb(69,26,3)", + hsl: "hsl(20.9,91.7%,14.1%)", + }, + ], + yellow: [ + { + scale: 50, + hex: "#fefce8", + rgb: "rgb(254,252,232)", + hsl: "hsl(54.5,91.7%,95.3%)", + }, + { + scale: 100, + hex: "#fef9c3", + rgb: "rgb(254,249,195)", + hsl: "hsl(54.9,96.7%,88%)", + }, + { + scale: 200, + hex: "#fef08a", + rgb: "rgb(254,240,138)", + hsl: "hsl(52.8,98.3%,76.9%)", + }, + { + scale: 300, + hex: "#fde047", + rgb: "rgb(253,224,71)", + hsl: "hsl(50.4,97.8%,63.5%)", + }, + { + scale: 400, + hex: "#facc15", + rgb: "rgb(250,204,21)", + hsl: "hsl(47.9,95.8%,53.1%)", + }, + { + scale: 500, + hex: "#eab308", + rgb: "rgb(234,179,8)", + hsl: "hsl(45.4,93.4%,47.5%)", + }, + { + scale: 600, + hex: "#ca8a04", + rgb: "rgb(202,138,4)", + hsl: "hsl(40.6,96.1%,40.4%)", + }, + { + scale: 700, + hex: "#a16207", + rgb: "rgb(161,98,7)", + hsl: "hsl(35.5,91.7%,32.9%)", + }, + { + scale: 800, + hex: "#854d0e", + rgb: "rgb(133,77,14)", + hsl: "hsl(31.8,81%,28.8%)", + }, + { + scale: 900, + hex: "#713f12", + rgb: "rgb(113,63,18)", + hsl: "hsl(28.4,72.5%,25.7%)", + }, + { + scale: 950, + hex: "#422006", + rgb: "rgb(66,32,6)", + hsl: "hsl(26,83.3%,14.1%)", + }, + ], + lime: [ + { + scale: 50, + hex: "#f7fee7", + rgb: "rgb(247,254,231)", + hsl: "hsl(78.3,92%,95.1%)", + }, + { + scale: 100, + hex: "#ecfccb", + rgb: "rgb(236,252,203)", + hsl: "hsl(79.6,89.1%,89.2%)", + }, + { + scale: 200, + hex: "#d9f99d", + rgb: "rgb(217,249,157)", + hsl: "hsl(80.9,88.5%,79.6%)", + }, + { + scale: 300, + hex: "#bef264", + rgb: "rgb(190,242,100)", + hsl: "hsl(82,84.5%,67.1%)", + }, + { + scale: 400, + hex: "#a3e635", + rgb: "rgb(163,230,53)", + hsl: "hsl(82.7,78%,55.5%)", + }, + { + scale: 500, + hex: "#84cc16", + rgb: "rgb(132,204,22)", + hsl: "hsl(83.7,80.5%,44.3%)", + }, + { + scale: 600, + hex: "#65a30d", + rgb: "rgb(101,163,13)", + hsl: "hsl(84.8,85.2%,34.5%)", + }, + { + scale: 700, + hex: "#4d7c0f", + rgb: "rgb(77,124,15)", + hsl: "hsl(85.9,78.4%,27.3%)", + }, + { + scale: 800, + hex: "#3f6212", + rgb: "rgb(63,98,18)", + hsl: "hsl(86.3,69%,22.7%)", + }, + { + scale: 900, + hex: "#365314", + rgb: "rgb(54,83,20)", + hsl: "hsl(87.6,61.2%,20.2%)", + }, + { + scale: 950, + hex: "#1a2e05", + rgb: "rgb(26,46,5)", + hsl: "hsl(89.3,80.4%,10%)", + }, + ], + green: [ + { + scale: 50, + hex: "#f0fdf4", + rgb: "rgb(240,253,244)", + hsl: "hsl(138.5,76.5%,96.7%)", + }, + { + scale: 100, + hex: "#dcfce7", + rgb: "rgb(220,252,231)", + hsl: "hsl(140.6,84.2%,92.5%)", + }, + { + scale: 200, + hex: "#bbf7d0", + rgb: "rgb(187,247,208)", + hsl: "hsl(141,78.9%,85.1%)", + }, + { + scale: 300, + hex: "#86efac", + rgb: "rgb(134,239,172)", + hsl: "hsl(141.7,76.6%,73.1%)", + }, + { + scale: 400, + hex: "#4ade80", + rgb: "rgb(74,222,128)", + hsl: "hsl(141.9,69.2%,58%)", + }, + { + scale: 500, + hex: "#22c55e", + rgb: "rgb(34,197,94)", + hsl: "hsl(142.1,70.6%,45.3%)", + }, + { + scale: 600, + hex: "#16a34a", + rgb: "rgb(22,163,74)", + hsl: "hsl(142.1,76.2%,36.3%)", + }, + { + scale: 700, + hex: "#15803d", + rgb: "rgb(21,128,61)", + hsl: "hsl(142.4,71.8%,29.2%)", + }, + { + scale: 800, + hex: "#166534", + rgb: "rgb(22,101,52)", + hsl: "hsl(142.8,64.2%,24.1%)", + }, + { + scale: 900, + hex: "#14532d", + rgb: "rgb(20,83,45)", + hsl: "hsl(143.8,61.2%,20.2%)", + }, + { + scale: 950, + hex: "#052e16", + rgb: "rgb(5,46,22)", + hsl: "hsl(144.9,80.4%,10%)", + }, + ], + emerald: [ + { + scale: 50, + hex: "#ecfdf5", + rgb: "rgb(236,253,245)", + hsl: "hsl(151.8,81%,95.9%)", + }, + { + scale: 100, + hex: "#d1fae5", + rgb: "rgb(209,250,229)", + hsl: "hsl(149.3,80.4%,90%)", + }, + { + scale: 200, + hex: "#a7f3d0", + rgb: "rgb(167,243,208)", + hsl: "hsl(152.4,76%,80.4%)", + }, + { + scale: 300, + hex: "#6ee7b7", + rgb: "rgb(110,231,183)", + hsl: "hsl(156.2,71.6%,66.9%)", + }, + { + scale: 400, + hex: "#34d399", + rgb: "rgb(52,211,153)", + hsl: "hsl(158.1,64.4%,51.6%)", + }, + { + scale: 500, + hex: "#10b981", + rgb: "rgb(16,185,129)", + hsl: "hsl(160.1,84.1%,39.4%)", + }, + { + scale: 600, + hex: "#059669", + rgb: "rgb(5,150,105)", + hsl: "hsl(161.4,93.5%,30.4%)", + }, + { + scale: 700, + hex: "#047857", + rgb: "rgb(4,120,87)", + hsl: "hsl(162.9,93.5%,24.3%)", + }, + { + scale: 800, + hex: "#065f46", + rgb: "rgb(6,95,70)", + hsl: "hsl(163.1,88.1%,19.8%)", + }, + { + scale: 900, + hex: "#064e3b", + rgb: "rgb(6,78,59)", + hsl: "hsl(164.2,85.7%,16.5%)", + }, + { + scale: 950, + hex: "#022c22", + rgb: "rgb(2,44,34)", + hsl: "hsl(165.7,91.3%,9%)", + }, + ], + teal: [ + { + scale: 50, + hex: "#f0fdfa", + rgb: "rgb(240,253,250)", + hsl: "hsl(166.2,76.5%,96.7%)", + }, + { + scale: 100, + hex: "#ccfbf1", + rgb: "rgb(204,251,241)", + hsl: "hsl(167.2,85.5%,89.2%)", + }, + { + scale: 200, + hex: "#99f6e4", + rgb: "rgb(153,246,228)", + hsl: "hsl(168.4,83.8%,78.2%)", + }, + { + scale: 300, + hex: "#5eead4", + rgb: "rgb(94,234,212)", + hsl: "hsl(170.6,76.9%,64.3%)", + }, + { + scale: 400, + hex: "#2dd4bf", + rgb: "rgb(45,212,191)", + hsl: "hsl(172.5,66%,50.4%)", + }, + { + scale: 500, + hex: "#14b8a6", + rgb: "rgb(20,184,166)", + hsl: "hsl(173.4,80.4%,40%)", + }, + { + scale: 600, + hex: "#0d9488", + rgb: "rgb(13,148,136)", + hsl: "hsl(174.7,83.9%,31.6%)", + }, + { + scale: 700, + hex: "#0f766e", + rgb: "rgb(15,118,110)", + hsl: "hsl(175.3,77.4%,26.1%)", + }, + { + scale: 800, + hex: "#115e59", + rgb: "rgb(17,94,89)", + hsl: "hsl(176.1,69.4%,21.8%)", + }, + { + scale: 900, + hex: "#134e4a", + rgb: "rgb(19,78,74)", + hsl: "hsl(175.9,60.8%,19%)", + }, + { + scale: 950, + hex: "#042f2e", + rgb: "rgb(4,47,46)", + hsl: "hsl(178.6,84.3%,10%)", + }, + ], + cyan: [ + { + scale: 50, + hex: "#ecfeff", + rgb: "rgb(236,254,255)", + hsl: "hsl(183.2,100%,96.3%)", + }, + { + scale: 100, + hex: "#cffafe", + rgb: "rgb(207,250,254)", + hsl: "hsl(185.1,95.9%,90.4%)", + }, + { + scale: 200, + hex: "#a5f3fc", + rgb: "rgb(165,243,252)", + hsl: "hsl(186.2,93.5%,81.8%)", + }, + { + scale: 300, + hex: "#67e8f9", + rgb: "rgb(103,232,249)", + hsl: "hsl(187,92.4%,69%)", + }, + { + scale: 400, + hex: "#22d3ee", + rgb: "rgb(34,211,238)", + hsl: "hsl(187.9,85.7%,53.3%)", + }, + { + scale: 500, + hex: "#06b6d4", + rgb: "rgb(6,182,212)", + hsl: "hsl(188.7,94.5%,42.7%)", + }, + { + scale: 600, + hex: "#0891b2", + rgb: "rgb(8,145,178)", + hsl: "hsl(191.6,91.4%,36.5%)", + }, + { + scale: 700, + hex: "#0e7490", + rgb: "rgb(14,116,144)", + hsl: "hsl(192.9,82.3%,31%)", + }, + { + scale: 800, + hex: "#155e75", + rgb: "rgb(21,94,117)", + hsl: "hsl(194.4,69.6%,27.1%)", + }, + { + scale: 900, + hex: "#164e63", + rgb: "rgb(22,78,99)", + hsl: "hsl(196.4,63.6%,23.7%)", + }, + { + scale: 950, + hex: "#083344", + rgb: "rgb(8,51,68)", + hsl: "hsl(197,78.9%,14.9%)", + }, + ], + sky: [ + { + scale: 50, + hex: "#f0f9ff", + rgb: "rgb(240,249,255)", + hsl: "hsl(204,100%,97.1%)", + }, + { + scale: 100, + hex: "#e0f2fe", + rgb: "rgb(224,242,254)", + hsl: "hsl(204,93.8%,93.7%)", + }, + { + scale: 200, + hex: "#bae6fd", + rgb: "rgb(186,230,253)", + hsl: "hsl(200.6,94.4%,86.1%)", + }, + { + scale: 300, + hex: "#7dd3fc", + rgb: "rgb(125,211,252)", + hsl: "hsl(199.4,95.5%,73.9%)", + }, + { + scale: 400, + hex: "#38bdf8", + rgb: "rgb(56,189,248)", + hsl: "hsl(198.4,93.2%,59.6%)", + }, + { + scale: 500, + hex: "#0ea5e9", + rgb: "rgb(14,165,233)", + hsl: "hsl(198.6,88.7%,48.4%)", + }, + { + scale: 600, + hex: "#0284c7", + rgb: "rgb(2,132,199)", + hsl: "hsl(200.4,98%,39.4%)", + }, + { + scale: 700, + hex: "#0369a1", + rgb: "rgb(3,105,161)", + hsl: "hsl(201.3,96.3%,32.2%)", + }, + { + scale: 800, + hex: "#075985", + rgb: "rgb(7,89,133)", + hsl: "hsl(201,90%,27.5%)", + }, + { + scale: 900, + hex: "#0c4a6e", + rgb: "rgb(12,74,110)", + hsl: "hsl(202,80.3%,23.9%)", + }, + { + scale: 950, + hex: "#082f49", + rgb: "rgb(8,47,73)", + hsl: "hsl(204,80.2%,15.9%)", + }, + ], + blue: [ + { + scale: 50, + hex: "#eff6ff", + rgb: "rgb(239,246,255)", + hsl: "hsl(213.8,100%,96.9%)", + }, + { + scale: 100, + hex: "#dbeafe", + rgb: "rgb(219,234,254)", + hsl: "hsl(214.3,94.6%,92.7%)", + }, + { + scale: 200, + hex: "#bfdbfe", + rgb: "rgb(191,219,254)", + hsl: "hsl(213.3,96.9%,87.3%)", + }, + { + scale: 300, + hex: "#93c5fd", + rgb: "rgb(147,197,253)", + hsl: "hsl(211.7,96.4%,78.4%)", + }, + { + scale: 400, + hex: "#60a5fa", + rgb: "rgb(96,165,250)", + hsl: "hsl(213.1,93.9%,67.8%)", + }, + { + scale: 500, + hex: "#3b82f6", + rgb: "rgb(59,130,246)", + hsl: "hsl(217.2,91.2%,59.8%)", + }, + { + scale: 600, + hex: "#2563eb", + rgb: "rgb(37,99,235)", + hsl: "hsl(221.2,83.2%,53.3%)", + }, + { + scale: 700, + hex: "#1d4ed8", + rgb: "rgb(29,78,216)", + hsl: "hsl(224.3,76.3%,48%)", + }, + { + scale: 800, + hex: "#1e40af", + rgb: "rgb(30,64,175)", + hsl: "hsl(225.9,70.7%,40.2%)", + }, + { + scale: 900, + hex: "#1e3a8a", + rgb: "rgb(30,58,138)", + hsl: "hsl(224.4,64.3%,32.9%)", + }, + { + scale: 950, + hex: "#172554", + rgb: "rgb(23,37,84)", + hsl: "hsl(226.2,57%,21%)", + }, + ], + indigo: [ + { + scale: 50, + hex: "#eef2ff", + rgb: "rgb(238,242,255)", + hsl: "hsl(225.9,100%,96.7%)", + }, + { + scale: 100, + hex: "#e0e7ff", + rgb: "rgb(224,231,255)", + hsl: "hsl(226.5,100%,93.9%)", + }, + { + scale: 200, + hex: "#c7d2fe", + rgb: "rgb(199,210,254)", + hsl: "hsl(228,96.5%,88.8%)", + }, + { + scale: 300, + hex: "#a5b4fc", + rgb: "rgb(165,180,252)", + hsl: "hsl(229.7,93.5%,81.8%)", + }, + { + scale: 400, + hex: "#818cf8", + rgb: "rgb(129,140,248)", + hsl: "hsl(234.5,89.5%,73.9%)", + }, + { + scale: 500, + hex: "#6366f1", + rgb: "rgb(99,102,241)", + hsl: "hsl(238.7,83.5%,66.7%)", + }, + { + scale: 600, + hex: "#4f46e5", + rgb: "rgb(79,70,229)", + hsl: "hsl(243.4,75.4%,58.6%)", + }, + { + scale: 700, + hex: "#4338ca", + rgb: "rgb(67,56,202)", + hsl: "hsl(244.5,57.9%,50.6%)", + }, + { + scale: 800, + hex: "#3730a3", + rgb: "rgb(55,48,163)", + hsl: "hsl(243.7,54.5%,41.4%)", + }, + { + scale: 900, + hex: "#312e81", + rgb: "rgb(49,46,129)", + hsl: "hsl(242.2,47.4%,34.3%)", + }, + { + scale: 950, + hex: "#1e1b4b", + rgb: "rgb(30,27,75)", + hsl: "hsl(243.8,47.1%,20%)", + }, + ], + violet: [ + { + scale: 50, + hex: "#f5f3ff", + rgb: "rgb(245,243,255)", + hsl: "hsl(250,100%,97.6%)", + }, + { + scale: 100, + hex: "#ede9fe", + rgb: "rgb(237,233,254)", + hsl: "hsl(251.4,91.3%,95.5%)", + }, + { + scale: 200, + hex: "#ddd6fe", + rgb: "rgb(221,214,254)", + hsl: "hsl(250.5,95.2%,91.8%)", + }, + { + scale: 300, + hex: "#c4b5fd", + rgb: "rgb(196,181,253)", + hsl: "hsl(252.5,94.7%,85.1%)", + }, + { + scale: 400, + hex: "#a78bfa", + rgb: "rgb(167,139,250)", + hsl: "hsl(255.1,91.7%,76.3%)", + }, + { + scale: 500, + hex: "#8b5cf6", + rgb: "rgb(139,92,246)", + hsl: "hsl(258.3,89.5%,66.3%)", + }, + { + scale: 600, + hex: "#7c3aed", + rgb: "rgb(124,58,237)", + hsl: "hsl(262.1,83.3%,57.8%)", + }, + { + scale: 700, + hex: "#6d28d9", + rgb: "rgb(109,40,217)", + hsl: "hsl(263.4,70%,50.4%)", + }, + { + scale: 800, + hex: "#5b21b6", + rgb: "rgb(91,33,182)", + hsl: "hsl(263.4,69.3%,42.2%)", + }, + { + scale: 900, + hex: "#4c1d95", + rgb: "rgb(76,29,149)", + hsl: "hsl(263.5,67.4%,34.9%)", + }, + { + scale: 950, + hex: "#1e1b4b", + rgb: "rgb(46,16,101)", + hsl: "hsl(261.2,72.6%,22.9%)", + }, + ], + purple: [ + { + scale: 50, + hex: "#faf5ff", + rgb: "rgb(250,245,255)", + hsl: "hsl(270,100%,98%)", + }, + { + scale: 100, + hex: "#f3e8ff", + rgb: "rgb(243,232,255)", + hsl: "hsl(268.7,100%,95.5%)", + }, + { + scale: 200, + hex: "#e9d5ff", + rgb: "rgb(233,213,255)", + hsl: "hsl(268.6,100%,91.8%)", + }, + { + scale: 300, + hex: "#d8b4fe", + rgb: "rgb(216,180,254)", + hsl: "hsl(269.2,97.4%,85.1%)", + }, + { + scale: 400, + hex: "#c084fc", + rgb: "rgb(192,132,252)", + hsl: "hsl(270,95.2%,75.3%)", + }, + { + scale: 500, + hex: "#a855f7", + rgb: "rgb(168,85,247)", + hsl: "hsl(270.7,91%,65.1%)", + }, + { + scale: 600, + hex: "#9333ea", + rgb: "rgb(147,51,234)", + hsl: "hsl(271.5,81.3%,55.9%)", + }, + { + scale: 700, + hex: "#7e22ce", + rgb: "rgb(126,34,206)", + hsl: "hsl(272.1,71.7%,47.1%)", + }, + { + scale: 800, + hex: "#6b21a8", + rgb: "rgb(107,33,168)", + hsl: "hsl(272.9,67.2%,39.4%)", + }, + { + scale: 900, + hex: "#581c87", + rgb: "rgb(88,28,135)", + hsl: "hsl(273.6,65.6%,32%)", + }, + { + scale: 950, + hex: "#3b0764", + rgb: "rgb(59,7,100)", + hsl: "hsl(273.5,86.9%,21%)", + }, + ], + fuchsia: [ + { + scale: 50, + hex: "#fdf4ff", + rgb: "rgb(253,244,255)", + hsl: "hsl(289.1,100%,97.8%)", + }, + { + scale: 100, + hex: "#fae8ff", + rgb: "rgb(250,232,255)", + hsl: "hsl(287,100%,95.5%)", + }, + { + scale: 200, + hex: "#f5d0fe", + rgb: "rgb(245,208,254)", + hsl: "hsl(288.3,95.8%,90.6%)", + }, + { + scale: 300, + hex: "#f0abfc", + rgb: "rgb(240,171,252)", + hsl: "hsl(291.1,93.1%,82.9%)", + }, + { + scale: 400, + hex: "#e879f9", + rgb: "rgb(232,121,249)", + hsl: "hsl(292,91.4%,72.5%)", + }, + { + scale: 500, + hex: "#d946ef", + rgb: "rgb(217,70,239)", + hsl: "hsl(292.2,84.1%,60.6%)", + }, + { + scale: 600, + hex: "#c026d3", + rgb: "rgb(192,38,211)", + hsl: "hsl(293.4,69.5%,48.8%)", + }, + { + scale: 700, + hex: "#a21caf", + rgb: "rgb(162,28,175)", + hsl: "hsl(294.7,72.4%,39.8%)", + }, + { + scale: 800, + hex: "#86198f", + rgb: "rgb(134,25,143)", + hsl: "hsl(295.4,70.2%,32.9%)", + }, + { + scale: 900, + hex: "#701a75", + rgb: "rgb(112,26,117)", + hsl: "hsl(296.7,63.6%,28%)", + }, + { + scale: 950, + hex: "#4a044e", + rgb: "rgb(74,4,78)", + hsl: "hsl(296.8,90.2%,16.1%)", + }, + ], + pink: [ + { + scale: 50, + hex: "#fdf2f8", + rgb: "rgb(253,242,248)", + hsl: "hsl(327.3,73.3%,97.1%)", + }, + { + scale: 100, + hex: "#fce7f3", + rgb: "rgb(252,231,243)", + hsl: "hsl(325.7,77.8%,94.7%)", + }, + { + scale: 200, + hex: "#fbcfe8", + rgb: "rgb(251,207,232)", + hsl: "hsl(325.9,84.6%,89.8%)", + }, + { + scale: 300, + hex: "#f9a8d4", + rgb: "rgb(249,168,212)", + hsl: "hsl(327.4,87.1%,81.8%)", + }, + { + scale: 400, + hex: "#f472b6", + rgb: "rgb(244,114,182)", + hsl: "hsl(328.6,85.5%,70.2%)", + }, + { + scale: 500, + hex: "#ec4899", + rgb: "rgb(236,72,153)", + hsl: "hsl(330.4,81.2%,60.4%)", + }, + { + scale: 600, + hex: "#db2777", + rgb: "rgb(219,39,119)", + hsl: "hsl(333.3,71.4%,50.6%)", + }, + { + scale: 700, + hex: "#be185d", + rgb: "rgb(190,24,93)", + hsl: "hsl(335.1,77.6%,42%)", + }, + { + scale: 800, + hex: "#9d174d", + rgb: "rgb(157,23,77)", + hsl: "hsl(335.8,74.4%,35.3%)", + }, + { + scale: 900, + hex: "#831843", + rgb: "rgb(131,24,67)", + hsl: "hsl(335.9,69%,30.4%)", + }, + { + scale: 950, + hex: "#500724", + rgb: "rgb(80,7,36)", + hsl: "hsl(336.2,83.9%,17.1%)", + }, + ], + rose: [ + { + scale: 50, + hex: "#fff1f2", + rgb: "rgb(255,241,242)", + hsl: "hsl(355.7,100%,97.3%)", + }, + { + scale: 100, + hex: "#ffe4e6", + rgb: "rgb(255,228,230)", + hsl: "hsl(355.6,100%,94.7%)", + }, + { + scale: 200, + hex: "#fecdd3", + rgb: "rgb(254,205,211)", + hsl: "hsl(352.7,96.1%,90%)", + }, + { + scale: 300, + hex: "#fda4af", + rgb: "rgb(253,164,175)", + hsl: "hsl(352.6,95.7%,81.8%)", + }, + { + scale: 400, + hex: "#fb7185", + rgb: "rgb(251,113,133)", + hsl: "hsl(351.3,94.5%,71.4%)", + }, + { + scale: 500, + hex: "#f43f5e", + rgb: "rgb(244,63,94)", + hsl: "hsl(349.7,89.2%,60.2%)", + }, + { + scale: 600, + hex: "#e11d48", + rgb: "rgb(225,29,72)", + hsl: "hsl(346.8,77.2%,49.8%)", + }, + { + scale: 700, + hex: "#be123c", + rgb: "rgb(190,18,60)", + hsl: "hsl(345.3,82.7%,40.8%)", + }, + { + scale: 800, + hex: "#9f1239", + rgb: "rgb(159,18,57)", + hsl: "hsl(343.4,79.7%,34.7%)", + }, + { + scale: 900, + hex: "#881337", + rgb: "rgb(136,19,55)", + hsl: "hsl(341.5,75.5%,30.4%)", + }, + { + scale: 950, + hex: "#4c0519", + rgb: "rgb(76,5,25)", + hsl: "hsl(343.1,87.7%,15.9%)", + }, + ], +}; + +export const colorMapping = { + light: { + background: "white", + foreground: "{{base}}-950", + card: "white", + "card-foreground": "{{base}}-950", + popover: "white", + "popover-foreground": "{{base}}-950", + primary: "{{base}}-900", + "primary-foreground": "{{base}}-50", + secondary: "{{base}}-100", + "secondary-foreground": "{{base}}-900", + muted: "{{base}}-100", + "muted-foreground": "{{base}}-500", + accent: "{{base}}-100", + "accent-foreground": "{{base}}-900", + destructive: "red-500", + "destructive-foreground": "{{base}}-50", + border: "{{base}}-200", + input: "{{base}}-200", + ring: "{{base}}-950", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "{{base}}-950", + foreground: "{{base}}-50", + card: "{{base}}-950", + "card-foreground": "{{base}}-50", + popover: "{{base}}-950", + "popover-foreground": "{{base}}-50", + primary: "{{base}}-50", + "primary-foreground": "{{base}}-900", + secondary: "{{base}}-800", + "secondary-foreground": "{{base}}-50", + muted: "{{base}}-800", + "muted-foreground": "{{base}}-400", + accent: "{{base}}-800", + "accent-foreground": "{{base}}-50", + destructive: "red-900", + "destructive-foreground": "{{base}}-50", + border: "{{base}}-800", + input: "{{base}}-800", + ring: "{{base}}-300", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, +} as const; + +export const colorsData = () => { + const responseColorsData: Record = {}; + for (const [color, value] of Object.entries(colors)) { + if (typeof value === "string") { + responseColorsData[color] = value; + continue; + } + + if (Array.isArray(value)) { + responseColorsData[color] = value.map((item) => ({ + ...item, + rgbChannel: item.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, "$1 $2 $3"), + hslChannel: item.hsl.replace( + /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, + "$1 $2 $3" + ), + })); + continue; + } + + if (typeof value === "object") { + responseColorsData[color] = { + ...value, + rgbChannel: value.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, "$1 $2 $3"), + hslChannel: value.hsl.replace( + /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, + "$1 $2 $3" + ), + }; + } + } + + return responseColorsData; +}; + +export const availableColors: string[] = [ + "slate", + "gray", + "zinc", + "neutral", + "stone", +]; diff --git a/apps/www/src/registry/default/ui/button.directive.ts b/apps/www/src/registry/default/ui/button.directive.ts new file mode 100644 index 0000000..88f1def --- /dev/null +++ b/apps/www/src/registry/default/ui/button.directive.ts @@ -0,0 +1,64 @@ +import { computed, Directive, input } from "@angular/core"; + +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +export const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +); + +type ButtonProps = VariantProps; + +export type UbButtonSize = NonNullable; +export type UbButtonVariant = NonNullable; + +@Directive({ + selector: "[ubButton]", + standalone: true, + host: { + "[class]": "computedClass()", + }, +}) +export class UbButtonDirective { + readonly class = input(); + + readonly variant = input("default"); + + readonly size = input("default"); + + protected computedClass = computed(() => + cn( + buttonVariants({ + variant: this.variant(), + size: this.size(), + class: this.class(), + }) + ) + ); +} diff --git a/apps/www/src/registry/examples.ts b/apps/www/src/registry/examples.ts new file mode 100644 index 0000000..679338e --- /dev/null +++ b/apps/www/src/registry/examples.ts @@ -0,0 +1,3 @@ +import type { Registry } from "./schema"; + +export const examples: Registry = []; diff --git a/apps/www/src/registry/new-york/ui/button.directive.ts b/apps/www/src/registry/new-york/ui/button.directive.ts new file mode 100644 index 0000000..39df23d --- /dev/null +++ b/apps/www/src/registry/new-york/ui/button.directive.ts @@ -0,0 +1,65 @@ +import { computed, Directive, input } from "@angular/core"; + +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +export const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +); + +type ButtonProps = VariantProps; + +export type ButtonSize = NonNullable; +export type ButtonVariant = NonNullable; + +@Directive({ + selector: "[ubButton]", + standalone: true, + host: { + "[class]": "computedClass()", + }, +}) +export class UbButtonDirective { + readonly class = input(); + + readonly variant = input("default"); + + readonly size = input("default"); + + protected computedClass = computed(() => + cn( + buttonVariants({ + variant: this.variant(), + size: this.size(), + class: this.class(), + }) + ) + ); +} diff --git a/apps/www/src/registry/registry.ts b/apps/www/src/registry/registry.ts new file mode 100644 index 0000000..740f2f9 --- /dev/null +++ b/apps/www/src/registry/registry.ts @@ -0,0 +1,7 @@ +import { blocks } from "./blocks"; +import { charts } from "./charts"; +import { examples } from "./examples"; +import type { Registry } from "./schema"; +import { ui } from "./ui"; + +export const registry: Registry = [...ui, ...examples, ...blocks, ...charts]; diff --git a/apps/www/src/registry/schema.ts b/apps/www/src/registry/schema.ts new file mode 100644 index 0000000..1fbac91 --- /dev/null +++ b/apps/www/src/registry/schema.ts @@ -0,0 +1,58 @@ +import { z } from "astro/zod"; + +export const blockChunkSchema = z.object({ + name: z.string(), + description: z.string(), + component: z.any(), + file: z.string(), + code: z.string().optional(), + container: z + .object({ + className: z.string().nullish(), + }) + .optional(), +}); + +export const registryEntrySchema = z.object({ + name: z.string(), + description: z.string().optional(), + dependencies: z.array(z.string()).optional(), + devDependencies: z.array(z.string()).optional(), + registryDependencies: z.array(z.string()).optional(), + files: z.array(z.string()), + source: z.string().optional(), + type: z.enum([ + "components:ui", + "components:component", + "components:example", + "components:block", + "components:chart", + ]), + category: z.string().optional(), + subcategory: z.string().optional(), + chunks: z.array(blockChunkSchema).optional(), +}); + +export const registrySchema = z.array(registryEntrySchema); + +export type RegistryEntry = z.infer; + +export type Registry = z.infer; + +export const blockSchema = registryEntrySchema.extend({ + type: z.literal("components:block"), + style: z.enum(["default", "new-york"]), + component: z.any(), + container: z + .object({ + height: z.string().nullish(), + className: z.string().nullish(), + }) + .optional(), + code: z.string(), + highlightedCode: z.string(), +}); + +export type Block = z.infer; + +export type BlockChunk = z.infer; diff --git a/apps/www/src/registry/styles.ts b/apps/www/src/registry/styles.ts new file mode 100644 index 0000000..c3b98ee --- /dev/null +++ b/apps/www/src/registry/styles.ts @@ -0,0 +1,12 @@ +export const styles = [ + { + name: "default", + label: "Default", + }, + { + name: "new-york", + label: "New York", + }, +] as const; + +export type Style = (typeof styles)[number]; diff --git a/apps/www/src/registry/themes.ts b/apps/www/src/registry/themes.ts new file mode 100644 index 0000000..8db7e38 --- /dev/null +++ b/apps/www/src/registry/themes.ts @@ -0,0 +1,756 @@ +export const themes = [ + { + name: "zinc", + label: "Zinc", + activeColor: { + light: "240 5.9% 10%", + dark: "240 5.2% 33.9%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "240 10% 3.9%", + card: "0 0% 100%", + "card-foreground": "240 10% 3.9%", + popover: "0 0% 100%", + "popover-foreground": "240 10% 3.9%", + primary: "240 5.9% 10%", + "primary-foreground": "0 0% 98%", + secondary: "240 4.8% 95.9%", + "secondary-foreground": "240 5.9% 10%", + muted: "240 4.8% 95.9%", + "muted-foreground": "240 3.8% 46.1%", + accent: "240 4.8% 95.9%", + "accent-foreground": "240 5.9% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + border: "240 5.9% 90%", + input: "240 5.9% 90%", + ring: "240 5.9% 10%", + radius: "0.5rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "240 10% 3.9%", + foreground: "0 0% 98%", + card: "240 10% 3.9%", + "card-foreground": "0 0% 98%", + popover: "240 10% 3.9%", + "popover-foreground": "0 0% 98%", + primary: "0 0% 98%", + "primary-foreground": "240 5.9% 10%", + secondary: "240 3.7% 15.9%", + "secondary-foreground": "0 0% 98%", + muted: "240 3.7% 15.9%", + "muted-foreground": "240 5% 64.9%", + accent: "240 3.7% 15.9%", + "accent-foreground": "0 0% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "0 0% 98%", + border: "240 3.7% 15.9%", + input: "240 3.7% 15.9%", + ring: "240 4.9% 83.9%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "slate", + label: "Slate", + activeColor: { + light: "215.4 16.3% 46.9%", + dark: "215.3 19.3% 34.5%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "222.2 84% 4.9%", + card: "0 0% 100%", + "card-foreground": "222.2 84% 4.9%", + popover: "0 0% 100%", + "popover-foreground": "222.2 84% 4.9%", + primary: "222.2 47.4% 11.2%", + "primary-foreground": "210 40% 98%", + secondary: "210 40% 96.1%", + "secondary-foreground": "222.2 47.4% 11.2%", + muted: "210 40% 96.1%", + "muted-foreground": "215.4 16.3% 46.9%", + accent: "210 40% 96.1%", + "accent-foreground": "222.2 47.4% 11.2%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "210 40% 98%", + border: "214.3 31.8% 91.4%", + input: "214.3 31.8% 91.4%", + ring: "222.2 84% 4.9%", + radius: "0.5rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "222.2 84% 4.9%", + foreground: "210 40% 98%", + card: "222.2 84% 4.9%", + "card-foreground": "210 40% 98%", + popover: "222.2 84% 4.9%", + "popover-foreground": "210 40% 98%", + primary: "210 40% 98%", + "primary-foreground": "222.2 47.4% 11.2%", + secondary: "217.2 32.6% 17.5%", + "secondary-foreground": "210 40% 98%", + muted: "217.2 32.6% 17.5%", + "muted-foreground": "215 20.2% 65.1%", + accent: "217.2 32.6% 17.5%", + "accent-foreground": "210 40% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "210 40% 98%", + border: "217.2 32.6% 17.5%", + input: "217.2 32.6% 17.5%", + ring: "212.7 26.8% 83.9", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "stone", + label: "Stone", + activeColor: { + light: "25 5.3% 44.7%", + dark: "33.3 5.5% 32.4%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "20 14.3% 4.1%", + card: "0 0% 100%", + "card-foreground": "20 14.3% 4.1%", + popover: "0 0% 100%", + "popover-foreground": "20 14.3% 4.1%", + primary: "24 9.8% 10%", + "primary-foreground": "60 9.1% 97.8%", + secondary: "60 4.8% 95.9%", + "secondary-foreground": "24 9.8% 10%", + muted: "60 4.8% 95.9%", + "muted-foreground": "25 5.3% 44.7%", + accent: "60 4.8% 95.9%", + "accent-foreground": "24 9.8% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "60 9.1% 97.8%", + border: "20 5.9% 90%", + input: "20 5.9% 90%", + ring: "20 14.3% 4.1%", + radius: "0.95rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "20 14.3% 4.1%", + foreground: "60 9.1% 97.8%", + card: "20 14.3% 4.1%", + "card-foreground": "60 9.1% 97.8%", + popover: "20 14.3% 4.1%", + "popover-foreground": "60 9.1% 97.8%", + primary: "60 9.1% 97.8%", + "primary-foreground": "24 9.8% 10%", + secondary: "12 6.5% 15.1%", + "secondary-foreground": "60 9.1% 97.8%", + muted: "12 6.5% 15.1%", + "muted-foreground": "24 5.4% 63.9%", + accent: "12 6.5% 15.1%", + "accent-foreground": "60 9.1% 97.8%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "60 9.1% 97.8%", + border: "12 6.5% 15.1%", + input: "12 6.5% 15.1%", + ring: "24 5.7% 82.9%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "gray", + label: "Gray", + activeColor: { + light: "220 8.9% 46.1%", + dark: "215 13.8% 34.1%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "224 71.4% 4.1%", + card: "0 0% 100%", + "card-foreground": "224 71.4% 4.1%", + popover: "0 0% 100%", + "popover-foreground": "224 71.4% 4.1%", + primary: "220.9 39.3% 11%", + "primary-foreground": "210 20% 98%", + secondary: "220 14.3% 95.9%", + "secondary-foreground": "220.9 39.3% 11%", + muted: "220 14.3% 95.9%", + "muted-foreground": "220 8.9% 46.1%", + accent: "220 14.3% 95.9%", + "accent-foreground": "220.9 39.3% 11%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "210 20% 98%", + border: "220 13% 91%", + input: "220 13% 91%", + ring: "224 71.4% 4.1%", + radius: "0.35rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "224 71.4% 4.1%", + foreground: "210 20% 98%", + card: "224 71.4% 4.1%", + "card-foreground": "210 20% 98%", + popover: "224 71.4% 4.1%", + "popover-foreground": "210 20% 98%", + primary: "210 20% 98%", + "primary-foreground": "220.9 39.3% 11%", + secondary: "215 27.9% 16.9%", + "secondary-foreground": "210 20% 98%", + muted: "215 27.9% 16.9%", + "muted-foreground": "217.9 10.6% 64.9%", + accent: "215 27.9% 16.9%", + "accent-foreground": "210 20% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "210 20% 98%", + border: "215 27.9% 16.9%", + input: "215 27.9% 16.9%", + ring: "216 12.2% 83.9%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "neutral", + label: "Neutral", + activeColor: { + light: "0 0% 45.1%", + dark: "0 0% 32.2%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "0 0% 3.9%", + card: "0 0% 100%", + "card-foreground": "0 0% 3.9%", + popover: "0 0% 100%", + "popover-foreground": "0 0% 3.9%", + primary: "0 0% 9%", + "primary-foreground": "0 0% 98%", + secondary: "0 0% 96.1%", + "secondary-foreground": "0 0% 9%", + muted: "0 0% 96.1%", + "muted-foreground": "0 0% 45.1%", + accent: "0 0% 96.1%", + "accent-foreground": "0 0% 9%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + border: "0 0% 89.8%", + input: "0 0% 89.8%", + ring: "0 0% 3.9%", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "0 0% 3.9%", + foreground: "0 0% 98%", + card: "0 0% 3.9%", + "card-foreground": "0 0% 98%", + popover: "0 0% 3.9%", + "popover-foreground": "0 0% 98%", + primary: "0 0% 98%", + "primary-foreground": "0 0% 9%", + secondary: "0 0% 14.9%", + "secondary-foreground": "0 0% 98%", + muted: "0 0% 14.9%", + "muted-foreground": "0 0% 63.9%", + accent: "0 0% 14.9%", + "accent-foreground": "0 0% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "0 0% 98%", + border: "0 0% 14.9%", + input: "0 0% 14.9%", + ring: "0 0% 83.1%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "red", + label: "Red", + activeColor: { + light: "0 72.2% 50.6%", + dark: "0 72.2% 50.6%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "0 0% 3.9%", + card: "0 0% 100%", + "card-foreground": "0 0% 3.9%", + popover: "0 0% 100%", + "popover-foreground": "0 0% 3.9%", + primary: "0 72.2% 50.6%", + "primary-foreground": "0 85.7% 97.3%", + secondary: "0 0% 96.1%", + "secondary-foreground": "0 0% 9%", + muted: "0 0% 96.1%", + "muted-foreground": "0 0% 45.1%", + accent: "0 0% 96.1%", + "accent-foreground": "0 0% 9%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + border: "0 0% 89.8%", + input: "0 0% 89.8%", + ring: "0 72.2% 50.6%", + radius: "0.4rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "0 0% 3.9%", + foreground: "0 0% 98%", + card: "0 0% 3.9%", + "card-foreground": "0 0% 98%", + popover: "0 0% 3.9%", + "popover-foreground": "0 0% 98%", + primary: "0 72.2% 50.6%", + "primary-foreground": "0 85.7% 97.3%", + secondary: "0 0% 14.9%", + "secondary-foreground": "0 0% 98%", + muted: "0 0% 14.9%", + "muted-foreground": "0 0% 63.9%", + accent: "0 0% 14.9%", + "accent-foreground": "0 0% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "0 0% 98%", + border: "0 0% 14.9%", + input: "0 0% 14.9%", + ring: "0 72.2% 50.6%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "rose", + label: "Rose", + activeColor: { + light: "346.8 77.2% 49.8%", + dark: "346.8 77.2% 49.8%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "240 10% 3.9%", + card: "0 0% 100%", + "card-foreground": "240 10% 3.9%", + popover: "0 0% 100%", + "popover-foreground": "240 10% 3.9%", + primary: "346.8 77.2% 49.8%", + "primary-foreground": "355.7 100% 97.3%", + secondary: "240 4.8% 95.9%", + "secondary-foreground": "240 5.9% 10%", + muted: "240 4.8% 95.9%", + "muted-foreground": "240 3.8% 46.1%", + accent: "240 4.8% 95.9%", + "accent-foreground": "240 5.9% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + border: "240 5.9% 90%", + input: "240 5.9% 90%", + ring: "346.8 77.2% 49.8%", + radius: "0.5rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "20 14.3% 4.1%", + foreground: "0 0% 95%", + popover: "0 0% 9%", + "popover-foreground": "0 0% 95%", + card: "24 9.8% 10%", + "card-foreground": "0 0% 95%", + primary: "346.8 77.2% 49.8%", + "primary-foreground": "355.7 100% 97.3%", + secondary: "240 3.7% 15.9%", + "secondary-foreground": "0 0% 98%", + muted: "0 0% 15%", + "muted-foreground": "240 5% 64.9%", + accent: "12 6.5% 15.1%", + "accent-foreground": "0 0% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + border: "240 3.7% 15.9%", + input: "240 3.7% 15.9%", + ring: "346.8 77.2% 49.8%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "orange", + label: "Orange", + activeColor: { + light: "24.6 95% 53.1%", + dark: "20.5 90.2% 48.2%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "20 14.3% 4.1%", + card: "0 0% 100%", + "card-foreground": "20 14.3% 4.1%", + popover: "0 0% 100%", + "popover-foreground": "20 14.3% 4.1%", + primary: "24.6 95% 53.1%", + "primary-foreground": "60 9.1% 97.8%", + secondary: "60 4.8% 95.9%", + "secondary-foreground": "24 9.8% 10%", + muted: "60 4.8% 95.9%", + "muted-foreground": "25 5.3% 44.7%", + accent: "60 4.8% 95.9%", + "accent-foreground": "24 9.8% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "60 9.1% 97.8%", + border: "20 5.9% 90%", + input: "20 5.9% 90%", + ring: "24.6 95% 53.1%", + radius: "0.95rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "20 14.3% 4.1%", + foreground: "60 9.1% 97.8%", + card: "20 14.3% 4.1%", + "card-foreground": "60 9.1% 97.8%", + popover: "20 14.3% 4.1%", + "popover-foreground": "60 9.1% 97.8%", + primary: "20.5 90.2% 48.2%", + "primary-foreground": "60 9.1% 97.8%", + secondary: "12 6.5% 15.1%", + "secondary-foreground": "60 9.1% 97.8%", + muted: "12 6.5% 15.1%", + "muted-foreground": "24 5.4% 63.9%", + accent: "12 6.5% 15.1%", + "accent-foreground": "60 9.1% 97.8%", + destructive: "0 72.2% 50.6%", + "destructive-foreground": "60 9.1% 97.8%", + border: "12 6.5% 15.1%", + input: "12 6.5% 15.1%", + ring: "20.5 90.2% 48.2%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "green", + label: "Green", + activeColor: { + light: "142.1 76.2% 36.3%", + dark: "142.1 70.6% 45.3%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "240 10% 3.9%", + card: "0 0% 100%", + "card-foreground": "240 10% 3.9%", + popover: "0 0% 100%", + "popover-foreground": "240 10% 3.9%", + primary: "142.1 76.2% 36.3%", + "primary-foreground": "355.7 100% 97.3%", + secondary: "240 4.8% 95.9%", + "secondary-foreground": "240 5.9% 10%", + muted: "240 4.8% 95.9%", + "muted-foreground": "240 3.8% 46.1%", + accent: "240 4.8% 95.9%", + "accent-foreground": "240 5.9% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + border: "240 5.9% 90%", + input: "240 5.9% 90%", + ring: "142.1 76.2% 36.3%", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "20 14.3% 4.1%", + foreground: "0 0% 95%", + popover: "0 0% 9%", + "popover-foreground": "0 0% 95%", + card: "24 9.8% 10%", + "card-foreground": "0 0% 95%", + primary: "142.1 70.6% 45.3%", + "primary-foreground": "144.9 80.4% 10%", + secondary: "240 3.7% 15.9%", + "secondary-foreground": "0 0% 98%", + muted: "0 0% 15%", + "muted-foreground": "240 5% 64.9%", + accent: "12 6.5% 15.1%", + "accent-foreground": "0 0% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + border: "240 3.7% 15.9%", + input: "240 3.7% 15.9%", + ring: "142.4 71.8% 29.2%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "blue", + label: "Blue", + activeColor: { + light: "221.2 83.2% 53.3%", + dark: "217.2 91.2% 59.8%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "222.2 84% 4.9%", + card: "0 0% 100%", + "card-foreground": "222.2 84% 4.9%", + popover: "0 0% 100%", + "popover-foreground": "222.2 84% 4.9%", + primary: "221.2 83.2% 53.3%", + "primary-foreground": "210 40% 98%", + secondary: "210 40% 96.1%", + "secondary-foreground": "222.2 47.4% 11.2%", + muted: "210 40% 96.1%", + "muted-foreground": "215.4 16.3% 46.9%", + accent: "210 40% 96.1%", + "accent-foreground": "222.2 47.4% 11.2%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "210 40% 98%", + border: "214.3 31.8% 91.4%", + input: "214.3 31.8% 91.4%", + ring: "221.2 83.2% 53.3%", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "222.2 84% 4.9%", + foreground: "210 40% 98%", + card: "222.2 84% 4.9%", + "card-foreground": "210 40% 98%", + popover: "222.2 84% 4.9%", + "popover-foreground": "210 40% 98%", + primary: "217.2 91.2% 59.8%", + "primary-foreground": "222.2 47.4% 11.2%", + secondary: "217.2 32.6% 17.5%", + "secondary-foreground": "210 40% 98%", + muted: "217.2 32.6% 17.5%", + "muted-foreground": "215 20.2% 65.1%", + accent: "217.2 32.6% 17.5%", + "accent-foreground": "210 40% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "210 40% 98%", + border: "217.2 32.6% 17.5%", + input: "217.2 32.6% 17.5%", + ring: "224.3 76.3% 48%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "yellow", + label: "Yellow", + activeColor: { + light: "47.9 95.8% 53.1%", + dark: "47.9 95.8% 53.1%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "20 14.3% 4.1%", + card: "0 0% 100%", + "card-foreground": "20 14.3% 4.1%", + popover: "0 0% 100%", + "popover-foreground": "20 14.3% 4.1%", + primary: "47.9 95.8% 53.1%", + "primary-foreground": "26 83.3% 14.1%", + secondary: "60 4.8% 95.9%", + "secondary-foreground": "24 9.8% 10%", + muted: "60 4.8% 95.9%", + "muted-foreground": "25 5.3% 44.7%", + accent: "60 4.8% 95.9%", + "accent-foreground": "24 9.8% 10%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "60 9.1% 97.8%", + border: "20 5.9% 90%", + input: "20 5.9% 90%", + ring: "20 14.3% 4.1%", + radius: "0.95rem", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "20 14.3% 4.1%", + foreground: "60 9.1% 97.8%", + card: "20 14.3% 4.1%", + "card-foreground": "60 9.1% 97.8%", + popover: "20 14.3% 4.1%", + "popover-foreground": "60 9.1% 97.8%", + primary: "47.9 95.8% 53.1%", + "primary-foreground": "26 83.3% 14.1%", + secondary: "12 6.5% 15.1%", + "secondary-foreground": "60 9.1% 97.8%", + muted: "12 6.5% 15.1%", + "muted-foreground": "24 5.4% 63.9%", + accent: "12 6.5% 15.1%", + "accent-foreground": "60 9.1% 97.8%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "60 9.1% 97.8%", + border: "12 6.5% 15.1%", + input: "12 6.5% 15.1%", + ring: "35.5 91.7% 32.9%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, + { + name: "violet", + label: "Violet", + activeColor: { + light: "262.1 83.3% 57.8%", + dark: "263.4 70% 50.4%", + }, + cssVars: { + light: { + background: "0 0% 100%", + foreground: "224 71.4% 4.1%", + card: "0 0% 100%", + "card-foreground": "224 71.4% 4.1%", + popover: "0 0% 100%", + "popover-foreground": "224 71.4% 4.1%", + primary: "262.1 83.3% 57.8%", + "primary-foreground": "210 20% 98%", + secondary: "220 14.3% 95.9%", + "secondary-foreground": "220.9 39.3% 11%", + muted: "220 14.3% 95.9%", + "muted-foreground": "220 8.9% 46.1%", + accent: "220 14.3% 95.9%", + "accent-foreground": "220.9 39.3% 11%", + destructive: "0 84.2% 60.2%", + "destructive-foreground": "210 20% 98%", + border: "220 13% 91%", + input: "220 13% 91%", + ring: "262.1 83.3% 57.8%", + "chart-1": "12 76% 61%", + "chart-2": "173 58% 39%", + "chart-3": "197 37% 24%", + "chart-4": "43 74% 66%", + "chart-5": "27 87% 67%", + }, + dark: { + background: "224 71.4% 4.1%", + foreground: "210 20% 98%", + card: "224 71.4% 4.1%", + "card-foreground": "210 20% 98%", + popover: "224 71.4% 4.1%", + "popover-foreground": "210 20% 98%", + primary: "263.4 70% 50.4%", + "primary-foreground": "210 20% 98%", + secondary: "215 27.9% 16.9%", + "secondary-foreground": "210 20% 98%", + muted: "215 27.9% 16.9%", + "muted-foreground": "217.9 10.6% 64.9%", + accent: "215 27.9% 16.9%", + "accent-foreground": "210 20% 98%", + destructive: "0 62.8% 30.6%", + "destructive-foreground": "210 20% 98%", + border: "215 27.9% 16.9%", + input: "215 27.9% 16.9%", + ring: "263.4 70% 50.4%", + "chart-1": "220 70% 50%", + "chart-2": "160 60% 45%", + "chart-3": "30 80% 55%", + "chart-4": "280 65% 60%", + "chart-5": "340 75% 55%", + }, + }, + }, +] as const; + +export type Theme = (typeof themes)[number]; diff --git a/apps/www/src/registry/ui.ts b/apps/www/src/registry/ui.ts new file mode 100644 index 0000000..0e92c0e --- /dev/null +++ b/apps/www/src/registry/ui.ts @@ -0,0 +1,9 @@ +import type { Registry } from "./schema"; + +export const ui: Registry = [ + { + name: "button", + type: "components:ui", + files: ["ui/button.directive.ts"], + }, +]; diff --git a/apps/www/src/tailwind.css b/apps/www/src/tailwind.css new file mode 100644 index 0000000..26664bc --- /dev/null +++ b/apps/www/src/tailwind.css @@ -0,0 +1,8 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* +Add additional Tailwind styles to this file, for example with @layer: +https://tailwindcss.com/docs/adding-custom-styles#using-css-and-layer +*/ diff --git a/apps/www/tailwind.config.mjs b/apps/www/tailwind.config.mjs new file mode 100644 index 0000000..d617478 --- /dev/null +++ b/apps/www/tailwind.config.mjs @@ -0,0 +1,16 @@ +import colors from "tailwindcss/colors"; +import starlightPlugin from "@astrojs/starlight-tailwind"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], + theme: { + extend: { + colors: { + accent: colors.neutral, + gray: colors.neutral, + }, + }, + }, + plugins: [starlightPlugin()], +}; diff --git a/apps/www/tsconfig.app.json b/apps/www/tsconfig.app.json new file mode 100644 index 0000000..e943d89 --- /dev/null +++ b/apps/www/tsconfig.app.json @@ -0,0 +1,34 @@ +{ + "extends": "./tsconfig.json", + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "noEmit": false, + "target": "es2020", + "module": "es2020", + "lib": ["es2020", "dom"], + "skipLibCheck": true + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true, + "allowJs": false + }, + "files": [], + "include": ["src/registry/default/**/*.ts"] +} diff --git a/apps/www/tsconfig.json b/apps/www/tsconfig.json new file mode 100644 index 0000000..c5450d3 --- /dev/null +++ b/apps/www/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + } +} diff --git a/nx.json b/nx.json new file mode 100644 index 0000000..e298ce4 --- /dev/null +++ b/nx.json @@ -0,0 +1,10 @@ +{ + "extends": "nx/presets/npm.json", + "$schema": "./node_modules/nx/schemas/nx-schema.json", + "nxCloudAccessToken": "Y2M0YjA4MTEtMzQ2ZC00YmE5LThiMGQtNTE0NWU0NDg5NTM4fHJlYWQtd3JpdGU=", + "namedInputs": { + "sharedGlobals": [ + "{workspaceRoot}/.github/workflows/ci.yml" + ] + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ed02e89 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "ui", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "release": "changeset version", + "build:cli": "nx build shadcn-ng" + }, + "private": true, + "devDependencies": { + "@changesets/changelog-github": "^0.5.0", + "@changesets/cli": "^2.27.7", + "@nx/js": "19.5.1", + "cross-env": "^7.0.3", + "nx": "19.5.1", + "verdaccio": "^5.0.4" + }, + "nx": { + "includedScripts": [] + } +} diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore new file mode 100644 index 0000000..dac6408 --- /dev/null +++ b/packages/cli/.gitignore @@ -0,0 +1,3 @@ +components +dist +.turbo \ No newline at end of file diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md new file mode 100644 index 0000000..3e3f60a --- /dev/null +++ b/packages/cli/CHANGELOG.md @@ -0,0 +1 @@ +# shadcn-ng diff --git a/packages/cli/README.md b/packages/cli/README.md new file mode 100644 index 0000000..fb5e937 --- /dev/null +++ b/packages/cli/README.md @@ -0,0 +1,43 @@ +# shadcn-ng + +A CLI for adding components to your project. + +## Usage + +Use the `init` command to initialize dependencies for a new project. + +The `init` command installs dependencies, adds the `cn` util, configures `tailwind.config.ts`, and CSS variables for the project. + +```bash +npx shadcn-ng init +``` + +## add + +Use the `add` command to add components to your project. + +The `add` command adds a component to your project and installs all required dependencies. + +```bash +npx shadcn-ng add [component] +``` + +### Example + +```bash +npx shadcn-ng add alert-dialog +``` + +You can also run the command without any arguments to view a list of all available components: + +```bash +npx shadcn-ng add +``` + +## Documentation + +Visit https://ui.adrianub.dev/docs/cli to view the documentation. + +## License + +Licensed under the [MIT license](https://github.com/adrian-ub/shadcn-ng/blob/main/LICENSE.md). diff --git a/packages/cli/package.json b/packages/cli/package.json new file mode 100644 index 0000000..4c843e3 --- /dev/null +++ b/packages/cli/package.json @@ -0,0 +1,81 @@ +{ + "name": "shadcn-ng", + "version": "0.0.0", + "description": "Add components to your apps.", + "publishConfig": { + "access": "public" + }, + "license": "MIT", + "author": { + "name": "Adrián UB", + "url": "https://twitter.com/adrianub" + }, + "repository": { + "type": "git", + "url": "https://github.com/adrian-ub/shadcn-ng.git", + "directory": "packages/cli" + }, + "files": [ + "dist" + ], + "keywords": [ + "components", + "ui", + "tailwind", + "radix-ui", + "shadcn", + "shadcn-ng", + "ng", + "angular" + ], + "type": "module", + "exports": "./dist/index.js", + "bin": "./dist/index.js", + "scripts": { + "dev": "tsup --watch", + "build": "tsup", + "typecheck": "tsc --noEmit", + "clean": "rimraf dist && rimraf components", + "start:dev": "cross-env COMPONENTS_REGISTRY_URL=http://localhost:4321 node dist/index.js", + "start": "node dist/index.js", + "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache", + "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache", + "release": "changeset version", + "pub:beta": "pnpm build && pnpm publish --no-git-checks --access public --tag beta", + "pub:next": "pnpm build && pnpm publish --no-git-checks --access public --tag next", + "pub:release": "pnpm build && pnpm publish --access public" + }, + "dependencies": { + "@antfu/ni": "^0.21.4", + "@babel/core": "^7.22.1", + "@babel/parser": "^7.22.6", + "@babel/plugin-transform-typescript": "^7.22.5", + "chalk": "5.2.0", + "commander": "^10.0.0", + "cosmiconfig": "^8.1.3", + "diff": "^5.1.0", + "execa": "^7.0.0", + "fast-glob": "^3.3.2", + "fs-extra": "^11.1.0", + "https-proxy-agent": "^6.2.0", + "lodash.template": "^4.5.0", + "node-fetch": "^3.3.0", + "ora": "^6.1.2", + "prompts": "^2.4.2", + "recast": "^0.23.2", + "ts-morph": "^18.0.0", + "tsconfig-paths": "^4.2.0", + "zod": "^3.20.2" + }, + "devDependencies": { + "@types/babel__core": "^7.20.1", + "@types/diff": "^5.0.3", + "@types/fs-extra": "^11.0.1", + "@types/lodash.template": "^4.5.1", + "@types/prompts": "^2.4.2", + "rimraf": "^4.1.3", + "tsup": "^6.6.3", + "type-fest": "^3.8.0", + "typescript": "^4.9.3" + } +} diff --git a/packages/cli/src/commands/add.ts b/packages/cli/src/commands/add.ts new file mode 100644 index 0000000..3bded1a --- /dev/null +++ b/packages/cli/src/commands/add.ts @@ -0,0 +1,218 @@ +import { existsSync, promises as fs } from "fs" +import path from "path" +import { getConfig } from "@/src/utils/get-config" +import { getPackageManager } from "@/src/utils/get-package-manager" +import { handleError } from "@/src/utils/handle-error" +import { logger } from "@/src/utils/logger" +import { + fetchTree, + getItemTargetPath, + getRegistryBaseColor, + getRegistryIndex, + resolveTree, +} from "@/src/utils/registry" +import { transform } from "@/src/utils/transformers" +import chalk from "chalk" +import { Command } from "commander" +import { execa } from "execa" +import ora from "ora" +import prompts from "prompts" +import { z } from "zod" + +const addOptionsSchema = z.object({ + components: z.array(z.string()).optional(), + yes: z.boolean(), + overwrite: z.boolean(), + cwd: z.string(), + all: z.boolean(), + path: z.string().optional(), +}) + +export const add = new Command() + .name("add") + .description("add a component to your project") + .argument("[components...]", "the components to add") + .option("-y, --yes", "skip confirmation prompt.", true) + .option("-o, --overwrite", "overwrite existing files.", false) + .option( + "-c, --cwd ", + "the working directory. defaults to the current directory.", + process.cwd() + ) + .option("-a, --all", "add all available components", false) + .option("-p, --path ", "the path to add the component to.") + .action(async (components, opts) => { + try { + const options = addOptionsSchema.parse({ + components, + ...opts, + }) + + const cwd = path.resolve(options.cwd) + + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + const config = await getConfig(cwd) + if (!config) { + logger.warn( + `Configuration is missing. Please run ${chalk.green( + `init` + )} to create a components.json file.` + ) + process.exit(1) + } + + const registryIndex = await getRegistryIndex() + + let selectedComponents = options.all + ? registryIndex.map((entry) => entry.name) + : options.components + if (!options.components?.length && !options.all) { + const { components } = await prompts({ + type: "multiselect", + name: "components", + message: "Which components would you like to add?", + hint: "Space to select. A to toggle all. Enter to submit.", + instructions: false, + choices: registryIndex.map((entry) => ({ + title: entry.name, + value: entry.name, + selected: options.all + ? true + : options.components?.includes(entry.name), + })), + }) + selectedComponents = components + } + + if (!selectedComponents?.length) { + logger.warn("No components selected. Exiting.") + process.exit(0) + } + + const tree = await resolveTree(registryIndex, selectedComponents) + const payload = await fetchTree(config.style, tree) + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + + if (!payload.length) { + logger.warn("Selected components not found. Exiting.") + process.exit(0) + } + + if (!options.yes) { + const { proceed } = await prompts({ + type: "confirm", + name: "proceed", + message: `Ready to install components and dependencies. Proceed?`, + initial: true, + }) + + if (!proceed) { + process.exit(0) + } + } + + const spinner = ora(`Installing components...`).start() + for (const item of payload) { + spinner.text = `Installing ${item.name}...` + const targetDir = await getItemTargetPath( + config, + item, + options.path ? path.resolve(cwd, options.path) : undefined + ) + + if (!targetDir) { + continue + } + + if (!existsSync(targetDir)) { + await fs.mkdir(targetDir, { recursive: true }) + } + + const existingComponent = item.files.filter((file) => + existsSync(path.resolve(targetDir, file.name)) + ) + + if (existingComponent.length && !options.overwrite) { + if (selectedComponents.includes(item.name)) { + spinner.stop() + const { overwrite } = await prompts({ + type: "confirm", + name: "overwrite", + message: `Component ${item.name} already exists. Would you like to overwrite?`, + initial: false, + }) + + if (!overwrite) { + logger.info( + `Skipped ${item.name}. To overwrite, run with the ${chalk.green( + "--overwrite" + )} flag.` + ) + continue + } + + spinner.start(`Installing ${item.name}...`) + } else { + continue + } + } + + for (const file of item.files) { + let filePath = path.resolve(targetDir, file.name) + + // Run transformers. + const content = await transform({ + filename: file.name, + raw: file.content, + config, + baseColor, + }) + + if (!config.tsx) { + filePath = filePath.replace(/\.tsx$/, ".jsx") + filePath = filePath.replace(/\.ts$/, ".js") + } + + await fs.writeFile(filePath, content) + } + + const packageManager = await getPackageManager(cwd) + + // Install dependencies. + if (item.dependencies?.length) { + await execa( + packageManager, + [ + packageManager === "npm" ? "install" : "add", + ...item.dependencies, + ], + { + cwd, + } + ) + } + + // Install devDependencies. + if (item.devDependencies?.length) { + await execa( + packageManager, + [ + packageManager === "npm" ? "install" : "add", + "-D", + ...item.devDependencies, + ], + { + cwd, + } + ) + } + } + spinner.succeed(`Done.`) + } catch (error) { + handleError(error) + } + }) diff --git a/packages/cli/src/commands/diff.ts b/packages/cli/src/commands/diff.ts new file mode 100644 index 0000000..43a19f6 --- /dev/null +++ b/packages/cli/src/commands/diff.ts @@ -0,0 +1,196 @@ +import { existsSync, promises as fs } from "fs" +import path from "path" +import { Config, getConfig } from "@/src/utils/get-config" +import { handleError } from "@/src/utils/handle-error" +import { logger } from "@/src/utils/logger" +import { + fetchTree, + getItemTargetPath, + getRegistryBaseColor, + getRegistryIndex, +} from "@/src/utils/registry" +import { registryIndexSchema } from "@/src/utils/registry/schema" +import { transform } from "@/src/utils/transformers" +import chalk from "chalk" +import { Command } from "commander" +import { diffLines, type Change } from "diff" +import { z } from "zod" + +const updateOptionsSchema = z.object({ + component: z.string().optional(), + yes: z.boolean(), + cwd: z.string(), + path: z.string().optional(), +}) + +export const diff = new Command() + .name("diff") + .description("check for updates against the registry") + .argument("[component]", "the component name") + .option("-y, --yes", "skip confirmation prompt.", false) + .option( + "-c, --cwd ", + "the working directory. defaults to the current directory.", + process.cwd() + ) + .action(async (name, opts) => { + try { + const options = updateOptionsSchema.parse({ + component: name, + ...opts, + }) + + const cwd = path.resolve(options.cwd) + + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + const config = await getConfig(cwd) + if (!config) { + logger.warn( + `Configuration is missing. Please run ${chalk.green( + `init` + )} to create a components.json file.` + ) + process.exit(1) + } + + const registryIndex = await getRegistryIndex() + + if (!options.component) { + const targetDir = config.resolvedPaths.components + + // Find all components that exist in the project. + const projectComponents = registryIndex.filter((item) => { + for (const file of item.files) { + const filePath = path.resolve(targetDir, file) + if (existsSync(filePath)) { + return true + } + } + + return false + }) + + // Check for updates. + const componentsWithUpdates = [] + for (const component of projectComponents) { + const changes = await diffComponent(component, config) + if (changes.length) { + componentsWithUpdates.push({ + name: component.name, + changes, + }) + } + } + + if (!componentsWithUpdates.length) { + logger.info("No updates found.") + process.exit(0) + } + + logger.info("The following components have updates available:") + for (const component of componentsWithUpdates) { + logger.info(`- ${component.name}`) + for (const change of component.changes) { + logger.info(` - ${change.filePath}`) + } + } + logger.break() + logger.info( + `Run ${chalk.green(`diff `)} to see the changes.` + ) + process.exit(0) + } + + // Show diff for a single component. + const component = registryIndex.find( + (item) => item.name === options.component + ) + + if (!component) { + logger.error( + `The component ${chalk.green(options.component)} does not exist.` + ) + process.exit(1) + } + + const changes = await diffComponent(component, config) + + if (!changes.length) { + logger.info(`No updates found for ${options.component}.`) + process.exit(0) + } + + for (const change of changes) { + logger.info(`- ${change.filePath}`) + await printDiff(change.patch) + logger.info("") + } + } catch (error) { + handleError(error) + } + }) + +async function diffComponent( + component: z.infer[number], + config: Config +) { + const payload = await fetchTree(config.style, [component]) + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + + const changes = [] + + for (const item of payload) { + const targetDir = await getItemTargetPath(config, item) + + if (!targetDir) { + continue + } + + for (const file of item.files) { + const filePath = path.resolve(targetDir, file.name) + + if (!existsSync(filePath)) { + continue + } + + const fileContent = await fs.readFile(filePath, "utf8") + + const registryContent = await transform({ + filename: file.name, + raw: file.content, + config, + baseColor, + }) + + const patch = diffLines(registryContent as string, fileContent) + if (patch.length > 1) { + changes.push({ + file: file.name, + filePath, + patch, + }) + } + } + } + + return changes +} + +async function printDiff(diff: Change[]) { + diff.forEach((part) => { + if (part) { + if (part.added) { + return process.stdout.write(chalk.green(part.value)) + } + if (part.removed) { + return process.stdout.write(chalk.red(part.value)) + } + + return process.stdout.write(part.value) + } + }) +} diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts new file mode 100644 index 0000000..78893dc --- /dev/null +++ b/packages/cli/src/commands/init.ts @@ -0,0 +1,399 @@ +import { existsSync, promises as fs } from "fs" +import path from "path" +import { + DEFAULT_COMPONENTS, + DEFAULT_TAILWIND_CONFIG, + DEFAULT_TAILWIND_CSS, + DEFAULT_UTILS, + getConfig, + rawConfigSchema, + resolveConfigPaths, + type Config, +} from "@/src/utils/get-config" +import { getPackageManager } from "@/src/utils/get-package-manager" +import { getProjectConfig, preFlight } from "@/src/utils/get-project-info" +import { handleError } from "@/src/utils/handle-error" +import { logger } from "@/src/utils/logger" +import { + getRegistryBaseColor, + getRegistryBaseColors, + getRegistryStyles, +} from "@/src/utils/registry" +import * as templates from "@/src/utils/templates" +import chalk from "chalk" +import { Command } from "commander" +import { execa } from "execa" +import template from "lodash.template" +import ora from "ora" +import prompts from "prompts" +import { z } from "zod" + +import { applyPrefixesCss } from "../utils/transformers/transform-tw-prefix" + +const PROJECT_DEPENDENCIES = [ + "tailwindcss-animate", + "class-variance-authority", + "clsx", + "tailwind-merge", +] + +const initOptionsSchema = z.object({ + cwd: z.string(), + yes: z.boolean(), + defaults: z.boolean(), +}) + +export const init = new Command() + .name("init") + .description("initialize your project and install dependencies") + .option("-y, --yes", "skip confirmation prompt.", false) + .option("-d, --defaults,", "use default configuration.", false) + .option( + "-c, --cwd ", + "the working directory. defaults to the current directory.", + process.cwd() + ) + .action(async (opts) => { + try { + const options = initOptionsSchema.parse(opts) + const cwd = path.resolve(options.cwd) + + // Ensure target directory exists. + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + preFlight(cwd) + + const projectConfig = await getProjectConfig(cwd) + if (projectConfig) { + const config = await promptForMinimalConfig( + cwd, + projectConfig, + opts.defaults + ) + await runInit(cwd, config) + } else { + // Read config. + const existingConfig = await getConfig(cwd) + const config = await promptForConfig(cwd, existingConfig, options.yes) + await runInit(cwd, config) + } + + logger.info("") + logger.info( + `${chalk.green( + "Success!" + )} Project initialization completed. You may now add components.` + ) + logger.info("") + } catch (error) { + handleError(error) + } + }) + +export async function promptForConfig( + cwd: string, + defaultConfig: Config | null = null, + skip = false +) { + const highlight = (text: string) => chalk.cyan(text) + + const styles = await getRegistryStyles() + const baseColors = await getRegistryBaseColors() + + const options = await prompts([ + { + type: "toggle", + name: "typescript", + message: `Would you like to use ${highlight( + "TypeScript" + )} (recommended)?`, + initial: defaultConfig?.tsx ?? true, + active: "yes", + inactive: "no", + }, + { + type: "select", + name: "style", + message: `Which ${highlight("style")} would you like to use?`, + choices: styles.map((style) => ({ + title: style.label, + value: style.name, + })), + }, + { + type: "select", + name: "tailwindBaseColor", + message: `Which color would you like to use as ${highlight( + "base color" + )}?`, + choices: baseColors.map((color) => ({ + title: color.label, + value: color.name, + })), + }, + { + type: "text", + name: "tailwindCss", + message: `Where is your ${highlight("global CSS")} file?`, + initial: defaultConfig?.tailwind.css ?? DEFAULT_TAILWIND_CSS, + }, + { + type: "toggle", + name: "tailwindCssVariables", + message: `Would you like to use ${highlight( + "CSS variables" + )} for colors?`, + initial: defaultConfig?.tailwind.cssVariables ?? true, + active: "yes", + inactive: "no", + }, + { + type: "text", + name: "tailwindPrefix", + message: `Are you using a custom ${highlight( + "tailwind prefix eg. tw-" + )}? (Leave blank if not)`, + initial: "", + }, + { + type: "text", + name: "tailwindConfig", + message: `Where is your ${highlight("tailwind.config.js")} located?`, + initial: defaultConfig?.tailwind.config ?? DEFAULT_TAILWIND_CONFIG, + }, + { + type: "text", + name: "components", + message: `Configure the import alias for ${highlight("components")}:`, + initial: defaultConfig?.aliases["components"] ?? DEFAULT_COMPONENTS, + }, + { + type: "text", + name: "utils", + message: `Configure the import alias for ${highlight("utils")}:`, + initial: defaultConfig?.aliases["utils"] ?? DEFAULT_UTILS, + }, + { + type: "toggle", + name: "rsc", + message: `Are you using ${highlight("React Server Components")}?`, + initial: defaultConfig?.rsc ?? true, + active: "yes", + inactive: "no", + }, + ]) + + const config = rawConfigSchema.parse({ + $schema: "https://ui.shadcn.com/schema.json", + style: options.style, + tailwind: { + config: options.tailwindConfig, + css: options.tailwindCss, + baseColor: options.tailwindBaseColor, + cssVariables: options.tailwindCssVariables, + prefix: options.tailwindPrefix, + }, + rsc: options.rsc, + tsx: options.typescript, + aliases: { + utils: options.utils, + components: options.components, + }, + }) + + if (!skip) { + const { proceed } = await prompts({ + type: "confirm", + name: "proceed", + message: `Write configuration to ${highlight( + "components.json" + )}. Proceed?`, + initial: true, + }) + + if (!proceed) { + process.exit(0) + } + } + + // Write to file. + logger.info("") + const spinner = ora(`Writing components.json...`).start() + const targetPath = path.resolve(cwd, "components.json") + await fs.writeFile(targetPath, JSON.stringify(config, null, 2), "utf8") + spinner.succeed() + + return await resolveConfigPaths(cwd, config) +} + +export async function promptForMinimalConfig( + cwd: string, + defaultConfig: Config, + defaults = false +) { + const highlight = (text: string) => chalk.cyan(text) + let style = defaultConfig.style + let baseColor = defaultConfig.tailwind.baseColor + let cssVariables = defaultConfig.tailwind.cssVariables + + if (!defaults) { + const styles = await getRegistryStyles() + const baseColors = await getRegistryBaseColors() + + const options = await prompts([ + { + type: "select", + name: "style", + message: `Which ${highlight("style")} would you like to use?`, + choices: styles.map((style) => ({ + title: style.label, + value: style.name, + })), + }, + { + type: "select", + name: "tailwindBaseColor", + message: `Which color would you like to use as ${highlight( + "base color" + )}?`, + choices: baseColors.map((color) => ({ + title: color.label, + value: color.name, + })), + }, + { + type: "toggle", + name: "tailwindCssVariables", + message: `Would you like to use ${highlight( + "CSS variables" + )} for colors?`, + initial: defaultConfig?.tailwind.cssVariables, + active: "yes", + inactive: "no", + }, + ]) + + style = options.style + baseColor = options.tailwindBaseColor + cssVariables = options.tailwindCssVariables + } + + const config = rawConfigSchema.parse({ + $schema: defaultConfig?.$schema, + style, + tailwind: { + ...defaultConfig?.tailwind, + baseColor, + cssVariables, + }, + rsc: defaultConfig?.rsc, + tsx: defaultConfig?.tsx, + aliases: defaultConfig?.aliases, + }) + + // Write to file. + logger.info("") + const spinner = ora(`Writing components.json...`).start() + const targetPath = path.resolve(cwd, "components.json") + await fs.writeFile(targetPath, JSON.stringify(config, null, 2), "utf8") + spinner.succeed() + + return await resolveConfigPaths(cwd, config) +} + +export async function runInit(cwd: string, config: Config) { + const spinner = ora(`Initializing project...`)?.start() + + // Ensure all resolved paths directories exist. + for (const [key, resolvedPath] of Object.entries(config.resolvedPaths)) { + // Determine if the path is a file or directory. + // TODO: is there a better way to do this? + let dirname = path.extname(resolvedPath) + ? path.dirname(resolvedPath) + : resolvedPath + + // If the utils alias is set to something like "@/lib/utils", + // assume this is a file and remove the "utils" file name. + // TODO: In future releases we should add support for individual utils. + if (key === "utils" && resolvedPath.endsWith("/utils")) { + // Remove /utils at the end. + dirname = dirname.replace(/\/utils$/, "") + } + + if (!existsSync(dirname)) { + await fs.mkdir(dirname, { recursive: true }) + } + } + + const extension = config.tsx ? "ts" : "js" + + const tailwindConfigExtension = path.extname( + config.resolvedPaths.tailwindConfig + ) + + let tailwindConfigTemplate: string + if (tailwindConfigExtension === ".ts") { + tailwindConfigTemplate = config.tailwind.cssVariables + ? templates.TAILWIND_CONFIG_TS_WITH_VARIABLES + : templates.TAILWIND_CONFIG_TS + } else { + tailwindConfigTemplate = config.tailwind.cssVariables + ? templates.TAILWIND_CONFIG_WITH_VARIABLES + : templates.TAILWIND_CONFIG + } + + // Write tailwind config. + await fs.writeFile( + config.resolvedPaths.tailwindConfig, + template(tailwindConfigTemplate)({ + extension, + prefix: config.tailwind.prefix, + }), + "utf8" + ) + + // Write css file. + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + if (baseColor) { + await fs.writeFile( + config.resolvedPaths.tailwindCss, + config.tailwind.cssVariables + ? config.tailwind.prefix + ? applyPrefixesCss(baseColor.cssVarsTemplate, config.tailwind.prefix) + : baseColor.cssVarsTemplate + : baseColor.inlineColorsTemplate, + "utf8" + ) + } + + // Write cn file. + await fs.writeFile( + `${config.resolvedPaths.utils}.${extension}`, + extension === "ts" ? templates.UTILS : templates.UTILS_JS, + "utf8" + ) + + spinner?.succeed() + + // Install dependencies. + const dependenciesSpinner = ora(`Installing dependencies...`)?.start() + const packageManager = await getPackageManager(cwd) + + // TODO: add support for other icon libraries. + const deps = [ + ...PROJECT_DEPENDENCIES, + config.style === "new-york" ? "@radix-ui/react-icons" : "lucide-react", + ] + + await execa( + packageManager, + [packageManager === "npm" ? "install" : "add", ...deps], + { + cwd, + } + ) + dependenciesSpinner?.succeed() +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts new file mode 100644 index 0000000..7d5a69e --- /dev/null +++ b/packages/cli/src/index.ts @@ -0,0 +1,29 @@ +#!/usr/bin/env node +import { add } from "@/src/commands/add"; +import { diff } from "@/src/commands/diff"; +import { init } from "@/src/commands/init"; +import { Command } from "commander"; + +import { getPackageInfo } from "./utils/get-package-info"; + +process.on("SIGINT", () => process.exit(0)); +process.on("SIGTERM", () => process.exit(0)); + +async function main() { + const packageInfo = await getPackageInfo(); + + const program = new Command() + .name("shadcn-ng") + .description("add components and dependencies to your project") + .version( + packageInfo.version || "1.0.0", + "-v, --version", + "display the version number" + ); + + program.addCommand(init).addCommand(add).addCommand(diff); + + program.parse(); +} + +main(); diff --git a/packages/cli/src/utils/get-config.ts b/packages/cli/src/utils/get-config.ts new file mode 100644 index 0000000..d8e4dc0 --- /dev/null +++ b/packages/cli/src/utils/get-config.ts @@ -0,0 +1,103 @@ +import path from "path" +import { resolveImport } from "@/src/utils/resolve-import" +import { cosmiconfig } from "cosmiconfig" +import { loadConfig } from "tsconfig-paths" +import { z } from "zod" + +export const DEFAULT_STYLE = "default" +export const DEFAULT_COMPONENTS = "@/components" +export const DEFAULT_UTILS = "@/lib/utils" +export const DEFAULT_TAILWIND_CSS = "app/globals.css" +export const DEFAULT_TAILWIND_CONFIG = "tailwind.config.js" +export const DEFAULT_TAILWIND_BASE_COLOR = "slate" + +// TODO: Figure out if we want to support all cosmiconfig formats. +// A simple components.json file would be nice. +const explorer = cosmiconfig("components", { + searchPlaces: ["components.json"], +}) + +export const rawConfigSchema = z + .object({ + $schema: z.string().optional(), + style: z.string(), + rsc: z.coerce.boolean().default(false), + tsx: z.coerce.boolean().default(true), + tailwind: z.object({ + config: z.string(), + css: z.string(), + baseColor: z.string(), + cssVariables: z.boolean().default(true), + prefix: z.string().default("").optional(), + }), + aliases: z.object({ + components: z.string(), + utils: z.string(), + ui: z.string().optional(), + }), + }) + .strict() + +export type RawConfig = z.infer + +export const configSchema = rawConfigSchema.extend({ + resolvedPaths: z.object({ + tailwindConfig: z.string(), + tailwindCss: z.string(), + utils: z.string(), + components: z.string(), + ui: z.string(), + }), +}) + +export type Config = z.infer + +export async function getConfig(cwd: string) { + const config = await getRawConfig(cwd) + + if (!config) { + return null + } + + return await resolveConfigPaths(cwd, config) +} + +export async function resolveConfigPaths(cwd: string, config: RawConfig) { + // Read tsconfig.json. + const tsConfig = await loadConfig(cwd) + + if (tsConfig.resultType === "failed") { + throw new Error( + `Failed to load ${config.tsx ? "tsconfig" : "jsconfig"}.json. ${ + tsConfig.message ?? "" + }`.trim() + ) + } + + return configSchema.parse({ + ...config, + resolvedPaths: { + tailwindConfig: path.resolve(cwd, config.tailwind.config), + tailwindCss: path.resolve(cwd, config.tailwind.css), + utils: await resolveImport(config.aliases["utils"], tsConfig), + components: await resolveImport(config.aliases["components"], tsConfig), + ui: config.aliases["ui"] + ? await resolveImport(config.aliases["ui"], tsConfig) + : await resolveImport(config.aliases["components"], tsConfig), + }, + }) +} + +export async function getRawConfig(cwd: string): Promise { + try { + const configResult = await explorer.search(cwd) + + if (!configResult) { + return null + } + + return rawConfigSchema.parse(configResult.config) + } catch (error) { + throw new Error(`Invalid configuration found in ${cwd}/components.json.`) + } +} diff --git a/packages/cli/src/utils/get-package-info.ts b/packages/cli/src/utils/get-package-info.ts new file mode 100644 index 0000000..c7f4961 --- /dev/null +++ b/packages/cli/src/utils/get-package-info.ts @@ -0,0 +1,9 @@ +import path from "path" +import fs from "fs-extra" +import { type PackageJson } from "type-fest" + +export function getPackageInfo() { + const packageJsonPath = path.join("package.json") + + return fs.readJSONSync(packageJsonPath) as PackageJson +} diff --git a/packages/cli/src/utils/get-package-manager.ts b/packages/cli/src/utils/get-package-manager.ts new file mode 100644 index 0000000..91efb41 --- /dev/null +++ b/packages/cli/src/utils/get-package-manager.ts @@ -0,0 +1,13 @@ +import { detect } from "@antfu/ni" + +export async function getPackageManager( + targetDir: string +): Promise<"yarn" | "pnpm" | "bun" | "npm"> { + const packageManager = await detect({ programmatic: true, cwd: targetDir }) + + if (packageManager === "yarn@berry") return "yarn" + if (packageManager === "pnpm@6") return "pnpm" + if (packageManager === "bun") return "bun" + + return packageManager ?? "npm" +} diff --git a/packages/cli/src/utils/get-project-info.ts b/packages/cli/src/utils/get-project-info.ts new file mode 100644 index 0000000..606145e --- /dev/null +++ b/packages/cli/src/utils/get-project-info.ts @@ -0,0 +1,194 @@ +import { existsSync } from "fs" +import path from "path" +import { + Config, + RawConfig, + getConfig, + resolveConfigPaths, +} from "@/src/utils/get-config" +import fg from "fast-glob" +import fs, { pathExists } from "fs-extra" +import { loadConfig } from "tsconfig-paths" + +// TODO: Add support for more frameworks. +// We'll start with Next.js for now. +const PROJECT_TYPES = [ + "next-app", + "next-app-src", + "next-pages", + "next-pages-src", +] as const + +type ProjectType = (typeof PROJECT_TYPES)[number] + +const PROJECT_SHARED_IGNORE = [ + "**/node_modules/**", + ".next", + "public", + "dist", + "build", +] + +export async function getProjectInfo() { + const info = { + tsconfig: null, + srcDir: false, + appDir: false, + srcComponentsUiDir: false, + componentsUiDir: false, + } + + try { + const tsconfig = await getTsConfig() + + return { + tsconfig, + srcDir: existsSync(path.resolve("./src")), + appDir: + existsSync(path.resolve("./app")) || + existsSync(path.resolve("./src/app")), + srcComponentsUiDir: existsSync(path.resolve("./src/components/ui")), + componentsUiDir: existsSync(path.resolve("./components/ui")), + } + } catch (error) { + return info + } +} + +export async function getTsConfig() { + try { + const tsconfigPath = path.join("tsconfig.json") + const tsconfig = await fs.readJSON(tsconfigPath) + + if (!tsconfig) { + throw new Error("tsconfig.json is missing") + } + + return tsconfig + } catch (error) { + return null + } +} + +export async function getProjectConfig(cwd: string): Promise { + // Check for existing component config. + const existingConfig = await getConfig(cwd) + if (existingConfig) { + return existingConfig + } + + const projectType = await getProjectType(cwd) + const tailwindCssFile = await getTailwindCssFile(cwd) + const tsConfigAliasPrefix = await getTsConfigAliasPrefix(cwd) + + if (!projectType || !tailwindCssFile || !tsConfigAliasPrefix) { + return null + } + + const isTsx = await isTypeScriptProject(cwd) + + const config: RawConfig = { + $schema: "https://ui.shadcn.com/schema.json", + rsc: ["next-app", "next-app-src"].includes(projectType), + tsx: isTsx, + style: "new-york", + tailwind: { + config: isTsx ? "tailwind.config.ts" : "tailwind.config.js", + baseColor: "zinc", + css: tailwindCssFile, + cssVariables: true, + prefix: "", + }, + aliases: { + utils: `${tsConfigAliasPrefix}/lib/utils`, + components: `${tsConfigAliasPrefix}/components`, + }, + } + + return await resolveConfigPaths(cwd, config) +} + +export async function getProjectType(cwd: string): Promise { + const files = await fg.glob("**/*", { + cwd, + deep: 3, + ignore: PROJECT_SHARED_IGNORE, + }) + + const isNextProject = files.find((file) => file.startsWith("next.config.")) + if (!isNextProject) { + return null + } + + const isUsingSrcDir = await fs.pathExists(path.resolve(cwd, "src")) + const isUsingAppDir = await fs.pathExists( + path.resolve(cwd, `${isUsingSrcDir ? "src/" : ""}app`) + ) + + if (isUsingAppDir) { + return isUsingSrcDir ? "next-app-src" : "next-app" + } + + return isUsingSrcDir ? "next-pages-src" : "next-pages" +} + +export async function getTailwindCssFile(cwd: string) { + const files = await fg.glob("**/*.css", { + cwd, + deep: 3, + ignore: PROJECT_SHARED_IGNORE, + }) + + if (!files.length) { + return null + } + + for (const file of files) { + const contents = await fs.readFile(path.resolve(cwd, file), "utf8") + // Assume that if the file contains `@tailwind base` it's the main css file. + if (contents.includes("@tailwind base")) { + return file + } + } + + return null +} + +export async function getTsConfigAliasPrefix(cwd: string) { + const tsConfig = await loadConfig(cwd) + + if (tsConfig?.resultType === "failed" || !tsConfig?.paths) { + return null + } + + // This assume that the first alias is the prefix. + for (const [alias, paths] of Object.entries(tsConfig.paths)) { + if (paths.includes("./*") || paths.includes("./src/*")) { + return alias.at(0) + } + } + + return null +} + +export async function isTypeScriptProject(cwd: string) { + // Check if cwd has a tsconfig.json file. + return pathExists(path.resolve(cwd, "tsconfig.json")) +} + +export async function preFlight(cwd: string) { + // We need Tailwind CSS to be configured. + const tailwindConfig = await fg.glob("tailwind.config.*", { + cwd, + deep: 3, + ignore: PROJECT_SHARED_IGNORE, + }) + + if (!tailwindConfig.length) { + throw new Error( + "Tailwind CSS is not installed. Visit https://tailwindcss.com/docs/installation to get started." + ) + } + + return true +} diff --git a/packages/cli/src/utils/handle-error.ts b/packages/cli/src/utils/handle-error.ts new file mode 100644 index 0000000..3e36663 --- /dev/null +++ b/packages/cli/src/utils/handle-error.ts @@ -0,0 +1,16 @@ +import { logger } from "@/src/utils/logger" + +export function handleError(error: unknown) { + if (typeof error === "string") { + logger.error(error) + process.exit(1) + } + + if (error instanceof Error) { + logger.error(error.message) + process.exit(1) + } + + logger.error("Something went wrong. Please try again.") + process.exit(1) +} diff --git a/packages/cli/src/utils/logger.ts b/packages/cli/src/utils/logger.ts new file mode 100644 index 0000000..a18b7b5 --- /dev/null +++ b/packages/cli/src/utils/logger.ts @@ -0,0 +1,19 @@ +import chalk from "chalk" + +export const logger = { + error(...args: unknown[]) { + console.log(chalk.red(...args)) + }, + warn(...args: unknown[]) { + console.log(chalk.yellow(...args)) + }, + info(...args: unknown[]) { + console.log(chalk.cyan(...args)) + }, + success(...args: unknown[]) { + console.log(chalk.green(...args)) + }, + break() { + console.log("") + }, +} diff --git a/packages/cli/src/utils/registry/index.ts b/packages/cli/src/utils/registry/index.ts new file mode 100644 index 0000000..29395e2 --- /dev/null +++ b/packages/cli/src/utils/registry/index.ts @@ -0,0 +1,155 @@ +import path from "path" +import { Config } from "@/src/utils/get-config" +import { + registryBaseColorSchema, + registryIndexSchema, + registryItemWithContentSchema, + registryWithContentSchema, + stylesSchema, +} from "@/src/utils/registry/schema" +import { HttpsProxyAgent } from "https-proxy-agent" +import fetch from "node-fetch" +import { z } from "zod" + +const baseUrl = process.env.COMPONENTS_REGISTRY_URL ?? "https://ui.shadcn.com" +const agent = process.env.https_proxy + ? new HttpsProxyAgent(process.env.https_proxy) + : undefined + +export async function getRegistryIndex() { + try { + const [result] = await fetchRegistry(["index.json"]) + + return registryIndexSchema.parse(result) + } catch (error) { + throw new Error(`Failed to fetch components from registry.`) + } +} + +export async function getRegistryStyles() { + try { + const [result] = await fetchRegistry(["styles/index.json"]) + + return stylesSchema.parse(result) + } catch (error) { + throw new Error(`Failed to fetch styles from registry.`) + } +} + +export async function getRegistryBaseColors() { + return [ + { + name: "slate", + label: "Slate", + }, + { + name: "gray", + label: "Gray", + }, + { + name: "zinc", + label: "Zinc", + }, + { + name: "neutral", + label: "Neutral", + }, + { + name: "stone", + label: "Stone", + }, + ] +} + +export async function getRegistryBaseColor(baseColor: string) { + try { + const [result] = await fetchRegistry([`colors/${baseColor}.json`]) + + return registryBaseColorSchema.parse(result) + } catch (error) { + throw new Error(`Failed to fetch base color from registry.`) + } +} + +export async function resolveTree( + index: z.infer, + names: string[] +) { + const tree: z.infer = [] + + for (const name of names) { + const entry = index.find((entry) => entry.name === name) + + if (!entry) { + continue + } + + tree.push(entry) + + if (entry.registryDependencies) { + const dependencies = await resolveTree(index, entry.registryDependencies) + tree.push(...dependencies) + } + } + + return tree.filter( + (component, index, self) => + self.findIndex((c) => c.name === component.name) === index + ) +} + +export async function fetchTree( + style: string, + tree: z.infer +) { + try { + const paths = tree.map((item) => `styles/${style}/${item.name}.json`) + const result = await fetchRegistry(paths) + + return registryWithContentSchema.parse(result) + } catch (error) { + throw new Error(`Failed to fetch tree from registry.`) + } +} + +export async function getItemTargetPath( + config: Config, + item: Pick, "type">, + override?: string +) { + if (override) { + return override + } + + if (item.type === "components:ui" && config.aliases.ui) { + return config.resolvedPaths.ui + } + + const [parent, type] = item.type.split(":") + if (!(parent in config.resolvedPaths)) { + return null + } + + return path.join( + config.resolvedPaths[parent as keyof typeof config.resolvedPaths], + type + ) +} + +async function fetchRegistry(paths: string[]) { + try { + const results = await Promise.all( + paths.map(async (path) => { + const response = await fetch(`${baseUrl}/registry/${path}`, { + agent, + }) + return await response.json() + }) + ) + + return results + } catch (error) { + console.log(error) + throw new Error(`Failed to fetch registry from ${baseUrl}.`) + } +} diff --git a/packages/cli/src/utils/registry/schema.ts b/packages/cli/src/utils/registry/schema.ts new file mode 100644 index 0000000..b227590 --- /dev/null +++ b/packages/cli/src/utils/registry/schema.ts @@ -0,0 +1,44 @@ +import { z } from "zod" + +// TODO: Extract this to a shared package. +export const registryItemSchema = z.object({ + name: z.string(), + dependencies: z.array(z.string()).optional(), + devDependencies: z.array(z.string()).optional(), + registryDependencies: z.array(z.string()).optional(), + files: z.array(z.string()), + type: z.enum(["components:ui", "components:component", "components:example"]), +}) + +export const registryIndexSchema = z.array(registryItemSchema) + +export const registryItemWithContentSchema = registryItemSchema.extend({ + files: z.array( + z.object({ + name: z.string(), + content: z.string(), + }) + ), +}) + +export const registryWithContentSchema = z.array(registryItemWithContentSchema) + +export const stylesSchema = z.array( + z.object({ + name: z.string(), + label: z.string(), + }) +) + +export const registryBaseColorSchema = z.object({ + inlineColors: z.object({ + light: z.record(z.string(), z.string()), + dark: z.record(z.string(), z.string()), + }), + cssVars: z.object({ + light: z.record(z.string(), z.string()), + dark: z.record(z.string(), z.string()), + }), + inlineColorsTemplate: z.string(), + cssVarsTemplate: z.string(), +}) diff --git a/packages/cli/src/utils/resolve-import.ts b/packages/cli/src/utils/resolve-import.ts new file mode 100644 index 0000000..0f02984 --- /dev/null +++ b/packages/cli/src/utils/resolve-import.ts @@ -0,0 +1,13 @@ +import { createMatchPath, type ConfigLoaderSuccessResult } from "tsconfig-paths" + +export async function resolveImport( + importPath: string, + config: Pick +) { + return createMatchPath(config.absoluteBaseUrl, config.paths)( + importPath, + undefined, + () => true, + [".ts", ".tsx"] + ) +} diff --git a/packages/cli/src/utils/templates.ts b/packages/cli/src/utils/templates.ts new file mode 100644 index 0000000..f602416 --- /dev/null +++ b/packages/cli/src/utils/templates.ts @@ -0,0 +1,253 @@ +export const UTILS = `import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} +` + +export const UTILS_JS = `import { clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs) { + return twMerge(clsx(inputs)) +} +` + +export const TAILWIND_CONFIG = `/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ["class"], + content: [ + './pages/**/*.{<%- extension %>,<%- extension %>x}', + './components/**/*.{<%- extension %>,<%- extension %>x}', + './app/**/*.{<%- extension %>,<%- extension %>x}', + './src/**/*.{<%- extension %>,<%- extension %>x}', + ], + prefix: "<%- prefix %>", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}` + +export const TAILWIND_CONFIG_WITH_VARIABLES = `/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ["class"], + content: [ + './pages/**/*.{<%- extension %>,<%- extension %>x}', + './components/**/*.{<%- extension %>,<%- extension %>x}', + './app/**/*.{<%- extension %>,<%- extension %>x}', + './src/**/*.{<%- extension %>,<%- extension %>x}', + ], + prefix: "<%- prefix %>", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}` + +export const TAILWIND_CONFIG_TS = `import type { Config } from "tailwindcss" + +const config = { + darkMode: ["class"], + content: [ + './pages/**/*.{<%- extension %>,<%- extension %>x}', + './components/**/*.{<%- extension %>,<%- extension %>x}', + './app/**/*.{<%- extension %>,<%- extension %>x}', + './src/**/*.{<%- extension %>,<%- extension %>x}', + ], + prefix: "<%- prefix %>", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +} satisfies Config + +export default config` + +export const TAILWIND_CONFIG_TS_WITH_VARIABLES = `import type { Config } from "tailwindcss" + +const config = { + darkMode: ["class"], + content: [ + './pages/**/*.{<%- extension %>,<%- extension %>x}', + './components/**/*.{<%- extension %>,<%- extension %>x}', + './app/**/*.{<%- extension %>,<%- extension %>x}', + './src/**/*.{<%- extension %>,<%- extension %>x}', + ], + prefix: "<%- prefix %>", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +} satisfies Config + +export default config` diff --git a/packages/cli/src/utils/transformers/index.ts b/packages/cli/src/utils/transformers/index.ts new file mode 100644 index 0000000..88cdb3f --- /dev/null +++ b/packages/cli/src/utils/transformers/index.ts @@ -0,0 +1,58 @@ +import { promises as fs } from "fs" +import { tmpdir } from "os" +import path from "path" +import { Config } from "@/src/utils/get-config" +import { registryBaseColorSchema } from "@/src/utils/registry/schema" +import { transformCssVars } from "@/src/utils/transformers/transform-css-vars" +import { transformImport } from "@/src/utils/transformers/transform-import" +import { transformJsx } from "@/src/utils/transformers/transform-jsx" +import { transformRsc } from "@/src/utils/transformers/transform-rsc" +import { Project, ScriptKind, type SourceFile } from "ts-morph" +import { z } from "zod" + +import { transformTwPrefixes } from "./transform-tw-prefix" + +export type TransformOpts = { + filename: string + raw: string + config: Config + baseColor?: z.infer +} + +export type Transformer = ( + opts: TransformOpts & { + sourceFile: SourceFile + } +) => Promise + +const transformers: Transformer[] = [ + transformImport, + transformRsc, + transformCssVars, + transformTwPrefixes, +] + +const project = new Project({ + compilerOptions: {}, +}) + +async function createTempSourceFile(filename: string) { + const dir = await fs.mkdtemp(path.join(tmpdir(), "shadcn-")) + return path.join(dir, filename) +} + +export async function transform(opts: TransformOpts) { + const tempFile = await createTempSourceFile(opts.filename) + const sourceFile = project.createSourceFile(tempFile, opts.raw, { + scriptKind: ScriptKind.TSX, + }) + + for (const transformer of transformers) { + transformer({ sourceFile, ...opts }) + } + + return await transformJsx({ + sourceFile, + ...opts, + }) +} diff --git a/packages/cli/src/utils/transformers/transform-css-vars.ts b/packages/cli/src/utils/transformers/transform-css-vars.ts new file mode 100644 index 0000000..95cf973 --- /dev/null +++ b/packages/cli/src/utils/transformers/transform-css-vars.ts @@ -0,0 +1,183 @@ +import { registryBaseColorSchema } from "@/src/utils/registry/schema" +import { Transformer } from "@/src/utils/transformers" +import { ScriptKind, SyntaxKind } from "ts-morph" +import { z } from "zod" + +export const transformCssVars: Transformer = async ({ + sourceFile, + config, + baseColor, +}) => { + // No transform if using css variables. + if (config.tailwind?.cssVariables || !baseColor?.inlineColors) { + return sourceFile + } + + // Find jsx attributes with the name className. + // const openingElements = sourceFile.getDescendantsOfKind(SyntaxKind.JsxElement) + // console.log(openingElements) + // const jsxAttributes = sourceFile + // .getDescendantsOfKind(SyntaxKind.JsxAttribute) + // .filter((node) => node.getName() === "className") + + // for (const jsxAttribute of jsxAttributes) { + // const value = jsxAttribute.getInitializer()?.getText() + // if (value) { + // const valueWithColorMapping = applyColorMapping( + // value.replace(/"/g, ""), + // baseColor.inlineColors + // ) + // jsxAttribute.setInitializer(`"${valueWithColorMapping}"`) + // } + // } + sourceFile.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach((node) => { + const value = node.getText() + if (value) { + const valueWithColorMapping = applyColorMapping( + value.replace(/"/g, ""), + baseColor.inlineColors + ) + node.replaceWithText(`"${valueWithColorMapping.trim()}"`) + } + }) + + return sourceFile +} + +// export default function transformer(file: FileInfo, api: API) { +// const j = api.jscodeshift.withParser("tsx") + +// // Replace bg-background with "bg-white dark:bg-slate-950" +// const $j = j(file.source) +// return $j +// .find(j.JSXAttribute, { +// name: { +// name: "className", +// }, +// }) +// .forEach((path) => { +// const { node } = path +// if (node?.value?.type) { +// if (node.value.type === "StringLiteral") { +// node.value.value = applyColorMapping(node.value.value) +// console.log(node.value.value) +// } + +// if ( +// node.value.type === "JSXExpressionContainer" && +// node.value.expression.type === "CallExpression" +// ) { +// const callee = node.value.expression.callee +// if (callee.type === "Identifier" && callee.name === "cn") { +// node.value.expression.arguments.forEach((arg) => { +// if (arg.type === "StringLiteral") { +// arg.value = applyColorMapping(arg.value) +// } + +// if ( +// arg.type === "LogicalExpression" && +// arg.right.type === "StringLiteral" +// ) { +// arg.right.value = applyColorMapping(arg.right.value) +// } +// }) +// } +// } +// } +// }) +// .toSource() +// } + +// // export function splitClassName(input: string): (string | null)[] { +// // const parts = input.split(":") +// // const classNames = parts.map((part) => { +// // const match = part.match(/^\[?(.+)\]$/) +// // if (match) { +// // return match[1] +// // } else { +// // return null +// // } +// // }) + +// // return classNames +// // } + +// Splits a className into variant-name-alpha. +// eg. hover:bg-primary-100 -> [hover, bg-primary, 100] +export function splitClassName(className: string): (string | null)[] { + if (!className.includes("/") && !className.includes(":")) { + return [null, className, null] + } + + const parts: (string | null)[] = [] + // First we split to find the alpha. + let [rest, alpha] = className.split("/") + + // Check if rest has a colon. + if (!rest.includes(":")) { + return [null, rest, alpha] + } + + // Next we split the rest by the colon. + const split = rest.split(":") + + // We take the last item from the split as the name. + const name = split.pop() + + // We glue back the rest of the split. + const variant = split.join(":") + + // Finally we push the variant, name and alpha. + parts.push(variant ?? null, name ?? null, alpha ?? null) + + return parts +} + +const PREFIXES = ["bg-", "text-", "border-", "ring-offset-", "ring-"] + +export function applyColorMapping( + input: string, + mapping: z.infer["inlineColors"] +) { + // Handle border classes. + if (input.includes(" border ")) { + input = input.replace(" border ", " border border-border ") + } + + // Build color mappings. + const classNames = input.split(" ") + const lightMode = new Set() + const darkMode = new Set() + for (let className of classNames) { + const [variant, value, modifier] = splitClassName(className) + const prefix = PREFIXES.find((prefix) => value?.startsWith(prefix)) + if (!prefix) { + if (!lightMode.has(className)) { + lightMode.add(className) + } + continue + } + + const needle = value?.replace(prefix, "") + if (needle && needle in mapping.light) { + lightMode.add( + [variant, `${prefix}${mapping.light[needle]}`] + .filter(Boolean) + .join(":") + (modifier ? `/${modifier}` : "") + ) + + darkMode.add( + ["dark", variant, `${prefix}${mapping.dark[needle]}`] + .filter(Boolean) + .join(":") + (modifier ? `/${modifier}` : "") + ) + continue + } + + if (!lightMode.has(className)) { + lightMode.add(className) + } + } + + return [...Array.from(lightMode), ...Array.from(darkMode)].join(" ").trim() +} diff --git a/packages/cli/src/utils/transformers/transform-import.ts b/packages/cli/src/utils/transformers/transform-import.ts new file mode 100644 index 0000000..0b91200 --- /dev/null +++ b/packages/cli/src/utils/transformers/transform-import.ts @@ -0,0 +1,38 @@ +import { Transformer } from "@/src/utils/transformers" + +export const transformImport: Transformer = async ({ sourceFile, config }) => { + const importDeclarations = sourceFile.getImportDeclarations() + + for (const importDeclaration of importDeclarations) { + const moduleSpecifier = importDeclaration.getModuleSpecifierValue() + + // Replace @/registry/[style] with the components alias. + if (moduleSpecifier.startsWith("@/registry/")) { + if (config.aliases.ui) { + importDeclaration.setModuleSpecifier( + moduleSpecifier.replace(/^@\/registry\/[^/]+\/ui/, config.aliases.ui) + ) + } else { + importDeclaration.setModuleSpecifier( + moduleSpecifier.replace( + /^@\/registry\/[^/]+/, + config.aliases.components + ) + ) + } + } + + // Replace `import { cn } from "@/lib/utils"` + if (moduleSpecifier == "@/lib/utils") { + const namedImports = importDeclaration.getNamedImports() + const cnImport = namedImports.find((i) => i.getName() === "cn") + if (cnImport) { + importDeclaration.setModuleSpecifier( + moduleSpecifier.replace(/^@\/lib\/utils/, config.aliases.utils) + ) + } + } + } + + return sourceFile +} diff --git a/packages/cli/src/utils/transformers/transform-jsx.ts b/packages/cli/src/utils/transformers/transform-jsx.ts new file mode 100644 index 0000000..81f6bb5 --- /dev/null +++ b/packages/cli/src/utils/transformers/transform-jsx.ts @@ -0,0 +1,95 @@ +import { type Transformer } from "@/src/utils/transformers" +import { transformFromAstSync } from "@babel/core" +import { ParserOptions, parse } from "@babel/parser" +// @ts-ignore +import transformTypescript from "@babel/plugin-transform-typescript" +import * as recast from "recast" + +// TODO. +// I'm using recast for the AST here. +// Figure out if ts-morph AST is compatible with Babel. + +// This is a copy of the babel options from recast/parser. +// The goal here is to tolerate as much syntax as possible. +// We want to be able to parse any valid tsx code. +// See https://github.com/benjamn/recast/blob/master/parsers/_babel_options.ts. +const PARSE_OPTIONS: ParserOptions = { + sourceType: "module", + allowImportExportEverywhere: true, + allowReturnOutsideFunction: true, + startLine: 1, + tokens: true, + plugins: [ + "asyncGenerators", + "bigInt", + "classPrivateMethods", + "classPrivateProperties", + "classProperties", + "classStaticBlock", + "decimal", + "decorators-legacy", + "doExpressions", + "dynamicImport", + "exportDefaultFrom", + "exportNamespaceFrom", + "functionBind", + "functionSent", + "importAssertions", + "importMeta", + "nullishCoalescingOperator", + "numericSeparator", + "objectRestSpread", + "optionalCatchBinding", + "optionalChaining", + [ + "pipelineOperator", + { + proposal: "minimal", + }, + ], + [ + "recordAndTuple", + { + syntaxType: "hash", + }, + ], + "throwExpressions", + "topLevelAwait", + "v8intrinsic", + "typescript", + "jsx", + ], +} + +export const transformJsx: Transformer = async ({ + sourceFile, + config, +}) => { + const output = sourceFile.getFullText() + + if (config.tsx) { + return output + } + + const ast = recast.parse(output, { + parser: { + parse: (code: string) => { + return parse(code, PARSE_OPTIONS) + }, + }, + }) + + const result = transformFromAstSync(ast, output, { + cloneInputAst: false, + code: false, + ast: true, + plugins: [transformTypescript], + configFile: false, + }) + + if (!result || !result.ast) { + throw new Error("Failed to transform JSX") + } + + return recast.print(result.ast).code +} diff --git a/packages/cli/src/utils/transformers/transform-rsc.ts b/packages/cli/src/utils/transformers/transform-rsc.ts new file mode 100644 index 0000000..b7d24a0 --- /dev/null +++ b/packages/cli/src/utils/transformers/transform-rsc.ts @@ -0,0 +1,16 @@ +import { Transformer } from "@/src/utils/transformers" +import { SyntaxKind } from "ts-morph" + +export const transformRsc: Transformer = async ({ sourceFile, config }) => { + if (config.rsc) { + return sourceFile + } + + // Remove "use client" from the top of the file. + const first = sourceFile.getFirstChildByKind(SyntaxKind.ExpressionStatement) + if (first?.getText() === `"use client"`) { + first.remove() + } + + return sourceFile +} diff --git a/packages/cli/src/utils/transformers/transform-tw-prefix.ts b/packages/cli/src/utils/transformers/transform-tw-prefix.ts new file mode 100644 index 0000000..1fed9a8 --- /dev/null +++ b/packages/cli/src/utils/transformers/transform-tw-prefix.ts @@ -0,0 +1,201 @@ +import { Transformer } from "@/src/utils/transformers" +import { SyntaxKind } from "ts-morph" + +import { splitClassName } from "./transform-css-vars" + +export const transformTwPrefixes: Transformer = async ({ + sourceFile, + config, +}) => { + if (!config.tailwind?.prefix) { + return sourceFile + } + + // Find the cva function calls. + sourceFile + .getDescendantsOfKind(SyntaxKind.CallExpression) + .filter((node) => node.getExpression().getText() === "cva") + .forEach((node) => { + // cva(base, ...) + if (node.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)) { + const defaultClassNames = node.getArguments()[0] + if (defaultClassNames) { + defaultClassNames.replaceWithText( + `"${applyPrefix( + defaultClassNames.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + } + + // cva(..., { variants: { ... } }) + if (node.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)) { + node + .getArguments()[1] + ?.getDescendantsOfKind(SyntaxKind.PropertyAssignment) + .find((node) => node.getName() === "variants") + ?.getDescendantsOfKind(SyntaxKind.PropertyAssignment) + .forEach((node) => { + node + .getDescendantsOfKind(SyntaxKind.PropertyAssignment) + .forEach((node) => { + const classNames = node.getInitializerIfKind( + SyntaxKind.StringLiteral + ) + if (classNames) { + classNames?.replaceWithText( + `"${applyPrefix( + classNames.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + }) + }) + } + }) + + // Find all jsx attributes with the name className. + sourceFile.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach((node) => { + if (node.getName() === "className") { + // className="..." + if (node.getInitializer()?.isKind(SyntaxKind.StringLiteral)) { + const value = node.getInitializer() + if (value) { + value.replaceWithText( + `"${applyPrefix( + value.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + } + + // className={...} + if (node.getInitializer()?.isKind(SyntaxKind.JsxExpression)) { + // Check if it's a call to cn(). + const callExpression = node + .getInitializer() + ?.getDescendantsOfKind(SyntaxKind.CallExpression) + .find((node) => node.getExpression().getText() === "cn") + if (callExpression) { + // Loop through the arguments. + callExpression.getArguments().forEach((node) => { + if ( + node.isKind(SyntaxKind.ConditionalExpression) || + node.isKind(SyntaxKind.BinaryExpression) + ) { + node + .getChildrenOfKind(SyntaxKind.StringLiteral) + .forEach((node) => { + node.replaceWithText( + `"${applyPrefix( + node.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + }) + } + + if (node.isKind(SyntaxKind.StringLiteral)) { + node.replaceWithText( + `"${applyPrefix( + node.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + }) + } + } + } + + // classNames={...} + if (node.getName() === "classNames") { + if (node.getInitializer()?.isKind(SyntaxKind.JsxExpression)) { + node + .getDescendantsOfKind(SyntaxKind.PropertyAssignment) + .forEach((node) => { + if (node.getInitializer()?.isKind(SyntaxKind.CallExpression)) { + const callExpression = node.getInitializerIfKind( + SyntaxKind.CallExpression + ) + if (callExpression) { + // Loop through the arguments. + callExpression.getArguments().forEach((arg) => { + if (arg.isKind(SyntaxKind.ConditionalExpression)) { + arg + .getChildrenOfKind(SyntaxKind.StringLiteral) + .forEach((node) => { + node.replaceWithText( + `"${applyPrefix( + node.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + }) + } + + if (arg.isKind(SyntaxKind.StringLiteral)) { + arg.replaceWithText( + `"${applyPrefix( + arg.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + }) + } + } + + if (node.getInitializer()?.isKind(SyntaxKind.StringLiteral)) { + if (node.getName() !== "variant") { + const classNames = node.getInitializer() + if (classNames) { + classNames.replaceWithText( + `"${applyPrefix( + classNames.getText()?.replace(/"/g, ""), + config.tailwind.prefix + )}"` + ) + } + } + } + }) + } + } + }) + + return sourceFile +} + +export function applyPrefix(input: string, prefix: string = "") { + const classNames = input.split(" ") + const prefixed: string[] = [] + for (let className of classNames) { + const [variant, value, modifier] = splitClassName(className) + if (variant) { + modifier + ? prefixed.push(`${variant}:${prefix}${value}/${modifier}`) + : prefixed.push(`${variant}:${prefix}${value}`) + } else { + modifier + ? prefixed.push(`${prefix}${value}/${modifier}`) + : prefixed.push(`${prefix}${value}`) + } + } + return prefixed.join(" ") +} + +export function applyPrefixesCss(css: string, prefix: string) { + const lines = css.split("\n") + for (let line of lines) { + if (line.includes("@apply")) { + const originalTWCls = line.replace("@apply", "").trim() + const prefixedTwCls = applyPrefix(originalTWCls, prefix) + css = css.replace(originalTWCls, prefixedTwCls) + } + } + return css +} diff --git a/packages/cli/test/commands/init.test.ts b/packages/cli/test/commands/init.test.ts new file mode 100644 index 0000000..8135e8a --- /dev/null +++ b/packages/cli/test/commands/init.test.ts @@ -0,0 +1,160 @@ +import fs from "fs" +import path from "path" +import { execa } from "execa" +import { afterEach, expect, test, vi } from "vitest" + +import { runInit } from "../../src/commands/init" +import { getConfig } from "../../src/utils/get-config" +import * as getPackageManger from "../../src/utils/get-package-manager" +import * as registry from "../../src/utils/registry" + +vi.mock("execa") +vi.mock("fs/promises", () => ({ + writeFile: vi.fn(), + mkdir: vi.fn(), +})) +vi.mock("ora") + +test("init config-full", async () => { + vi.spyOn(getPackageManger, "getPackageManager").mockResolvedValue("pnpm") + vi.spyOn(registry, "getRegistryBaseColor").mockResolvedValue({ + inlineColors: {}, + cssVars: {}, + inlineColorsTemplate: + "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + cssVarsTemplate: + "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + }) + const mockMkdir = vi.spyOn(fs.promises, "mkdir").mockResolvedValue(undefined) + const mockWriteFile = vi.spyOn(fs.promises, "writeFile").mockResolvedValue() + + const targetDir = path.resolve(__dirname, "../fixtures/config-full") + const config = await getConfig(targetDir) + + await runInit(targetDir, config) + + expect(mockMkdir).toHaveBeenNthCalledWith( + 1, + expect.stringMatching(/src\/app$/), + expect.anything() + ) + expect(mockMkdir).toHaveBeenNthCalledWith( + 2, + expect.stringMatching(/src\/lib$/), + expect.anything() + ) + expect(mockMkdir).toHaveBeenNthCalledWith( + 3, + expect.stringMatching(/src\/components$/), + expect.anything() + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 1, + expect.stringMatching(/tailwind.config.ts$/), + expect.stringContaining(`import type { Config } from "tailwindcss"`), + "utf8" + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 2, + expect.stringMatching(/src\/app\/globals.css$/), + expect.stringContaining(`@tailwind base`), + "utf8" + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 3, + expect.stringMatching(/src\/lib\/utils.ts$/), + expect.stringContaining(`import { type ClassValue, clsx } from "clsx"`), + "utf8" + ) + expect(execa).toHaveBeenCalledWith( + "pnpm", + [ + "add", + "tailwindcss-animate", + "class-variance-authority", + "clsx", + "tailwind-merge", + "@radix-ui/react-icons", + ], + { + cwd: targetDir, + } + ) + + mockMkdir.mockRestore() + mockWriteFile.mockRestore() +}) + +test("init config-partial", async () => { + vi.spyOn(getPackageManger, "getPackageManager").mockResolvedValue("npm") + vi.spyOn(registry, "getRegistryBaseColor").mockResolvedValue({ + inlineColors: {}, + cssVars: {}, + inlineColorsTemplate: + "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + cssVarsTemplate: + "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + }) + const mockMkdir = vi.spyOn(fs.promises, "mkdir").mockResolvedValue(undefined) + const mockWriteFile = vi.spyOn(fs.promises, "writeFile").mockResolvedValue() + + const targetDir = path.resolve(__dirname, "../fixtures/config-partial") + const config = await getConfig(targetDir) + + await runInit(targetDir, config) + + expect(mockMkdir).toHaveBeenNthCalledWith( + 1, + expect.stringMatching(/src\/assets\/css$/), + expect.anything() + ) + expect(mockMkdir).toHaveBeenNthCalledWith( + 2, + expect.stringMatching(/lib$/), + expect.anything() + ) + expect(mockMkdir).toHaveBeenNthCalledWith( + 3, + expect.stringMatching(/components$/), + expect.anything() + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 1, + expect.stringMatching(/tailwind.config.ts$/), + expect.stringContaining(`import type { Config } from "tailwindcss"`), + "utf8" + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 2, + expect.stringMatching(/src\/assets\/css\/tailwind.css$/), + expect.stringContaining(`@tailwind base`), + "utf8" + ) + expect(mockWriteFile).toHaveBeenNthCalledWith( + 3, + expect.stringMatching(/utils.ts$/), + expect.stringContaining(`import { type ClassValue, clsx } from "clsx"`), + "utf8" + ) + expect(execa).toHaveBeenCalledWith( + "npm", + [ + "install", + "tailwindcss-animate", + "class-variance-authority", + "clsx", + "tailwind-merge", + "lucide-react", + ], + { + cwd: targetDir, + } + ) + + mockMkdir.mockRestore() + mockWriteFile.mockRestore() +}) + +afterEach(() => { + vi.resetAllMocks() +}) diff --git a/packages/cli/test/fixtures/colors/neutral.json b/packages/cli/test/fixtures/colors/neutral.json new file mode 100644 index 0000000..c248856 --- /dev/null +++ b/packages/cli/test/fixtures/colors/neutral.json @@ -0,0 +1,92 @@ +{ + "inlineColors": { + "light": { + "background": "white", + "foreground": "neutral-950", + "muted": "neutral-100", + "muted-foreground": "neutral-500", + "popover": "white", + "popover-foreground": "neutral-950", + "border": "neutral-200", + "input": "neutral-200", + "card": "white", + "card-foreground": "neutral-950", + "primary": "neutral-900", + "primary-foreground": "neutral-50", + "secondary": "neutral-100", + "secondary-foreground": "neutral-900", + "accent": "neutral-100", + "accent-foreground": "neutral-900", + "destructive": "red-500", + "destructive-foreground": "neutral-50", + "ring": "neutral-400" + }, + "dark": { + "background": "neutral-950", + "foreground": "neutral-50", + "muted": "neutral-800", + "muted-foreground": "neutral-400", + "popover": "neutral-950", + "popover-foreground": "neutral-50", + "border": "neutral-800", + "input": "neutral-800", + "card": "neutral-950", + "card-foreground": "neutral-50", + "primary": "neutral-50", + "primary-foreground": "neutral-900", + "secondary": "neutral-800", + "secondary-foreground": "neutral-50", + "accent": "neutral-800", + "accent-foreground": "neutral-50", + "destructive": "red-900", + "destructive-foreground": "red-50", + "ring": "neutral-800" + } + }, + "cssVars": { + "light": { + "background": "0 0% 100%", + "foreground": "0 0% 3.9%", + "muted": "0 0% 96.1%", + "muted-foreground": "0 0% 45.1%", + "popover": "0 0% 100%", + "popover-foreground": "0 0% 3.9%", + "border": "0 0% 89.8%", + "input": "0 0% 89.8%", + "card": "0 0% 100%", + "card-foreground": "0 0% 3.9%", + "primary": "0 0% 9%", + "primary-foreground": "0 0% 98%", + "secondary": "0 0% 96.1%", + "secondary-foreground": "0 0% 9%", + "accent": "0 0% 96.1%", + "accent-foreground": "0 0% 9%", + "destructive": "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + "ring": "0 0% 63.9%" + }, + "dark": { + "background": "0 0% 3.9%", + "foreground": "0 0% 98%", + "muted": "0 0% 14.9%", + "muted-foreground": "0 0% 63.9%", + "popover": "0 0% 3.9%", + "popover-foreground": "0 0% 98%", + "border": "0 0% 14.9%", + "input": "0 0% 14.9%", + "card": "0 0% 3.9%", + "card-foreground": "0 0% 98%", + "primary": "0 0% 98%", + "primary-foreground": "0 0% 9%", + "secondary": "0 0% 14.9%", + "secondary-foreground": "0 0% 98%", + "accent": "0 0% 14.9%", + "accent-foreground": "0 0% 98%", + "destructive": "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + "ring": "0 0% 14.9%" + } + }, + "inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + "cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 0 0% 3.9%;\n \n --muted: 0 0% 96.1%;\n --muted-foreground: 0 0% 45.1%;\n \n --popover: 0 0% 100%;\n --popover-foreground: 0 0% 3.9%;\n \n --card: 0 0% 100%;\n --card-foreground: 0 0% 3.9%;\n \n --border: 0 0% 89.8%;\n --input: 0 0% 89.8%;\n \n --primary: 0 0% 9%;\n --primary-foreground: 0 0% 98%;\n \n --secondary: 0 0% 96.1%;\n --secondary-foreground: 0 0% 9%;\n \n --accent: 0 0% 96.1%;\n --accent-foreground: 0 0% 9%;\n \n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n \n --ring: 0 0% 63.9%;\n \n --radius: 0.5rem;\n }\n \n .dark {\n --background: 0 0% 3.9%;\n --foreground: 0 0% 98%;\n \n --muted: 0 0% 14.9%;\n --muted-foreground: 0 0% 63.9%;\n \n --popover: 0 0% 3.9%;\n --popover-foreground: 0 0% 98%;\n \n --card: 0 0% 3.9%;\n --card-foreground: 0 0% 98%;\n \n --border: 0 0% 14.9%;\n --input: 0 0% 14.9%;\n \n --primary: 0 0% 98%;\n --primary-foreground: 0 0% 9%;\n \n --secondary: 0 0% 14.9%;\n --secondary-foreground: 0 0% 98%;\n \n --accent: 0 0% 14.9%;\n --accent-foreground: 0 0% 98%;\n \n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n \n --ring: 0 0% 14.9%;\n }\n}\n \n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}" +} \ No newline at end of file diff --git a/packages/cli/test/fixtures/colors/slate.json b/packages/cli/test/fixtures/colors/slate.json new file mode 100644 index 0000000..46469cb --- /dev/null +++ b/packages/cli/test/fixtures/colors/slate.json @@ -0,0 +1,92 @@ +{ + "inlineColors": { + "light": { + "background": "white", + "foreground": "slate-950", + "muted": "slate-100", + "muted-foreground": "slate-500", + "popover": "white", + "popover-foreground": "slate-950", + "border": "slate-200", + "input": "slate-200", + "card": "white", + "card-foreground": "slate-950", + "primary": "slate-900", + "primary-foreground": "slate-50", + "secondary": "slate-100", + "secondary-foreground": "slate-900", + "accent": "slate-100", + "accent-foreground": "slate-900", + "destructive": "red-500", + "destructive-foreground": "slate-50", + "ring": "slate-400" + }, + "dark": { + "background": "slate-950", + "foreground": "slate-50", + "muted": "slate-800", + "muted-foreground": "slate-400", + "popover": "slate-950", + "popover-foreground": "slate-50", + "border": "slate-800", + "input": "slate-800", + "card": "slate-950", + "card-foreground": "slate-50", + "primary": "slate-50", + "primary-foreground": "slate-900", + "secondary": "slate-800", + "secondary-foreground": "slate-50", + "accent": "slate-800", + "accent-foreground": "slate-50", + "destructive": "red-900", + "destructive-foreground": "red-50", + "ring": "slate-800" + } + }, + "cssVars": { + "light": { + "background": "0 0% 100%", + "foreground": "222.2 84% 4.9%", + "muted": "210 40% 96.1%", + "muted-foreground": "215.4 16.3% 46.9%", + "popover": "0 0% 100%", + "popover-foreground": "222.2 84% 4.9%", + "border": "214.3 31.8% 91.4%", + "input": "214.3 31.8% 91.4%", + "card": "0 0% 100%", + "card-foreground": "222.2 84% 4.9%", + "primary": "222.2 47.4% 11.2%", + "primary-foreground": "210 40% 98%", + "secondary": "210 40% 96.1%", + "secondary-foreground": "222.2 47.4% 11.2%", + "accent": "210 40% 96.1%", + "accent-foreground": "222.2 47.4% 11.2%", + "destructive": "0 84.2% 60.2%", + "destructive-foreground": "210 40% 98%", + "ring": "215 20.2% 65.1%" + }, + "dark": { + "background": "222.2 84% 4.9%", + "foreground": "210 40% 98%", + "muted": "217.2 32.6% 17.5%", + "muted-foreground": "215 20.2% 65.1%", + "popover": "222.2 84% 4.9%", + "popover-foreground": "210 40% 98%", + "border": "217.2 32.6% 17.5%", + "input": "217.2 32.6% 17.5%", + "card": "222.2 84% 4.9%", + "card-foreground": "210 40% 98%", + "primary": "210 40% 98%", + "primary-foreground": "222.2 47.4% 11.2%", + "secondary": "217.2 32.6% 17.5%", + "secondary-foreground": "210 40% 98%", + "accent": "217.2 32.6% 17.5%", + "accent-foreground": "210 40% 98%", + "destructive": "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + "ring": "217.2 32.6% 17.5%" + } + }, + "inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + "cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 222.2 84% 4.9%;\n \n --muted: 210 40% 96.1%;\n --muted-foreground: 215.4 16.3% 46.9%;\n \n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n \n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n \n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n \n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n \n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n \n --accent: 210 40% 96.1%;\n --accent-foreground: 222.2 47.4% 11.2%;\n \n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n \n --ring: 215 20.2% 65.1%;\n \n --radius: 0.5rem;\n }\n \n .dark {\n --background: 222.2 84% 4.9%;\n --foreground: 210 40% 98%;\n \n --muted: 217.2 32.6% 17.5%;\n --muted-foreground: 215 20.2% 65.1%;\n \n --popover: 222.2 84% 4.9%;\n --popover-foreground: 210 40% 98%;\n \n --card: 222.2 84% 4.9%;\n --card-foreground: 210 40% 98%;\n \n --border: 217.2 32.6% 17.5%;\n --input: 217.2 32.6% 17.5%;\n \n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 11.2%;\n \n --secondary: 217.2 32.6% 17.5%;\n --secondary-foreground: 210 40% 98%;\n \n --accent: 217.2 32.6% 17.5%;\n --accent-foreground: 210 40% 98%;\n \n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n \n --ring: 217.2 32.6% 17.5%;\n }\n}\n \n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}" +} \ No newline at end of file diff --git a/packages/cli/test/fixtures/colors/stone.json b/packages/cli/test/fixtures/colors/stone.json new file mode 100644 index 0000000..05e92bb --- /dev/null +++ b/packages/cli/test/fixtures/colors/stone.json @@ -0,0 +1,92 @@ +{ + "inlineColors": { + "light": { + "background": "white", + "foreground": "stone-950", + "muted": "stone-100", + "muted-foreground": "stone-500", + "popover": "white", + "popover-foreground": "stone-950", + "border": "stone-200", + "input": "stone-200", + "card": "white", + "card-foreground": "stone-950", + "primary": "stone-900", + "primary-foreground": "stone-50", + "secondary": "stone-100", + "secondary-foreground": "stone-900", + "accent": "stone-100", + "accent-foreground": "stone-900", + "destructive": "red-500", + "destructive-foreground": "stone-50", + "ring": "stone-400" + }, + "dark": { + "background": "stone-950", + "foreground": "stone-50", + "muted": "stone-800", + "muted-foreground": "stone-400", + "popover": "stone-950", + "popover-foreground": "stone-50", + "border": "stone-800", + "input": "stone-800", + "card": "stone-950", + "card-foreground": "stone-50", + "primary": "stone-50", + "primary-foreground": "stone-900", + "secondary": "stone-800", + "secondary-foreground": "stone-50", + "accent": "stone-800", + "accent-foreground": "stone-50", + "destructive": "red-900", + "destructive-foreground": "red-50", + "ring": "stone-800" + } + }, + "cssVars": { + "light": { + "background": "0 0% 100%", + "foreground": "20 14.3% 4.1%", + "muted": "60 4.8% 95.9%", + "muted-foreground": "25 5.3% 44.7%", + "popover": "0 0% 100%", + "popover-foreground": "20 14.3% 4.1%", + "border": "20 5.9% 90%", + "input": "20 5.9% 90%", + "card": "0 0% 100%", + "card-foreground": "20 14.3% 4.1%", + "primary": "24 9.8% 10%", + "primary-foreground": "60 9.1% 97.8%", + "secondary": "60 4.8% 95.9%", + "secondary-foreground": "24 9.8% 10%", + "accent": "60 4.8% 95.9%", + "accent-foreground": "24 9.8% 10%", + "destructive": "0 84.2% 60.2%", + "destructive-foreground": "60 9.1% 97.8%", + "ring": "24 5.4% 63.9%" + }, + "dark": { + "background": "20 14.3% 4.1%", + "foreground": "60 9.1% 97.8%", + "muted": "12 6.5% 15.1%", + "muted-foreground": "24 5.4% 63.9%", + "popover": "20 14.3% 4.1%", + "popover-foreground": "60 9.1% 97.8%", + "border": "12 6.5% 15.1%", + "input": "12 6.5% 15.1%", + "card": "20 14.3% 4.1%", + "card-foreground": "60 9.1% 97.8%", + "primary": "60 9.1% 97.8%", + "primary-foreground": "24 9.8% 10%", + "secondary": "12 6.5% 15.1%", + "secondary-foreground": "60 9.1% 97.8%", + "accent": "12 6.5% 15.1%", + "accent-foreground": "60 9.1% 97.8%", + "destructive": "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + "ring": "12 6.5% 15.1%" + } + }, + "inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + "cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 20 14.3% 4.1%;\n \n --muted: 60 4.8% 95.9%;\n --muted-foreground: 25 5.3% 44.7%;\n \n --popover: 0 0% 100%;\n --popover-foreground: 20 14.3% 4.1%;\n \n --card: 0 0% 100%;\n --card-foreground: 20 14.3% 4.1%;\n \n --border: 20 5.9% 90%;\n --input: 20 5.9% 90%;\n \n --primary: 24 9.8% 10%;\n --primary-foreground: 60 9.1% 97.8%;\n \n --secondary: 60 4.8% 95.9%;\n --secondary-foreground: 24 9.8% 10%;\n \n --accent: 60 4.8% 95.9%;\n --accent-foreground: 24 9.8% 10%;\n \n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 60 9.1% 97.8%;\n \n --ring: 24 5.4% 63.9%;\n \n --radius: 0.5rem;\n }\n \n .dark {\n --background: 20 14.3% 4.1%;\n --foreground: 60 9.1% 97.8%;\n \n --muted: 12 6.5% 15.1%;\n --muted-foreground: 24 5.4% 63.9%;\n \n --popover: 20 14.3% 4.1%;\n --popover-foreground: 60 9.1% 97.8%;\n \n --card: 20 14.3% 4.1%;\n --card-foreground: 60 9.1% 97.8%;\n \n --border: 12 6.5% 15.1%;\n --input: 12 6.5% 15.1%;\n \n --primary: 60 9.1% 97.8%;\n --primary-foreground: 24 9.8% 10%;\n \n --secondary: 12 6.5% 15.1%;\n --secondary-foreground: 60 9.1% 97.8%;\n \n --accent: 12 6.5% 15.1%;\n --accent-foreground: 60 9.1% 97.8%;\n \n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n \n --ring: 12 6.5% 15.1%;\n }\n}\n \n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}" +} \ No newline at end of file diff --git a/packages/cli/test/fixtures/colors/zinc.json b/packages/cli/test/fixtures/colors/zinc.json new file mode 100644 index 0000000..c26bf0e --- /dev/null +++ b/packages/cli/test/fixtures/colors/zinc.json @@ -0,0 +1,92 @@ +{ + "inlineColors": { + "light": { + "background": "white", + "foreground": "zinc-950", + "muted": "zinc-100", + "muted-foreground": "zinc-500", + "popover": "white", + "popover-foreground": "zinc-950", + "border": "zinc-200", + "input": "zinc-200", + "card": "white", + "card-foreground": "zinc-950", + "primary": "zinc-900", + "primary-foreground": "zinc-50", + "secondary": "zinc-100", + "secondary-foreground": "zinc-900", + "accent": "zinc-100", + "accent-foreground": "zinc-900", + "destructive": "red-500", + "destructive-foreground": "zinc-50", + "ring": "zinc-400" + }, + "dark": { + "background": "zinc-950", + "foreground": "zinc-50", + "muted": "zinc-800", + "muted-foreground": "zinc-400", + "popover": "zinc-950", + "popover-foreground": "zinc-50", + "border": "zinc-800", + "input": "zinc-800", + "card": "zinc-950", + "card-foreground": "zinc-50", + "primary": "zinc-50", + "primary-foreground": "zinc-900", + "secondary": "zinc-800", + "secondary-foreground": "zinc-50", + "accent": "zinc-800", + "accent-foreground": "zinc-50", + "destructive": "red-900", + "destructive-foreground": "red-50", + "ring": "zinc-800" + } + }, + "cssVars": { + "light": { + "background": "0 0% 100%", + "foreground": "240 10% 3.9%", + "muted": "240 4.8% 95.9%", + "muted-foreground": "240 3.8% 46.1%", + "popover": "0 0% 100%", + "popover-foreground": "240 10% 3.9%", + "border": "240 5.9% 90%", + "input": "240 5.9% 90%", + "card": "0 0% 100%", + "card-foreground": "240 10% 3.9%", + "primary": "240 5.9% 10%", + "primary-foreground": "0 0% 98%", + "secondary": "240 4.8% 95.9%", + "secondary-foreground": "240 5.9% 10%", + "accent": "240 4.8% 95.9%", + "accent-foreground": "240 5.9% 10%", + "destructive": "0 84.2% 60.2%", + "destructive-foreground": "0 0% 98%", + "ring": "240 5% 64.9%" + }, + "dark": { + "background": "240 10% 3.9%", + "foreground": "0 0% 98%", + "muted": "240 3.7% 15.9%", + "muted-foreground": "240 5% 64.9%", + "popover": "240 10% 3.9%", + "popover-foreground": "0 0% 98%", + "border": "240 3.7% 15.9%", + "input": "240 3.7% 15.9%", + "card": "240 10% 3.9%", + "card-foreground": "0 0% 98%", + "primary": "0 0% 98%", + "primary-foreground": "240 5.9% 10%", + "secondary": "240 3.7% 15.9%", + "secondary-foreground": "0 0% 98%", + "accent": "240 3.7% 15.9%", + "accent-foreground": "0 0% 98%", + "destructive": "0 62.8% 30.6%", + "destructive-foreground": "0 85.7% 97.3%", + "ring": "240 3.7% 15.9%" + } + }, + "inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n", + "cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 240 10% 3.9%;\n \n --muted: 240 4.8% 95.9%;\n --muted-foreground: 240 3.8% 46.1%;\n \n --popover: 0 0% 100%;\n --popover-foreground: 240 10% 3.9%;\n \n --card: 0 0% 100%;\n --card-foreground: 240 10% 3.9%;\n \n --border: 240 5.9% 90%;\n --input: 240 5.9% 90%;\n \n --primary: 240 5.9% 10%;\n --primary-foreground: 0 0% 98%;\n \n --secondary: 240 4.8% 95.9%;\n --secondary-foreground: 240 5.9% 10%;\n \n --accent: 240 4.8% 95.9%;\n --accent-foreground: 240 5.9% 10%;\n \n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n \n --ring: 240 5% 64.9%;\n \n --radius: 0.5rem;\n }\n \n .dark {\n --background: 240 10% 3.9%;\n --foreground: 0 0% 98%;\n \n --muted: 240 3.7% 15.9%;\n --muted-foreground: 240 5% 64.9%;\n \n --popover: 240 10% 3.9%;\n --popover-foreground: 0 0% 98%;\n \n --card: 240 10% 3.9%;\n --card-foreground: 0 0% 98%;\n \n --border: 240 3.7% 15.9%;\n --input: 240 3.7% 15.9%;\n \n --primary: 0 0% 98%;\n --primary-foreground: 240 5.9% 10%;\n \n --secondary: 240 3.7% 15.9%;\n --secondary-foreground: 0 0% 98%;\n \n --accent: 240 3.7% 15.9%;\n --accent-foreground: 0 0% 98%;\n \n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n \n --ring: 240 3.7% 15.9%;\n }\n}\n \n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}" +} \ No newline at end of file diff --git a/packages/cli/test/fixtures/config-full/components.json b/packages/cli/test/fixtures/config-full/components.json new file mode 100644 index 0000000..675abb2 --- /dev/null +++ b/packages/cli/test/fixtures/config-full/components.json @@ -0,0 +1,15 @@ +{ + "style": "new-york", + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "tw-" + }, + "rsc": false, + "aliases": { + "utils": "~/lib/utils", + "components": "~/components" + } +} diff --git a/packages/cli/test/fixtures/config-full/package.json b/packages/cli/test/fixtures/config-full/package.json new file mode 100644 index 0000000..833dc70 --- /dev/null +++ b/packages/cli/test/fixtures/config-full/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-full", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-full/tsconfig.json b/packages/cli/test/fixtures/config-full/tsconfig.json new file mode 100644 index 0000000..03ebb74 --- /dev/null +++ b/packages/cli/test/fixtures/config-full/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "checkJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "noUncheckedIndexedAccess": true, + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"] + } + }, + "include": [ + ".eslintrc.cjs", + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + "**/*.cjs", + "**/*.mjs" + ], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/config-invalid/components.json b/packages/cli/test/fixtures/config-invalid/components.json new file mode 100644 index 0000000..3cbc313 --- /dev/null +++ b/packages/cli/test/fixtures/config-invalid/components.json @@ -0,0 +1,5 @@ +{ + "cn": "./components", + "ui": "./ui", + "does-not-exist": "./does-not-exist" +} diff --git a/packages/cli/test/fixtures/config-invalid/package.json b/packages/cli/test/fixtures/config-invalid/package.json new file mode 100644 index 0000000..79b2799 --- /dev/null +++ b/packages/cli/test/fixtures/config-invalid/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-invalid", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-jsx/components.json b/packages/cli/test/fixtures/config-jsx/components.json new file mode 100644 index 0000000..92b1f5e --- /dev/null +++ b/packages/cli/test/fixtures/config-jsx/components.json @@ -0,0 +1,14 @@ +{ + "style": "default", + "tsx": false, + "tailwind": { + "config": "./tailwind.config.js", + "css": "./src/assets/css/tailwind.css", + "baseColor": "neutral", + "cssVariables": false + }, + "aliases": { + "utils": "@/lib/utils", + "components": "@/components" + } +} diff --git a/packages/cli/test/fixtures/config-jsx/jsconfig.json b/packages/cli/test/fixtures/config-jsx/jsconfig.json new file mode 100644 index 0000000..2a2e4b3 --- /dev/null +++ b/packages/cli/test/fixtures/config-jsx/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/packages/cli/test/fixtures/config-jsx/package.json b/packages/cli/test/fixtures/config-jsx/package.json new file mode 100644 index 0000000..b239ba4 --- /dev/null +++ b/packages/cli/test/fixtures/config-jsx/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-partial", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-none/package.json b/packages/cli/test/fixtures/config-none/package.json new file mode 100644 index 0000000..74c6960 --- /dev/null +++ b/packages/cli/test/fixtures/config-none/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-none", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-partial/components.json b/packages/cli/test/fixtures/config-partial/components.json new file mode 100644 index 0000000..b060258 --- /dev/null +++ b/packages/cli/test/fixtures/config-partial/components.json @@ -0,0 +1,13 @@ +{ + "style": "default", + "tailwind": { + "config": "./tailwind.config.ts", + "css": "./src/assets/css/tailwind.css", + "baseColor": "neutral", + "cssVariables": false + }, + "aliases": { + "utils": "@/lib/utils", + "components": "@/components" + } +} diff --git a/packages/cli/test/fixtures/config-partial/package.json b/packages/cli/test/fixtures/config-partial/package.json new file mode 100644 index 0000000..b239ba4 --- /dev/null +++ b/packages/cli/test/fixtures/config-partial/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-partial", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-partial/tsconfig.json b/packages/cli/test/fixtures/config-partial/tsconfig.json new file mode 100644 index 0000000..7f519f4 --- /dev/null +++ b/packages/cli/test/fixtures/config-partial/tsconfig.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/packages/cli/test/fixtures/config-ui/components.json b/packages/cli/test/fixtures/config-ui/components.json new file mode 100644 index 0000000..0feb828 --- /dev/null +++ b/packages/cli/test/fixtures/config-ui/components.json @@ -0,0 +1,16 @@ +{ + "style": "new-york", + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "tw-" + }, + "rsc": false, + "aliases": { + "utils": "~/lib/utils", + "components": "~/components", + "ui": "~/ui" + } +} diff --git a/packages/cli/test/fixtures/config-ui/package.json b/packages/cli/test/fixtures/config-ui/package.json new file mode 100644 index 0000000..673ee87 --- /dev/null +++ b/packages/cli/test/fixtures/config-ui/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-config-ui", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/config-ui/tsconfig.json b/packages/cli/test/fixtures/config-ui/tsconfig.json new file mode 100644 index 0000000..03ebb74 --- /dev/null +++ b/packages/cli/test/fixtures/config-ui/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "checkJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "noUncheckedIndexedAccess": true, + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"] + } + }, + "include": [ + ".eslintrc.cjs", + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + "**/*.cjs", + "**/*.mjs" + ], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next-app-js/app/favicon.ico b/packages/cli/test/fixtures/next-app-js/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/packages/cli/test/fixtures/next-app-js/app/globals.css b/packages/cli/test/fixtures/next-app-js/app/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-app-js/app/layout.js b/packages/cli/test/fixtures/next-app-js/app/layout.js new file mode 100644 index 0000000..821f712 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/app/layout.js @@ -0,0 +1,17 @@ +import { Inter } from 'next/font/google' +import './globals.css' + +const inter = Inter({ subsets: ['latin'] }) + +export const metadata = { + title: 'Create Next App', + description: 'Generated by create next app', +} + +export default function RootLayout({ children }) { + return ( + + {children} + + ) +} diff --git a/packages/cli/test/fixtures/next-app-js/app/page.js b/packages/cli/test/fixtures/next-app-js/app/page.js new file mode 100644 index 0000000..9c88d59 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/app/page.js @@ -0,0 +1,113 @@ +import Image from 'next/image' + +export default function Home() { + return ( +

+ ) +} diff --git a/packages/cli/test/fixtures/next-app-js/jsconfig.json b/packages/cli/test/fixtures/next-app-js/jsconfig.json new file mode 100644 index 0000000..2a2e4b3 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/packages/cli/test/fixtures/next-app-js/next.config.js b/packages/cli/test/fixtures/next-app-js/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-app-js/package.json b/packages/cli/test/fixtures/next-app-js/package.json new file mode 100644 index 0000000..6000b7e --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/package.json @@ -0,0 +1,23 @@ +{ + "name": "app-js", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "react": "^18", + "react-dom": "^18", + "next": "14.0.4" + }, + "devDependencies": { + "autoprefixer": "^10.0.1", + "postcss": "^8", + "tailwindcss": "^3.3.0", + "eslint": "^8", + "eslint-config-next": "14.0.4" + } +} diff --git a/packages/cli/test/fixtures/next-app-js/postcss.config.js b/packages/cli/test/fixtures/next-app-js/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/cli/test/fixtures/next-app-js/tailwind.config.js b/packages/cli/test/fixtures/next-app-js/tailwind.config.js new file mode 100644 index 0000000..8c4d1b2 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-js/tailwind.config.js @@ -0,0 +1,18 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}', + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', + }, + }, + }, + plugins: [], +} diff --git a/packages/cli/test/fixtures/next-app-src/next-env.d.ts b/packages/cli/test/fixtures/next-app-src/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/cli/test/fixtures/next-app-src/next.config.js b/packages/cli/test/fixtures/next-app-src/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-app-src/other.css b/packages/cli/test/fixtures/next-app-src/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-app-src/package.json b/packages/cli/test/fixtures/next-app-src/package.json new file mode 100644 index 0000000..dfc8520 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/package.json @@ -0,0 +1,11 @@ +{ + "name": "test-cli-next-app-src", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + } +} diff --git a/packages/cli/test/fixtures/next-app-src/pnpm-lock.yaml b/packages/cli/test/fixtures/next-app-src/pnpm-lock.yaml new file mode 100644 index 0000000..a8ca020 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/pnpm-lock.yaml @@ -0,0 +1,2620 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@types/node': + specifier: 20.6.2 + version: 20.6.2 + '@types/react': + specifier: 18.2.22 + version: 18.2.22 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.30) + eslint: + specifier: 8.49.0 + version: 8.49.0 + eslint-config-next: + specifier: 13.4.19 + version: 13.4.19(eslint@8.49.0)(typescript@5.2.2) + next: + specifier: 13.4.19 + version: 13.4.19(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.30 + version: 8.4.30 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: 5.2.2 + version: 5.2.2 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.49.0: + resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: false + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@next/env@13.4.19: + resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==} + dev: false + + /@next/eslint-plugin-next@13.4.19: + resolution: {integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/swc-darwin-arm64@13.4.19: + resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.4.19: + resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.4.19: + resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.4.19: + resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.4.19: + resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.4.19: + resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.4.19: + resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.4.19: + resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.4.19: + resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@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: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: false + + /@rushstack/eslint-patch@1.4.0: + resolution: {integrity: sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==} + dev: false + + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + dependencies: + tslib: 2.6.2 + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/node@20.6.2: + resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==} + dev: false + + /@types/prop-types@15.7.6: + resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} + dev: false + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.22 + dev: false + + /@types/react@18.2.22: + resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} + dependencies: + '@types/prop-types': 15.7.6 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: false + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + dev: false + + /@typescript-eslint/parser@6.7.2(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.2 + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + eslint: 8.49.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@6.7.2: + resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + dev: false + + /@typescript-eslint/types@6.7.2: + resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): + resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/visitor-keys@6.7.2: + resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + eslint-visitor-keys: 3.4.3 + dev: false + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: false + + /autoprefixer@10.4.15(postcss@8.4.30): + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001538 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /axe-core@4.8.1: + resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} + engines: {node: '>=4'} + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.523 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /electron-to-chromium@1.4.523: + resolution: {integrity: sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==} + dev: false + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: false + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: false + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: false + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-config-next@13.4.19(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.19 + '@rushstack/eslint-patch': 1.4.0 + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.49.0) + eslint-plugin-react: 7.33.2(eslint@8.49.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.49.0) + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.49.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.15 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.49.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.49.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.49.0 + dev: false + + /eslint-plugin-react@7.33.2(eslint@8.49.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.49.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.49.0: + resolution: {integrity: sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.49.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + 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 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /fraction.js@4.3.6: + resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /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: false + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: false + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: false + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: false + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: false + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: false + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /next@13.4.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==} + engines: {node: '>=16.8.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.4.19 + '@swc/helpers': 0.5.1 + busboy: 1.6.0 + caniuse-lite: 1.0.30001538 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 + optionalDependencies: + '@next/swc-darwin-arm64': 13.4.19 + '@next/swc-darwin-x64': 13.4.19 + '@next/swc-linux-arm64-gnu': 13.4.19 + '@next/swc-linux-arm64-musl': 13.4.19 + '@next/swc-linux-x64-gnu': 13.4.19 + '@next/swc-linux-x64-musl': 13.4.19 + '@next/swc-win32-arm64-msvc': 13.4.19 + '@next/swc-win32-ia32-msvc': 13.4.19 + '@next/swc-win32-x64-msvc': 13.4.19 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: false + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: false + + /postcss-import@15.1.0(postcss@8.4.30): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.6 + dev: false + + /postcss-js@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.30 + dev: false + + /postcss-load-config@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.30 + yaml: 2.3.2 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.30): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.30 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /postcss@8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /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-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: false + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: false + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: false + + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-import: 15.1.0(postcss@8.4.30) + postcss-js: 4.0.1(postcss@8.4.30) + postcss-load-config: 4.0.1(postcss@8.4.30) + postcss-nested: 6.0.1(postcss@8.4.30) + postcss-selector-parser: 6.0.13 + resolve: 1.22.6 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: false + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: false + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/packages/cli/test/fixtures/next-app-src/postcss.config.js b/packages/cli/test/fixtures/next-app-src/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/cli/test/fixtures/next-app-src/src/app/favicon.ico b/packages/cli/test/fixtures/next-app-src/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4570eb8d9269ad58b17fecbec6d630cded56f507 GIT binary patch literal 39535 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 literal 0 HcmV?d00001 diff --git a/packages/cli/test/fixtures/next-app-src/src/app/layout.tsx b/packages/cli/test/fixtures/next-app-src/src/app/layout.tsx new file mode 100644 index 0000000..0aed1de --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/src/app/layout.tsx @@ -0,0 +1,13 @@ +import "./styles.css" + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/packages/cli/test/fixtures/next-app-src/src/app/other.css b/packages/cli/test/fixtures/next-app-src/src/app/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/src/app/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-app-src/src/app/page.tsx b/packages/cli/test/fixtures/next-app-src/src/app/page.tsx new file mode 100644 index 0000000..e38c626 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/src/app/page.tsx @@ -0,0 +1,113 @@ +import Image from 'next/image' + +export default function Home() { + return ( +
+
+

+ Get started by editing  + src/app/page.tsx +

+ +
+ +
+ Next.js Logo +
+ + +
+ ) +} diff --git a/packages/cli/test/fixtures/next-app-src/src/app/styles.css b/packages/cli/test/fixtures/next-app-src/src/app/styles.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/src/app/styles.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-app-src/src/other.css b/packages/cli/test/fixtures/next-app-src/src/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/src/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-app-src/tailwind.config.ts b/packages/cli/test/fixtures/next-app-src/tailwind.config.ts new file mode 100644 index 0000000..1137927 --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/tailwind.config.ts @@ -0,0 +1,21 @@ +// @ts-nocheck +import type { Config } from 'tailwindcss' + +const config: Config = { + content: [ + './src/pages/**/*.{js,ts,jsx,tsx,mdx}', + './src/components/**/*.{js,ts,jsx,tsx,mdx}', + './src/app/**/*.{js,ts,jsx,tsx,mdx}' + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))' + } + } + }, + plugins: [] +} +export default config diff --git a/packages/cli/test/fixtures/next-app-src/tsconfig.json b/packages/cli/test/fixtures/next-app-src/tsconfig.json new file mode 100644 index 0000000..7b5489b --- /dev/null +++ b/packages/cli/test/fixtures/next-app-src/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "#/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next-app/app/favicon.ico b/packages/cli/test/fixtures/next-app/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/packages/cli/test/fixtures/next-app/app/globals.css b/packages/cli/test/fixtures/next-app/app/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-app/app/layout.tsx b/packages/cli/test/fixtures/next-app/app/layout.tsx new file mode 100644 index 0000000..ae84562 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/app/layout.tsx @@ -0,0 +1,22 @@ +import './globals.css' +import type { Metadata } from 'next' +import { Inter } from 'next/font/google' + +const inter = Inter({ subsets: ['latin'] }) + +export const metadata: Metadata = { + title: 'Create Next App', + description: 'Generated by create next app', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/packages/cli/test/fixtures/next-app/app/other.css b/packages/cli/test/fixtures/next-app/app/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-app/app/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-app/app/page.tsx b/packages/cli/test/fixtures/next-app/app/page.tsx new file mode 100644 index 0000000..7a8286b --- /dev/null +++ b/packages/cli/test/fixtures/next-app/app/page.tsx @@ -0,0 +1,113 @@ +import Image from 'next/image' + +export default function Home() { + return ( +
+
+

+ Get started by editing  + app/page.tsx +

+ +
+ +
+ Next.js Logo +
+ + +
+ ) +} diff --git a/packages/cli/test/fixtures/next-app/next-env.d.ts b/packages/cli/test/fixtures/next-app/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/cli/test/fixtures/next-app/next.config.js b/packages/cli/test/fixtures/next-app/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/cli/test/fixtures/next-app/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-app/package.json b/packages/cli/test/fixtures/next-app/package.json new file mode 100644 index 0000000..d43fb08 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/package.json @@ -0,0 +1,11 @@ +{ + "name": "test-cli-next-app", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + } +} diff --git a/packages/cli/test/fixtures/next-app/pnpm-lock.yaml b/packages/cli/test/fixtures/next-app/pnpm-lock.yaml new file mode 100644 index 0000000..a8ca020 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/pnpm-lock.yaml @@ -0,0 +1,2620 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@types/node': + specifier: 20.6.2 + version: 20.6.2 + '@types/react': + specifier: 18.2.22 + version: 18.2.22 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.30) + eslint: + specifier: 8.49.0 + version: 8.49.0 + eslint-config-next: + specifier: 13.4.19 + version: 13.4.19(eslint@8.49.0)(typescript@5.2.2) + next: + specifier: 13.4.19 + version: 13.4.19(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.30 + version: 8.4.30 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: 5.2.2 + version: 5.2.2 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.49.0: + resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: false + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@next/env@13.4.19: + resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==} + dev: false + + /@next/eslint-plugin-next@13.4.19: + resolution: {integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/swc-darwin-arm64@13.4.19: + resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.4.19: + resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.4.19: + resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.4.19: + resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.4.19: + resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.4.19: + resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.4.19: + resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.4.19: + resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.4.19: + resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@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: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: false + + /@rushstack/eslint-patch@1.4.0: + resolution: {integrity: sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==} + dev: false + + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + dependencies: + tslib: 2.6.2 + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/node@20.6.2: + resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==} + dev: false + + /@types/prop-types@15.7.6: + resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} + dev: false + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.22 + dev: false + + /@types/react@18.2.22: + resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} + dependencies: + '@types/prop-types': 15.7.6 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: false + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + dev: false + + /@typescript-eslint/parser@6.7.2(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.2 + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + eslint: 8.49.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@6.7.2: + resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + dev: false + + /@typescript-eslint/types@6.7.2: + resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): + resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/visitor-keys@6.7.2: + resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + eslint-visitor-keys: 3.4.3 + dev: false + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: false + + /autoprefixer@10.4.15(postcss@8.4.30): + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001538 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /axe-core@4.8.1: + resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} + engines: {node: '>=4'} + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.523 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /electron-to-chromium@1.4.523: + resolution: {integrity: sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==} + dev: false + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: false + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: false + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: false + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-config-next@13.4.19(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.19 + '@rushstack/eslint-patch': 1.4.0 + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.49.0) + eslint-plugin-react: 7.33.2(eslint@8.49.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.49.0) + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.49.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.15 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.49.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.49.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.49.0 + dev: false + + /eslint-plugin-react@7.33.2(eslint@8.49.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.49.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.49.0: + resolution: {integrity: sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.49.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + 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 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /fraction.js@4.3.6: + resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /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: false + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: false + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: false + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: false + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: false + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: false + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /next@13.4.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==} + engines: {node: '>=16.8.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.4.19 + '@swc/helpers': 0.5.1 + busboy: 1.6.0 + caniuse-lite: 1.0.30001538 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 + optionalDependencies: + '@next/swc-darwin-arm64': 13.4.19 + '@next/swc-darwin-x64': 13.4.19 + '@next/swc-linux-arm64-gnu': 13.4.19 + '@next/swc-linux-arm64-musl': 13.4.19 + '@next/swc-linux-x64-gnu': 13.4.19 + '@next/swc-linux-x64-musl': 13.4.19 + '@next/swc-win32-arm64-msvc': 13.4.19 + '@next/swc-win32-ia32-msvc': 13.4.19 + '@next/swc-win32-x64-msvc': 13.4.19 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: false + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: false + + /postcss-import@15.1.0(postcss@8.4.30): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.6 + dev: false + + /postcss-js@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.30 + dev: false + + /postcss-load-config@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.30 + yaml: 2.3.2 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.30): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.30 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /postcss@8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /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-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: false + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: false + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: false + + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-import: 15.1.0(postcss@8.4.30) + postcss-js: 4.0.1(postcss@8.4.30) + postcss-load-config: 4.0.1(postcss@8.4.30) + postcss-nested: 6.0.1(postcss@8.4.30) + postcss-selector-parser: 6.0.13 + resolve: 1.22.6 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: false + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: false + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/packages/cli/test/fixtures/next-app/postcss.config.js b/packages/cli/test/fixtures/next-app/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/cli/test/fixtures/next-app/tailwind.config.ts b/packages/cli/test/fixtures/next-app/tailwind.config.ts new file mode 100644 index 0000000..571ebb0 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/tailwind.config.ts @@ -0,0 +1,21 @@ +// @ts-nocheck +import type { Config } from 'tailwindcss' + +const config: Config = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}' + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))' + } + } + }, + plugins: [] +} +export default config diff --git a/packages/cli/test/fixtures/next-app/tsconfig.json b/packages/cli/test/fixtures/next-app/tsconfig.json new file mode 100644 index 0000000..c714696 --- /dev/null +++ b/packages/cli/test/fixtures/next-app/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next-pages-src/next-env.d.ts b/packages/cli/test/fixtures/next-pages-src/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/cli/test/fixtures/next-pages-src/next.config.js b/packages/cli/test/fixtures/next-pages-src/next.config.js new file mode 100644 index 0000000..a843cbe --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-pages-src/other.css b/packages/cli/test/fixtures/next-pages-src/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages-src/package.json b/packages/cli/test/fixtures/next-pages-src/package.json new file mode 100644 index 0000000..d5be9c4 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/package.json @@ -0,0 +1,11 @@ +{ + "name": "test-pages-src", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + } +} diff --git a/packages/cli/test/fixtures/next-pages-src/pnpm-lock.yaml b/packages/cli/test/fixtures/next-pages-src/pnpm-lock.yaml new file mode 100644 index 0000000..a8ca020 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/pnpm-lock.yaml @@ -0,0 +1,2620 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@types/node': + specifier: 20.6.2 + version: 20.6.2 + '@types/react': + specifier: 18.2.22 + version: 18.2.22 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.30) + eslint: + specifier: 8.49.0 + version: 8.49.0 + eslint-config-next: + specifier: 13.4.19 + version: 13.4.19(eslint@8.49.0)(typescript@5.2.2) + next: + specifier: 13.4.19 + version: 13.4.19(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.30 + version: 8.4.30 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: 5.2.2 + version: 5.2.2 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.49.0: + resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: false + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@next/env@13.4.19: + resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==} + dev: false + + /@next/eslint-plugin-next@13.4.19: + resolution: {integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/swc-darwin-arm64@13.4.19: + resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.4.19: + resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.4.19: + resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.4.19: + resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.4.19: + resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.4.19: + resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.4.19: + resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.4.19: + resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.4.19: + resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@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: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: false + + /@rushstack/eslint-patch@1.4.0: + resolution: {integrity: sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==} + dev: false + + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + dependencies: + tslib: 2.6.2 + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/node@20.6.2: + resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==} + dev: false + + /@types/prop-types@15.7.6: + resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} + dev: false + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.22 + dev: false + + /@types/react@18.2.22: + resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} + dependencies: + '@types/prop-types': 15.7.6 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: false + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + dev: false + + /@typescript-eslint/parser@6.7.2(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.2 + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + eslint: 8.49.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@6.7.2: + resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + dev: false + + /@typescript-eslint/types@6.7.2: + resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): + resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/visitor-keys@6.7.2: + resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + eslint-visitor-keys: 3.4.3 + dev: false + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: false + + /autoprefixer@10.4.15(postcss@8.4.30): + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001538 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /axe-core@4.8.1: + resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} + engines: {node: '>=4'} + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.523 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /electron-to-chromium@1.4.523: + resolution: {integrity: sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==} + dev: false + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: false + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: false + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: false + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-config-next@13.4.19(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.19 + '@rushstack/eslint-patch': 1.4.0 + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.49.0) + eslint-plugin-react: 7.33.2(eslint@8.49.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.49.0) + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.49.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.15 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.49.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.49.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.49.0 + dev: false + + /eslint-plugin-react@7.33.2(eslint@8.49.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.49.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.49.0: + resolution: {integrity: sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.49.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + 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 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /fraction.js@4.3.6: + resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /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: false + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: false + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: false + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: false + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: false + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: false + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /next@13.4.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==} + engines: {node: '>=16.8.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.4.19 + '@swc/helpers': 0.5.1 + busboy: 1.6.0 + caniuse-lite: 1.0.30001538 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 + optionalDependencies: + '@next/swc-darwin-arm64': 13.4.19 + '@next/swc-darwin-x64': 13.4.19 + '@next/swc-linux-arm64-gnu': 13.4.19 + '@next/swc-linux-arm64-musl': 13.4.19 + '@next/swc-linux-x64-gnu': 13.4.19 + '@next/swc-linux-x64-musl': 13.4.19 + '@next/swc-win32-arm64-msvc': 13.4.19 + '@next/swc-win32-ia32-msvc': 13.4.19 + '@next/swc-win32-x64-msvc': 13.4.19 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: false + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: false + + /postcss-import@15.1.0(postcss@8.4.30): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.6 + dev: false + + /postcss-js@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.30 + dev: false + + /postcss-load-config@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.30 + yaml: 2.3.2 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.30): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.30 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /postcss@8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /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-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: false + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: false + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: false + + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-import: 15.1.0(postcss@8.4.30) + postcss-js: 4.0.1(postcss@8.4.30) + postcss-load-config: 4.0.1(postcss@8.4.30) + postcss-nested: 6.0.1(postcss@8.4.30) + postcss-selector-parser: 6.0.13 + resolve: 1.22.6 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: false + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: false + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/packages/cli/test/fixtures/next-pages-src/postcss.config.js b/packages/cli/test/fixtures/next-pages-src/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/other.css b/packages/cli/test/fixtures/next-pages-src/src/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/pages/_app.tsx b/packages/cli/test/fixtures/next-pages-src/src/pages/_app.tsx new file mode 100644 index 0000000..021681f --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/pages/_app.tsx @@ -0,0 +1,6 @@ +import '@/styles/globals.css' +import type { AppProps } from 'next/app' + +export default function App({ Component, pageProps }: AppProps) { + return +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/pages/_document.tsx b/packages/cli/test/fixtures/next-pages-src/src/pages/_document.tsx new file mode 100644 index 0000000..54e8bf3 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Html, Head, Main, NextScript } from 'next/document' + +export default function Document() { + return ( + + + +
+ + + + ) +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/pages/api/hello.ts b/packages/cli/test/fixtures/next-pages-src/src/pages/api/hello.ts new file mode 100644 index 0000000..f8bcc7e --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/pages/api/hello.ts @@ -0,0 +1,13 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from 'next' + +type Data = { + name: string +} + +export default function handler( + req: NextApiRequest, + res: NextApiResponse +) { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/pages/index.tsx b/packages/cli/test/fixtures/next-pages-src/src/pages/index.tsx new file mode 100644 index 0000000..be88f73 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/pages/index.tsx @@ -0,0 +1,118 @@ +import Image from 'next/image' +import { Inter } from 'next/font/google' + +const inter = Inter({ subsets: ['latin'] }) + +export default function Home() { + return ( +
+
+

+ Get started by editing  + src/pages/index.tsx +

+ +
+ +
+ Next.js Logo +
+ + +
+ ) +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/pages/other.css b/packages/cli/test/fixtures/next-pages-src/src/pages/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/pages/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/styles/globals.css b/packages/cli/test/fixtures/next-pages-src/src/styles/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/styles/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-pages-src/src/styles/other.css b/packages/cli/test/fixtures/next-pages-src/src/styles/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/src/styles/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages-src/tailwind.config.ts b/packages/cli/test/fixtures/next-pages-src/tailwind.config.ts new file mode 100644 index 0000000..1137927 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/tailwind.config.ts @@ -0,0 +1,21 @@ +// @ts-nocheck +import type { Config } from 'tailwindcss' + +const config: Config = { + content: [ + './src/pages/**/*.{js,ts,jsx,tsx,mdx}', + './src/components/**/*.{js,ts,jsx,tsx,mdx}', + './src/app/**/*.{js,ts,jsx,tsx,mdx}' + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))' + } + } + }, + plugins: [] +} +export default config diff --git a/packages/cli/test/fixtures/next-pages-src/tsconfig.json b/packages/cli/test/fixtures/next-pages-src/tsconfig.json new file mode 100644 index 0000000..3ca6a9a --- /dev/null +++ b/packages/cli/test/fixtures/next-pages-src/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next-pages/next.config.js b/packages/cli/test/fixtures/next-pages/next.config.js new file mode 100644 index 0000000..a843cbe --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-pages/package.json b/packages/cli/test/fixtures/next-pages/package.json new file mode 100644 index 0000000..7603dc9 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/package.json @@ -0,0 +1,11 @@ +{ + "name": "test-cli-pages", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + } +} diff --git a/packages/cli/test/fixtures/next-pages/pages/_app.tsx b/packages/cli/test/fixtures/next-pages/pages/_app.tsx new file mode 100644 index 0000000..6de02d1 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pages/_app.tsx @@ -0,0 +1,6 @@ +import '~/styles/globals.css' +import type { AppProps } from 'next/app' + +export default function App({ Component, pageProps }: AppProps) { + return +} diff --git a/packages/cli/test/fixtures/next-pages/pages/_document.tsx b/packages/cli/test/fixtures/next-pages/pages/_document.tsx new file mode 100644 index 0000000..54e8bf3 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Html, Head, Main, NextScript } from 'next/document' + +export default function Document() { + return ( + + + +
+ + + + ) +} diff --git a/packages/cli/test/fixtures/next-pages/pages/api/hello.ts b/packages/cli/test/fixtures/next-pages/pages/api/hello.ts new file mode 100644 index 0000000..f8bcc7e --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pages/api/hello.ts @@ -0,0 +1,13 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from 'next' + +type Data = { + name: string +} + +export default function handler( + req: NextApiRequest, + res: NextApiResponse +) { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/packages/cli/test/fixtures/next-pages/pages/index.tsx b/packages/cli/test/fixtures/next-pages/pages/index.tsx new file mode 100644 index 0000000..000a751 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pages/index.tsx @@ -0,0 +1,118 @@ +import Image from 'next/image' +import { Inter } from 'next/font/google' + +const inter = Inter({ subsets: ['latin'] }) + +export default function Home() { + return ( +
+
+

+ Get started by editing  + pages/index.tsx +

+ +
+ +
+ Next.js Logo +
+ + +
+ ) +} diff --git a/packages/cli/test/fixtures/next-pages/pages/other.css b/packages/cli/test/fixtures/next-pages/pages/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pages/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages/pnpm-lock.yaml b/packages/cli/test/fixtures/next-pages/pnpm-lock.yaml new file mode 100644 index 0000000..a8ca020 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/pnpm-lock.yaml @@ -0,0 +1,2620 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@types/node': + specifier: 20.6.2 + version: 20.6.2 + '@types/react': + specifier: 18.2.22 + version: 18.2.22 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.30) + eslint: + specifier: 8.49.0 + version: 8.49.0 + eslint-config-next: + specifier: 13.4.19 + version: 13.4.19(eslint@8.49.0)(typescript@5.2.2) + next: + specifier: 13.4.19 + version: 13.4.19(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.30 + version: 8.4.30 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: 5.2.2 + version: 5.2.2 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + + /@babel/runtime@7.22.15: + resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.8.1: + resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.49.0: + resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: false + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /@next/env@13.4.19: + resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==} + dev: false + + /@next/eslint-plugin-next@13.4.19: + resolution: {integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/swc-darwin-arm64@13.4.19: + resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.4.19: + resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.4.19: + resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.4.19: + resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.4.19: + resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.4.19: + resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.4.19: + resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.4.19: + resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.4.19: + resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@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: false + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: false + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: false + + /@rushstack/eslint-patch@1.4.0: + resolution: {integrity: sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==} + dev: false + + /@swc/helpers@0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + dependencies: + tslib: 2.6.2 + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/node@20.6.2: + resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==} + dev: false + + /@types/prop-types@15.7.6: + resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} + dev: false + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.22 + dev: false + + /@types/react@18.2.22: + resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} + dependencies: + '@types/prop-types': 15.7.6 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: false + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + dev: false + + /@typescript-eslint/parser@6.7.2(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.2 + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + eslint: 8.49.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@6.7.2: + resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + dev: false + + /@typescript-eslint/types@6.7.2: + resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): + resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.2 + '@typescript-eslint/visitor-keys': 6.7.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/visitor-keys@6.7.2: + resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.2 + eslint-visitor-keys: 3.4.3 + dev: false + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: false + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: false + + /autoprefixer@10.4.15(postcss@8.4.30): + resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001538 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /axe-core@4.8.1: + resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} + engines: {node: '>=4'} + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: false + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.523 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /electron-to-chromium@1.4.523: + resolution: {integrity: sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==} + dev: false + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: false + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: false + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: false + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-config-next@13.4.19(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.19 + '@rushstack/eslint-patch': 1.4.0 + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.49.0) + eslint-plugin-react: 7.33.2(eslint@8.49.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.49.0) + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.2(eslint@8.49.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.49.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.49.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.15 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.49.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.49.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.49.0 + dev: false + + /eslint-plugin-react@7.33.2(eslint@8.49.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.49.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.49.0: + resolution: {integrity: sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.49.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + 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 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /fraction.js@4.3.6: + resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /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: false + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: false + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: false + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: false + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: false + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: false + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: false + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /next@13.4.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==} + engines: {node: '>=16.8.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.4.19 + '@swc/helpers': 0.5.1 + busboy: 1.6.0 + caniuse-lite: 1.0.30001538 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 + optionalDependencies: + '@next/swc-darwin-arm64': 13.4.19 + '@next/swc-darwin-x64': 13.4.19 + '@next/swc-linux-arm64-gnu': 13.4.19 + '@next/swc-linux-arm64-musl': 13.4.19 + '@next/swc-linux-x64-gnu': 13.4.19 + '@next/swc-linux-x64-musl': 13.4.19 + '@next/swc-win32-arm64-msvc': 13.4.19 + '@next/swc-win32-ia32-msvc': 13.4.19 + '@next/swc-win32-x64-msvc': 13.4.19 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: false + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: false + + /postcss-import@15.1.0(postcss@8.4.30): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.30 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.6 + dev: false + + /postcss-js@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.30 + dev: false + + /postcss-load-config@4.0.1(postcss@8.4.30): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.30 + yaml: 2.3.2 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.30): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.30 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /postcss@8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /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-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: false + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: false + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: false + + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.30 + postcss-import: 15.1.0(postcss@8.4.30) + postcss-js: 4.0.1(postcss@8.4.30) + postcss-load-config: 4.0.1(postcss@8.4.30) + postcss-nested: 6.0.1(postcss@8.4.30) + postcss-selector-parser: 6.0.13 + resolve: 1.22.6 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: false + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: false + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false diff --git a/packages/cli/test/fixtures/next-pages/postcss.config.js b/packages/cli/test/fixtures/next-pages/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/cli/test/fixtures/next-pages/styles/globals.css b/packages/cli/test/fixtures/next-pages/styles/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/styles/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-pages/styles/other.css b/packages/cli/test/fixtures/next-pages/styles/other.css new file mode 100644 index 0000000..aa1634c --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/styles/other.css @@ -0,0 +1,3 @@ +body { + background-color: red; +} diff --git a/packages/cli/test/fixtures/next-pages/tailwind.config.ts b/packages/cli/test/fixtures/next-pages/tailwind.config.ts new file mode 100644 index 0000000..571ebb0 --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/tailwind.config.ts @@ -0,0 +1,21 @@ +// @ts-nocheck +import type { Config } from 'tailwindcss' + +const config: Config = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}' + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))' + } + } + }, + plugins: [] +} +export default config diff --git a/packages/cli/test/fixtures/next-pages/tsconfig.json b/packages/cli/test/fixtures/next-pages/tsconfig.json new file mode 100644 index 0000000..676ffba --- /dev/null +++ b/packages/cli/test/fixtures/next-pages/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "~/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next-src/.gitignore b/packages/cli/test/fixtures/next-src/.gitignore new file mode 100644 index 0000000..8f322f0 --- /dev/null +++ b/packages/cli/test/fixtures/next-src/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/packages/cli/test/fixtures/next-src/next.config.js b/packages/cli/test/fixtures/next-src/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/cli/test/fixtures/next-src/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next-src/package.json b/packages/cli/test/fixtures/next-src/package.json new file mode 100644 index 0000000..38e67b5 --- /dev/null +++ b/packages/cli/test/fixtures/next-src/package.json @@ -0,0 +1,11 @@ +{ + "name": "text-cli-next-src", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + } +} diff --git a/packages/cli/test/fixtures/next-src/src/app/globals.css b/packages/cli/test/fixtures/next-src/src/app/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next-src/src/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next-src/tailwind.config.js b/packages/cli/test/fixtures/next-src/tailwind.config.js new file mode 100644 index 0000000..d53b2ea --- /dev/null +++ b/packages/cli/test/fixtures/next-src/tailwind.config.js @@ -0,0 +1,18 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './src/pages/**/*.{js,ts,jsx,tsx,mdx}', + './src/components/**/*.{js,ts,jsx,tsx,mdx}', + './src/app/**/*.{js,ts,jsx,tsx,mdx}', + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', + }, + }, + }, + plugins: [], +} diff --git a/packages/cli/test/fixtures/next-src/tsconfig.json b/packages/cli/test/fixtures/next-src/tsconfig.json new file mode 100644 index 0000000..0c7555f --- /dev/null +++ b/packages/cli/test/fixtures/next-src/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/next/.gitignore b/packages/cli/test/fixtures/next/.gitignore new file mode 100644 index 0000000..8f322f0 --- /dev/null +++ b/packages/cli/test/fixtures/next/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/packages/cli/test/fixtures/next/app/globals.css b/packages/cli/test/fixtures/next/app/globals.css new file mode 100644 index 0000000..fd81e88 --- /dev/null +++ b/packages/cli/test/fixtures/next/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/packages/cli/test/fixtures/next/next.config.js b/packages/cli/test/fixtures/next/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/cli/test/fixtures/next/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/cli/test/fixtures/next/package.json b/packages/cli/test/fixtures/next/package.json new file mode 100644 index 0000000..16f8a2d --- /dev/null +++ b/packages/cli/test/fixtures/next/package.json @@ -0,0 +1,25 @@ +{ + "name": "test-cli-next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@types/node": "20.2.5", + "@types/react": "18.2.7", + "@types/react-dom": "18.2.4", + "autoprefixer": "10.4.14", + "eslint": "8.41.0", + "eslint-config-next": "13.4.4", + "next": "13.4.4", + "postcss": "8.4.23", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwindcss": "3.3.2", + "typescript": "5.0.4" + } +} diff --git a/packages/cli/test/fixtures/next/pnpm-lock.yaml b/packages/cli/test/fixtures/next/pnpm-lock.yaml new file mode 100644 index 0000000..7becc66 --- /dev/null +++ b/packages/cli/test/fixtures/next/pnpm-lock.yaml @@ -0,0 +1 @@ +lockfileVersion: "6.0" diff --git a/packages/cli/test/fixtures/next/tailwind.config.js b/packages/cli/test/fixtures/next/tailwind.config.js new file mode 100644 index 0000000..6e84f58 --- /dev/null +++ b/packages/cli/test/fixtures/next/tailwind.config.js @@ -0,0 +1,76 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ["class"], + content: [ + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', + ], + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +} diff --git a/packages/cli/test/fixtures/next/tsconfig.json b/packages/cli/test/fixtures/next/tsconfig.json new file mode 100644 index 0000000..e06a445 --- /dev/null +++ b/packages/cli/test/fixtures/next/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/project-bun/bun.lockb b/packages/cli/test/fixtures/project-bun/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..fea2ca25b5d492ec1231f9903fca7afecce18975 GIT binary patch literal 1280 zcmY#Z)GsYA(of3F(@)JSQ%EY!;{sycoc!eMw9K4T-L(9o+{6;yG6OCq1_lPRv&=iD zH2v?CXT0^rv9jOy@jT)7>QijpN&Pnu&TfDGxPS$y2naxGL4X57!RZDlzY3-R%;#oc zXb=UmIDzz<`A%J5ueI!~ev^K-L+G^so_nvQ~r zLSjy4dR~4S7tEf2{~-Xx2fKqABEtfuxok>}jqHFLu^0hTZva(iL4^8MKmgK{0aZH( zt|!{aEVk4F=u|VfJ%$LU0@FAH(7_G!RU34)TT_z+7~@R!4D<{jp$$s;uoTb17-yho z29kLOH5*2whEQ>8Zdq!Po@+%(YEfQdPH;(4W?s6Tf+50s3%KFXDzre_wH6jkcw735|W>*W`v Y>%-OP>mt~?AfH(3m84feVr1}<0Ba1_WdHyG literal 0 HcmV?d00001 diff --git a/packages/cli/test/fixtures/project-bun/package.json b/packages/cli/test/fixtures/project-bun/package.json new file mode 100644 index 0000000..b8cfd20 --- /dev/null +++ b/packages/cli/test/fixtures/project-bun/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-project-bun", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/project-npm/package-lock.json b/packages/cli/test/fixtures/project-npm/package-lock.json new file mode 100644 index 0000000..9b6d3cd --- /dev/null +++ b/packages/cli/test/fixtures/project-npm/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "test-cli-npm-project", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "npm-project", + "version": "1.0.0", + "license": "MIT" + } + } +} diff --git a/packages/cli/test/fixtures/project-npm/package.json b/packages/cli/test/fixtures/project-npm/package.json new file mode 100644 index 0000000..68c468a --- /dev/null +++ b/packages/cli/test/fixtures/project-npm/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-project-npm", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/project-pnpm/package.json b/packages/cli/test/fixtures/project-pnpm/package.json new file mode 100644 index 0000000..af855da --- /dev/null +++ b/packages/cli/test/fixtures/project-pnpm/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-project-pnpm", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/project-pnpm/pnpm-lock.yaml b/packages/cli/test/fixtures/project-pnpm/pnpm-lock.yaml new file mode 100644 index 0000000..7a06cc7 --- /dev/null +++ b/packages/cli/test/fixtures/project-pnpm/pnpm-lock.yaml @@ -0,0 +1 @@ +lockfileVersion: '6.0' diff --git a/packages/cli/test/fixtures/project-src/components.json b/packages/cli/test/fixtures/project-src/components.json new file mode 100644 index 0000000..1f7b81e --- /dev/null +++ b/packages/cli/test/fixtures/project-src/components.json @@ -0,0 +1,7 @@ +{ + "components": "src/components", + "ui": "src/ui", + "styles": "src/styles/main.css", + "utils": "src/lib/cn.ts", + "tailwindConfig": "tailwind.config.ts" +} diff --git a/packages/cli/test/fixtures/project-src/package-lock.json b/packages/cli/test/fixtures/project-src/package-lock.json new file mode 100644 index 0000000..98ef11b --- /dev/null +++ b/packages/cli/test/fixtures/project-src/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "test-cli-project-src", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "npm-project", + "version": "1.0.0", + "license": "MIT" + } + } +} diff --git a/packages/cli/test/fixtures/project-src/package.json b/packages/cli/test/fixtures/project-src/package.json new file mode 100644 index 0000000..a536a6f --- /dev/null +++ b/packages/cli/test/fixtures/project-src/package.json @@ -0,0 +1,5 @@ +{ + "name": "project-src", + "version": "0.1.0", + "private": true +} diff --git a/packages/cli/test/fixtures/project-yarn/package.json b/packages/cli/test/fixtures/project-yarn/package.json new file mode 100644 index 0000000..ed044dc --- /dev/null +++ b/packages/cli/test/fixtures/project-yarn/package.json @@ -0,0 +1,7 @@ +{ + "name": "test-cli-project-yarn", + "version": "1.0.0", + "main": "index.js", + "author": "shadcn", + "license": "MIT" +} diff --git a/packages/cli/test/fixtures/project-yarn/yarn.lock b/packages/cli/test/fixtures/project-yarn/yarn.lock new file mode 100644 index 0000000..fb57ccd --- /dev/null +++ b/packages/cli/test/fixtures/project-yarn/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/packages/cli/test/fixtures/project/components.json b/packages/cli/test/fixtures/project/components.json new file mode 100644 index 0000000..054e09a --- /dev/null +++ b/packages/cli/test/fixtures/project/components.json @@ -0,0 +1,8 @@ +{ + "tailwindConfig": "./tailwind.config.ts", + "importPaths": { + "styles": "~/styles/globals.css", + "utils:cn": "~/lib/cn.ts", + "components:ui": "~/components/ui" + } +} diff --git a/packages/cli/test/fixtures/project/package.json b/packages/cli/test/fixtures/project/package.json new file mode 100644 index 0000000..30a6a92 --- /dev/null +++ b/packages/cli/test/fixtures/project/package.json @@ -0,0 +1,5 @@ +{ + "name": "test-cli-project", + "version": "0.1.0", + "private": true +} diff --git a/packages/cli/test/fixtures/project/pnpm-lock.yaml b/packages/cli/test/fixtures/project/pnpm-lock.yaml new file mode 100644 index 0000000..7becc66 --- /dev/null +++ b/packages/cli/test/fixtures/project/pnpm-lock.yaml @@ -0,0 +1 @@ +lockfileVersion: "6.0" diff --git a/packages/cli/test/fixtures/t3-app/.eslintrc.cjs b/packages/cli/test/fixtures/t3-app/.eslintrc.cjs new file mode 100644 index 0000000..8b7a0e8 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/.eslintrc.cjs @@ -0,0 +1,35 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require("path"); + +/** @type {import("eslint").Linter.Config} */ +const config = { + overrides: [ + { + extends: [ + "plugin:@typescript-eslint/recommended-requiring-type-checking", + ], + files: ["*.ts", "*.tsx"], + parserOptions: { + project: path.join(__dirname, "tsconfig.json"), + }, + }, + ], + parser: "@typescript-eslint/parser", + parserOptions: { + project: path.join(__dirname, "tsconfig.json"), + }, + plugins: ["@typescript-eslint"], + extends: ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"], + rules: { + "@typescript-eslint/consistent-type-imports": [ + "warn", + { + prefer: "type-imports", + fixStyle: "inline-type-imports", + }, + ], + "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], + }, +}; + +module.exports = config; diff --git a/packages/cli/test/fixtures/t3-app/.gitignore b/packages/cli/test/fixtures/t3-app/.gitignore new file mode 100644 index 0000000..2971a0b --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# database +/prisma/db.sqlite +/prisma/db.sqlite-journal + +# next.js +/.next/ +/out/ +next-env.d.ts + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo diff --git a/packages/cli/test/fixtures/t3-app/next.config.mjs b/packages/cli/test/fixtures/t3-app/next.config.mjs new file mode 100644 index 0000000..d921057 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/next.config.mjs @@ -0,0 +1,22 @@ +/** + * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful + * for Docker builds. + */ +await import("./src/env.mjs"); + +/** @type {import("next").NextConfig} */ +const config = { + reactStrictMode: true, + + /** + * If you have `experimental: { appDir: true }` set, then you must comment the below `i18n` config + * out. + * + * @see https://github.com/vercel/next.js/issues/41980 + */ + i18n: { + locales: ["en"], + defaultLocale: "en", + }, +}; +export default config; diff --git a/packages/cli/test/fixtures/t3-app/package.json b/packages/cli/test/fixtures/t3-app/package.json new file mode 100644 index 0000000..f5031b1 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/package.json @@ -0,0 +1,38 @@ +{ + "name": "test-cli-t3-app", + "version": "0.1.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "lint": "next lint", + "start": "next start" + }, + "dependencies": { + "@t3-oss/env-nextjs": "^0.3.1", + "next": "^13.4.2", + "react": "18.2.0", + "react-dom": "18.2.0", + "zod": "^3.21.4" + }, + "devDependencies": { + "@types/eslint": "^8.37.0", + "@types/node": "^18.16.0", + "@types/prettier": "^2.7.2", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@typescript-eslint/eslint-plugin": "^5.59.6", + "@typescript-eslint/parser": "^5.59.6", + "autoprefixer": "^10.4.14", + "eslint": "^8.40.0", + "eslint-config-next": "^13.4.2", + "postcss": "^8.4.21", + "prettier": "^2.8.8", + "prettier-plugin-tailwindcss": "^0.2.8", + "tailwindcss": "3.3.7", + "typescript": "^5.0.4" + }, + "ct3aMetadata": { + "initVersion": "7.13.1" + } +} diff --git a/packages/cli/test/fixtures/t3-app/src/env.mjs b/packages/cli/test/fixtures/t3-app/src/env.mjs new file mode 100644 index 0000000..c82c36d --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/src/env.mjs @@ -0,0 +1,35 @@ +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; + +export const env = createEnv({ + /** + * Specify your server-side environment variables schema here. This way you can ensure the app + * isn't built with invalid env vars. + */ + server: { + NODE_ENV: z.enum(["development", "test", "production"]), + }, + + /** + * Specify your client-side environment variables schema here. This way you can ensure the app + * isn't built with invalid env vars. To expose them to the client, prefix them with + * `NEXT_PUBLIC_`. + */ + client: { + // NEXT_PUBLIC_CLIENTVAR: z.string().min(1), + }, + + /** + * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. + * middlewares) or client-side so we need to destruct manually. + */ + runtimeEnv: { + NODE_ENV: process.env.NODE_ENV, + // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, + }, + /** + * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. + * This is especially useful for Docker builds. + */ + skipValidation: !!process.env.SKIP_ENV_VALIDATION, +}); diff --git a/packages/cli/test/fixtures/t3-app/src/pages/_app.tsx b/packages/cli/test/fixtures/t3-app/src/pages/_app.tsx new file mode 100644 index 0000000..5d4858e --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/src/pages/_app.tsx @@ -0,0 +1,8 @@ +import { type AppType } from "next/dist/shared/lib/utils"; +import "~/styles/globals.css"; + +const MyApp: AppType = ({ Component, pageProps }) => { + return ; +}; + +export default MyApp; diff --git a/packages/cli/test/fixtures/t3-app/src/pages/index.tsx b/packages/cli/test/fixtures/t3-app/src/pages/index.tsx new file mode 100644 index 0000000..5513c42 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/src/pages/index.tsx @@ -0,0 +1,48 @@ +import { type NextPage } from "next"; +import Head from "next/head"; +import Link from "next/link"; + +const Home: NextPage = () => { + return ( + <> + + Create T3 App + + + +
+
+

+ Create T3 App +

+
+ +

First Steps →

+
+ Just the basics - Everything you need to know to set up your + database and authentication. +
+ + +

Documentation →

+
+ Learn more about Create T3 App, the libraries it uses, and how + to deploy it. +
+ +
+
+
+ + ); +}; + +export default Home; diff --git a/packages/cli/test/fixtures/t3-app/src/styles/globals.css b/packages/cli/test/fixtures/t3-app/src/styles/globals.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/src/styles/globals.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/packages/cli/test/fixtures/t3-app/tailwind.config.ts b/packages/cli/test/fixtures/t3-app/tailwind.config.ts new file mode 100644 index 0000000..d4d3fa2 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/tailwind.config.ts @@ -0,0 +1,9 @@ +import { type Config } from "tailwindcss"; + +export default { + content: ["./src/**/*.{js,ts,jsx,tsx}"], + theme: { + extend: {}, + }, + plugins: [], +} satisfies Config; diff --git a/packages/cli/test/fixtures/t3-app/tsconfig.json b/packages/cli/test/fixtures/t3-app/tsconfig.json new file mode 100644 index 0000000..03ebb74 --- /dev/null +++ b/packages/cli/test/fixtures/t3-app/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "checkJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "noUncheckedIndexedAccess": true, + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"] + } + }, + "include": [ + ".eslintrc.cjs", + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + "**/*.cjs", + "**/*.mjs" + ], + "exclude": ["node_modules"] +} diff --git a/packages/cli/test/fixtures/with-base-url/tsconfig.json b/packages/cli/test/fixtures/with-base-url/tsconfig.json new file mode 100644 index 0000000..7f519f4 --- /dev/null +++ b/packages/cli/test/fixtures/with-base-url/tsconfig.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/packages/cli/test/fixtures/without-base-url/tsconfig.json b/packages/cli/test/fixtures/without-base-url/tsconfig.json new file mode 100644 index 0000000..b43c510 --- /dev/null +++ b/packages/cli/test/fixtures/without-base-url/tsconfig.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "paths": { + "~/components/*": ["./components/*"], + "~/lib/*": ["./lib/*"] + } + } +} diff --git a/packages/cli/test/utils/__snapshots__/transform-css-vars.test.ts.snap b/packages/cli/test/utils/__snapshots__/transform-css-vars.test.ts.snap new file mode 100644 index 0000000..baedb74 --- /dev/null +++ b/packages/cli/test/utils/__snapshots__/transform-css-vars.test.ts.snap @@ -0,0 +1,33 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`transform css vars 1`] = ` +"import * as React from \\"react\\" +export function Foo() { + return
foo
+}\\" + " +`; + +exports[`transform css vars 2`] = ` +"import * as React from \\"react\\" +export function Foo() { + return
foo
+}\\"\\" + " +`; + +exports[`transform css vars 3`] = ` +"import * as React from \\"react\\" +export function Foo() { + return
foo
+}\\"\\" + " +`; + +exports[`transform css vars 4`] = ` +"import * as React from \\"react\\" +export function Foo() { + return
foo
+}\\"\\" + " +`; diff --git a/packages/cli/test/utils/__snapshots__/transform-import.test.ts.snap b/packages/cli/test/utils/__snapshots__/transform-import.test.ts.snap new file mode 100644 index 0000000..f903405 --- /dev/null +++ b/packages/cli/test/utils/__snapshots__/transform-import.test.ts.snap @@ -0,0 +1,60 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`transform import 1`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + import { Button } from \\"@/components/ui/button\\" + import { Label} from \\"ui/label\\" + import { Box } from \\"@/components/box\\" + + import { cn } from \\"@/lib/utils\\" + " +`; + +exports[`transform import 2`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + import { Button } from \\"~/src/components/ui/button\\" + import { Label} from \\"ui/label\\" + import { Box } from \\"~/src/components/box\\" + + import { cn, foo, bar } from \\"~/lib\\" + import { bar } from \\"@/lib/utils/bar\\" + " +`; + +exports[`transform import 3`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + import { Button } from \\"~/src/components/ui/button\\" + import { Label} from \\"ui/label\\" + import { Box } from \\"~/src/components/box\\" + + import { cn } from \\"~/src/utils\\" + import { bar } from \\"@/lib/utils/bar\\" + " +`; + +exports[`transform import 4`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + import { Button } from \\"~/src/components/button\\" + import { Label} from \\"ui/label\\" + import { Box } from \\"@/registry/new-york/box\\" + + import { cn } from \\"~/src/utils\\" + import { bar } from \\"@/lib/utils/bar\\" + " +`; + +exports[`transform import 5`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + import { Button } from \\"~/src/ui/button\\" + import { Label} from \\"ui/label\\" + import { Box } from \\"@/registry/new-york/box\\" + + import { cn } from \\"~/src/utils\\" + import { bar } from \\"@/lib/utils/bar\\" + " +`; diff --git a/packages/cli/test/utils/__snapshots__/transform-rsc.test.ts.snap b/packages/cli/test/utils/__snapshots__/transform-rsc.test.ts.snap new file mode 100644 index 0000000..15f0f8e --- /dev/null +++ b/packages/cli/test/utils/__snapshots__/transform-rsc.test.ts.snap @@ -0,0 +1,31 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`transform rsc 1`] = ` +"import * as React from \\"react\\" +import { Foo } from \\"bar\\" + " +`; + +exports[`transform rsc 2`] = ` +"\\"use client\\" + + import * as React from \\"react\\" +import { Foo } from \\"bar\\" + " +`; + +exports[`transform rsc 3`] = ` +" import * as React from \\"react\\" +import { Foo } from \\"bar\\" + " +`; + +exports[`transform rsc 4`] = ` +"\\"use foo\\" + + import * as React from \\"react\\" +import { Foo } from \\"bar\\" + +\\"use client\\" + " +`; diff --git a/packages/cli/test/utils/__snapshots__/transform-tw-prefix.test.ts.snap b/packages/cli/test/utils/__snapshots__/transform-tw-prefix.test.ts.snap new file mode 100644 index 0000000..7667c37 --- /dev/null +++ b/packages/cli/test/utils/__snapshots__/transform-tw-prefix.test.ts.snap @@ -0,0 +1,118 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`transform tailwind prefix 1`] = ` +"import * as React from \\"react\\" + export function Foo() { + return ( +
foo
+ ); + } + " +`; + +exports[`transform tailwind prefix 2`] = ` +"import * as React from \\"react\\" +export function Foo() { + return ( +
foo
+ ); +} + " +`; + +exports[`transform tailwind prefix 3`] = ` +"import * as React from \\"react\\" +export function Foo() { + return ( +
foo
+ ); +} + " +`; + +exports[`transform tailwind prefix 4`] = ` +"@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 224 71.4% 4.1%; + + --muted: 220 14.3% 95.9%; + --muted-foreground: 220 8.9% 46.1%; + + --popover: 0 0% 100%; + --popover-foreground: 224 71.4% 4.1%; + + --card: 0 0% 100%; + --card-foreground: 224 71.4% 4.1%; + + --border: 220 13% 91%; + --input: 220 13% 91%; + + --primary: 220.9 39.3% 11%; + --primary-foreground: 210 20% 98%; + + --secondary: 220 14.3% 95.9%; + --secondary-foreground: 220.9 39.3% 11%; + + --accent: 220 14.3% 95.9%; + --accent-foreground: 220.9 39.3% 11%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 20% 98%; + + --ring: 217.9 10.6% 64.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 224 71.4% 4.1%; + --foreground: 210 20% 98%; + + --muted: 215 27.9% 16.9%; + --muted-foreground: 217.9 10.6% 64.9%; + + --popover: 224 71.4% 4.1%; + --popover-foreground: 210 20% 98%; + + --card: 224 71.4% 4.1%; + --card-foreground: 210 20% 98%; + + --border: 215 27.9% 16.9%; + --input: 215 27.9% 16.9%; + + --primary: 210 20% 98%; + --primary-foreground: 220.9 39.3% 11%; + + --secondary: 215 27.9% 16.9%; + --secondary-foreground: 210 20% 98%; + + --accent: 215 27.9% 16.9%; + --accent-foreground: 210 20% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + + --ring: 215 27.9% 16.9%; + } +} + +@layer base { + * { + @apply tw-border-border; + } + body { + @apply tw-bg-background tw-text-foreground; + } +}" +`; diff --git a/packages/cli/test/utils/apply-color-mapping.test.ts b/packages/cli/test/utils/apply-color-mapping.test.ts new file mode 100644 index 0000000..8da6765 --- /dev/null +++ b/packages/cli/test/utils/apply-color-mapping.test.ts @@ -0,0 +1,84 @@ +import { describe, expect, test } from "vitest" + +import { + applyColorMapping, + splitClassName, +} from "../../src/utils/transformers/transform-css-vars" +import baseColor from "../fixtures/colors/slate.json" + +describe("split className", () => { + test.each([ + { + input: "bg-popover", + output: [null, "bg-popover", null], + }, + { + input: "bg-popover/50", + output: [null, "bg-popover", "50"], + }, + { + input: "hover:bg-popover/50", + output: ["hover", "bg-popover", "50"], + }, + { + input: "hover:bg-popover", + output: ["hover", "bg-popover", null], + }, + { + input: "[&_[cmdk-group-heading]]:px-2", + output: ["[&_[cmdk-group-heading]]", "px-2", null], + }, + { + input: "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0", + output: ["[&_[cmdk-group]:not([hidden])_~[cmdk-group]]", "pt-0", null], + }, + { + input: "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:bg-red-200", + output: [ + "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]", + "bg-red-200", + null, + ], + }, + { + input: "sm:focus:text-accent-foreground/30", + output: ["sm:focus", "text-accent-foreground", "30"], + }, + ])(`splitClassName($input) -> $output`, ({ input, output }) => { + expect(splitClassName(input)).toStrictEqual(output) + }) +}) + +describe("apply color mapping", async () => { + test.each([ + { + input: "bg-background text-foreground", + output: "bg-white text-slate-950 dark:bg-slate-950 dark:text-slate-50", + }, + { + input: "rounded-lg border bg-card text-card-foreground shadow-sm", + output: + "rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50", + }, + { + input: + "text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive", + output: + "text-red-500 border-red-500/50 dark:border-red-500 [&>svg]:text-red-500 dark:text-red-900 dark:border-red-900/50 dark:dark:border-red-900 dark:[&>svg]:text-red-900", + }, + { + input: + "flex h-full w-full items-center justify-center rounded-full bg-muted", + output: + "flex h-full w-full items-center justify-center rounded-full bg-slate-100 dark:bg-slate-800", + }, + { + input: + "absolute right-4 top-4 bg-primary rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", + output: + "absolute right-4 top-4 bg-slate-900 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-slate-100 dark:bg-slate-50 dark:ring-offset-slate-950 dark:focus:ring-slate-800 dark:data-[state=open]:bg-slate-800", + }, + ])(`applyColorMapping($input) -> $output`, ({ input, output }) => { + expect(applyColorMapping(input, baseColor.inlineColors)).toBe(output) + }) +}) diff --git a/packages/cli/test/utils/apply-prefix.test.ts b/packages/cli/test/utils/apply-prefix.test.ts new file mode 100644 index 0000000..9afed4c --- /dev/null +++ b/packages/cli/test/utils/apply-prefix.test.ts @@ -0,0 +1,42 @@ +import { describe, expect, test } from "vitest" + +import { applyPrefix } from "../../src/utils/transformers/transform-tw-prefix" + +describe("apply tailwind prefix", () => { + test.each([ + { + input: "bg-slate-800 text-gray-500", + output: "tw-bg-slate-800 tw-text-gray-500", + }, + { + input: "hover:dark:bg-background dark:text-foreground", + output: "hover:dark:tw-bg-background dark:tw-text-foreground", + }, + { + input: + "rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50", + output: + "tw-rounded-lg tw-border tw-border-slate-200 tw-bg-white tw-text-slate-950 tw-shadow-sm dark:tw-border-slate-800 dark:tw-bg-slate-950 dark:tw-text-slate-50", + }, + { + input: + "text-red-500 border-red-500/50 dark:border-red-500 [&>svg]:text-red-500 text-red-500 dark:text-red-900 dark:border-red-900/50 dark:dark:border-red-900 dark:[&>svg]:text-red-900 dark:text-red-900", + output: + "tw-text-red-500 tw-border-red-500/50 dark:tw-border-red-500 [&>svg]:tw-text-red-500 tw-text-red-500 dark:tw-text-red-900 dark:tw-border-red-900/50 dark:dark:tw-border-red-900 dark:[&>svg]:tw-text-red-900 dark:tw-text-red-900", + }, + { + input: + "flex h-full w-full items-center justify-center rounded-full bg-muted", + output: + "tw-flex tw-h-full tw-w-full tw-items-center tw-justify-center tw-rounded-full tw-bg-muted", + }, + { + input: + "absolute right-4 top-4 bg-primary rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", + output: + "tw-absolute tw-right-4 tw-top-4 tw-bg-primary tw-rounded-sm tw-opacity-70 tw-ring-offset-background tw-transition-opacity hover:tw-opacity-100 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-ring focus:tw-ring-offset-2 disabled:tw-pointer-events-none data-[state=open]:tw-bg-secondary", + }, + ])(`applyTwPrefix($input) -> $output`, ({ input, output }) => { + expect(applyPrefix(input, "tw-")).toBe(output) + }) +}) diff --git a/packages/cli/test/utils/get-config.test.ts b/packages/cli/test/utils/get-config.test.ts new file mode 100644 index 0000000..6229d47 --- /dev/null +++ b/packages/cli/test/utils/get-config.test.ts @@ -0,0 +1,166 @@ +import path from "path" +import { expect, test } from "vitest" + +import { getConfig, getRawConfig } from "../../src/utils/get-config" + +test("get raw config", async () => { + expect( + await getRawConfig(path.resolve(__dirname, "../fixtures/config-none")) + ).toEqual(null) + + expect( + await getRawConfig(path.resolve(__dirname, "../fixtures/config-partial")) + ).toEqual({ + style: "default", + tailwind: { + config: "./tailwind.config.ts", + css: "./src/assets/css/tailwind.css", + baseColor: "neutral", + cssVariables: false, + }, + rsc: false, + tsx: true, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }) + + expect( + getRawConfig(path.resolve(__dirname, "../fixtures/config-invalid")) + ).rejects.toThrowError() +}) + +test("get config", async () => { + expect( + await getConfig(path.resolve(__dirname, "../fixtures/config-none")) + ).toEqual(null) + + expect( + getConfig(path.resolve(__dirname, "../fixtures/config-invalid")) + ).rejects.toThrowError() + + expect( + await getConfig(path.resolve(__dirname, "../fixtures/config-partial")) + ).toEqual({ + style: "default", + tailwind: { + config: "./tailwind.config.ts", + css: "./src/assets/css/tailwind.css", + baseColor: "neutral", + cssVariables: false, + }, + rsc: false, + tsx: true, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + resolvedPaths: { + tailwindConfig: path.resolve( + __dirname, + "../fixtures/config-partial", + "tailwind.config.ts" + ), + tailwindCss: path.resolve( + __dirname, + "../fixtures/config-partial", + "./src/assets/css/tailwind.css" + ), + components: path.resolve( + __dirname, + "../fixtures/config-partial", + "./components" + ), + utils: path.resolve( + __dirname, + "../fixtures/config-partial", + "./lib/utils" + ), + ui: path.resolve(__dirname, "../fixtures/config-partial", "./components"), + }, + }) + + expect( + await getConfig(path.resolve(__dirname, "../fixtures/config-full")) + ).toEqual({ + style: "new-york", + rsc: false, + tsx: true, + tailwind: { + config: "tailwind.config.ts", + baseColor: "zinc", + css: "src/app/globals.css", + cssVariables: true, + prefix: "tw-", + }, + aliases: { + components: "~/components", + utils: "~/lib/utils", + }, + resolvedPaths: { + tailwindConfig: path.resolve( + __dirname, + "../fixtures/config-full", + "tailwind.config.ts" + ), + tailwindCss: path.resolve( + __dirname, + "../fixtures/config-full", + "./src/app/globals.css" + ), + components: path.resolve( + __dirname, + "../fixtures/config-full", + "./src/components" + ), + ui: path.resolve( + __dirname, + "../fixtures/config-full", + "./src/components" + ), + utils: path.resolve( + __dirname, + "../fixtures/config-full", + "./src/lib/utils" + ), + }, + }) + + expect( + await getConfig(path.resolve(__dirname, "../fixtures/config-jsx")) + ).toEqual({ + style: "default", + tailwind: { + config: "./tailwind.config.js", + css: "./src/assets/css/tailwind.css", + baseColor: "neutral", + cssVariables: false, + }, + rsc: false, + tsx: false, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + resolvedPaths: { + tailwindConfig: path.resolve( + __dirname, + "../fixtures/config-jsx", + "tailwind.config.js" + ), + tailwindCss: path.resolve( + __dirname, + "../fixtures/config-jsx", + "./src/assets/css/tailwind.css" + ), + components: path.resolve( + __dirname, + "../fixtures/config-jsx", + "./components" + ), + ui: path.resolve(__dirname, "../fixtures/config-jsx", "./components"), + utils: path.resolve(__dirname, "../fixtures/config-jsx", "./lib/utils"), + }, + }) +}) diff --git a/packages/cli/test/utils/get-item-target-path.test.ts b/packages/cli/test/utils/get-item-target-path.test.ts new file mode 100644 index 0000000..5fe0ecf --- /dev/null +++ b/packages/cli/test/utils/get-item-target-path.test.ts @@ -0,0 +1,39 @@ +import path from "path" +import { expect, test } from "vitest" + +import { getConfig } from "../../src/utils/get-config" +import { getItemTargetPath } from "../../src/utils/registry" + +test("get item target path", async () => { + // Full config. + let appDir = path.resolve(__dirname, "../fixtures/config-full") + expect( + await getItemTargetPath(await getConfig(appDir), { + type: "components:ui", + }) + ).toEqual(path.resolve(appDir, "./src/components/ui")) + + // Partial config. + appDir = path.resolve(__dirname, "../fixtures/config-partial") + expect( + await getItemTargetPath(await getConfig(appDir), { + type: "components:ui", + }) + ).toEqual(path.resolve(appDir, "./components/ui")) + + // JSX. + appDir = path.resolve(__dirname, "../fixtures/config-jsx") + expect( + await getItemTargetPath(await getConfig(appDir), { + type: "components:ui", + }) + ).toEqual(path.resolve(appDir, "./components/ui")) + + // Custom paths. + appDir = path.resolve(__dirname, "../fixtures/config-ui") + expect( + await getItemTargetPath(await getConfig(appDir), { + type: "components:ui", + }) + ).toEqual(path.resolve(appDir, "./src/ui")) +}) diff --git a/packages/cli/test/utils/get-package-manager.test.ts b/packages/cli/test/utils/get-package-manager.test.ts new file mode 100644 index 0000000..3858f68 --- /dev/null +++ b/packages/cli/test/utils/get-package-manager.test.ts @@ -0,0 +1,26 @@ +import path from "path" +import { expect, test } from "vitest" + +import { getPackageManager } from "../../src/utils/get-package-manager" + +test("get package manager", async () => { + expect( + await getPackageManager(path.resolve(__dirname, "../fixtures/project-yarn")) + ).toBe("yarn") + + expect( + await getPackageManager(path.resolve(__dirname, "../fixtures/project-npm")) + ).toBe("npm") + + expect( + await getPackageManager(path.resolve(__dirname, "../fixtures/project-pnpm")) + ).toBe("pnpm") + + expect( + await getPackageManager(path.resolve(__dirname, "../fixtures/project-bun")) + ).toBe("bun") + + expect( + await getPackageManager(path.resolve(__dirname, "../fixtures/next")) + ).toBe("pnpm") +}) diff --git a/packages/cli/test/utils/get-project-type.test.ts b/packages/cli/test/utils/get-project-type.test.ts new file mode 100644 index 0000000..2bcff88 --- /dev/null +++ b/packages/cli/test/utils/get-project-type.test.ts @@ -0,0 +1,37 @@ +import path from "path" +import { describe, expect, test } from "vitest" + +import { getProjectType } from "../../src/utils/get-project-info" + +describe("get project type", async () => { + test.each([ + { + name: "next-app", + type: "next-app", + }, + { + name: "next-app-src", + type: "next-app-src", + }, + { + name: "next-pages", + type: "next-pages", + }, + { + name: "next-pages-src", + type: "next-pages-src", + }, + { + name: "project", + type: null, + }, + { + name: "t3-app", + type: "next-pages-src", + }, + ])(`getProjectType($name) -> $type`, async ({ name, type }) => { + expect( + await getProjectType(path.resolve(__dirname, `../fixtures/${name}`)) + ).toBe(type) + }) +}) diff --git a/packages/cli/test/utils/get-tailwind-css-file.test.ts b/packages/cli/test/utils/get-tailwind-css-file.test.ts new file mode 100644 index 0000000..135531c --- /dev/null +++ b/packages/cli/test/utils/get-tailwind-css-file.test.ts @@ -0,0 +1,33 @@ +import path from "path" +import { describe, expect, test } from "vitest" + +import { getTailwindCssFile } from "../../src/utils/get-project-info" + +describe("get tailwind css file", async () => { + test.each([ + { + name: "next-app", + file: "app/globals.css", + }, + { + name: "next-app-src", + file: "src/app/styles.css", + }, + { + name: "next-pages", + file: "styles/globals.css", + }, + { + name: "next-pages-src", + file: "src/styles/globals.css", + }, + { + name: "t3-app", + file: "src/styles/globals.css", + }, + ])(`getTailwindCssFile($name) -> $file`, async ({ name, file }) => { + expect( + await getTailwindCssFile(path.resolve(__dirname, `../fixtures/${name}`)) + ).toBe(file) + }) +}) diff --git a/packages/cli/test/utils/get-ts-config-alias-prefix.test.ts b/packages/cli/test/utils/get-ts-config-alias-prefix.test.ts new file mode 100644 index 0000000..040112f --- /dev/null +++ b/packages/cli/test/utils/get-ts-config-alias-prefix.test.ts @@ -0,0 +1,35 @@ +import path from "path" +import { describe, expect, test } from "vitest" + +import { getTsConfigAliasPrefix } from "../../src/utils/get-project-info" + +describe("get ts config alias prefix", async () => { + test.each([ + { + name: "next-app", + prefix: "@", + }, + { + name: "next-app-src", + prefix: "#", + }, + { + name: "next-pages", + prefix: "~", + }, + { + name: "next-pages-src", + prefix: "@", + }, + { + name: "t3-app", + prefix: "~", + }, + ])(`getTsConfigAliasPrefix($name) -> $prefix`, async ({ name, prefix }) => { + expect( + await getTsConfigAliasPrefix( + path.resolve(__dirname, `../fixtures/${name}`) + ) + ).toBe(prefix) + }) +}) diff --git a/packages/cli/test/utils/is-typescript-project.test.ts b/packages/cli/test/utils/is-typescript-project.test.ts new file mode 100644 index 0000000..5fe7226 --- /dev/null +++ b/packages/cli/test/utils/is-typescript-project.test.ts @@ -0,0 +1,37 @@ +import path from "path" +import { describe, expect, test } from "vitest" + +import { isTypeScriptProject } from "../../src/utils/get-project-info" + +describe("is TypeScript project", async () => { + test.each([ + { + name: "next-app", + result: true, + }, + { + name: "next-app-src", + result: true, + }, + { + name: "next-pages", + result: true, + }, + { + name: "next-pages-src", + result: true, + }, + { + name: "t3-app", + result: true, + }, + { + name: "next-app-js", + result: false, + }, + ])(`isTypeScriptProject($name) -> $result`, async ({ name, result }) => { + expect( + await isTypeScriptProject(path.resolve(__dirname, `../fixtures/${name}`)) + ).toBe(result) + }) +}) diff --git a/packages/cli/test/utils/registry.test.ts b/packages/cli/test/utils/registry.test.ts new file mode 100644 index 0000000..64a17bd --- /dev/null +++ b/packages/cli/test/utils/registry.test.ts @@ -0,0 +1,70 @@ +import { expect, test } from "vitest" + +import { resolveTree } from "../../src/utils/registry" + +test("resolve tree", async () => { + const index = [ + { + name: "button", + dependencies: ["@radix-ui/react-slot"], + type: "components:ui", + files: ["button.tsx"], + }, + { + name: "dialog", + dependencies: ["@radix-ui/react-dialog"], + registryDependencies: ["button"], + type: "components:ui", + files: ["dialog.tsx"], + }, + { + name: "input", + registryDependencies: ["button"], + type: "components:ui", + files: ["input.tsx"], + }, + { + name: "alert-dialog", + dependencies: ["@radix-ui/react-alert-dialog"], + registryDependencies: ["button", "dialog"], + type: "components:ui", + files: ["alert-dialog.tsx"], + }, + { + name: "example-card", + type: "components:component", + files: ["example-card.tsx"], + registryDependencies: ["button", "dialog", "input"], + }, + ] + + expect( + (await resolveTree(index, ["button"])).map((entry) => entry.name).sort() + ).toEqual(["button"]) + + expect( + (await resolveTree(index, ["dialog"])).map((entry) => entry.name).sort() + ).toEqual(["button", "dialog"]) + + expect( + (await resolveTree(index, ["alert-dialog", "dialog"])) + .map((entry) => entry.name) + .sort() + ).toEqual(["alert-dialog", "button", "dialog"]) + + expect( + (await resolveTree(index, ["example-card"])) + .map((entry) => entry.name) + .sort() + ).toEqual(["button", "dialog", "example-card", "input"]) + + expect( + (await resolveTree(index, ["foo"])).map((entry) => entry.name).sort() + ).toEqual([]) + + expect( + (await resolveTree(index, ["button", "foo"])) + .map((entry) => entry.name) + .sort() + ).toEqual(["button"]) +}) diff --git a/packages/cli/test/utils/resolve-import.test.ts b/packages/cli/test/utils/resolve-import.test.ts new file mode 100644 index 0000000..dce1dc9 --- /dev/null +++ b/packages/cli/test/utils/resolve-import.test.ts @@ -0,0 +1,81 @@ +import path from "path" +import { loadConfig, type ConfigLoaderSuccessResult } from "tsconfig-paths" +import { expect, test } from "vitest" + +import { resolveImport } from "../../src/utils/resolve-import" + +test("resolve import", async () => { + expect( + await resolveImport("@/foo/bar", { + absoluteBaseUrl: "/Users/shadcn/Projects/foobar", + paths: { + "@/*": ["./src/*"], + "~/components/*": ["./src/components/*"], + "~/lib": ["./src/lib"], + }, + }) + ).toEqual("/Users/shadcn/Projects/foobar/src/foo/bar") + + expect( + await resolveImport("~/components/foo/bar/baz", { + absoluteBaseUrl: "/Users/shadcn/Projects/foobar", + paths: { + "@/*": ["./src/*"], + "~/components/*": ["./src/components/*"], + "~/lib": ["./src/lib"], + }, + }) + ).toEqual("/Users/shadcn/Projects/foobar/src/components/foo/bar/baz") + + expect( + await resolveImport("components/foo/bar", { + absoluteBaseUrl: "/Users/shadcn/Projects/foobar", + paths: { + "components/*": ["./src/app/components/*"], + "ui/*": ["./src/ui/primities/*"], + lib: ["./lib"], + }, + }) + ).toEqual("/Users/shadcn/Projects/foobar/src/app/components/foo/bar") + + expect( + await resolveImport("lib/utils", { + absoluteBaseUrl: "/Users/shadcn/Projects/foobar", + paths: { + "components/*": ["./src/app/components/*"], + "ui/*": ["./src/ui/primities/*"], + lib: ["./lib"], + }, + }) + ).toEqual("/Users/shadcn/Projects/foobar/lib/utils") +}) + +test("resolve import with base url", async () => { + const cwd = path.resolve(__dirname, "../fixtures/with-base-url") + const config = (await loadConfig(cwd)) as ConfigLoaderSuccessResult + + expect(await resolveImport("@/components/ui", config)).toEqual( + path.resolve(cwd, "components/ui") + ) + expect(await resolveImport("@/lib/utils", config)).toEqual( + path.resolve(cwd, "lib/utils") + ) + expect(await resolveImport("foo/bar", config)).toEqual( + path.resolve(cwd, "foo/bar") + ) +}) + +test("resolve import without base url", async () => { + const cwd = path.resolve(__dirname, "../fixtures/without-base-url") + const config = (await loadConfig(cwd)) as ConfigLoaderSuccessResult + + expect(await resolveImport("~/components/ui", config)).toEqual( + path.resolve(cwd, "components/ui") + ) + expect(await resolveImport("~/lib/utils", config)).toEqual( + path.resolve(cwd, "lib/utils") + ) + expect(await resolveImport("foo/bar", config)).toEqual( + path.resolve(cwd, "foo/bar") + ) +}) diff --git a/packages/cli/test/utils/transform-css-vars.test.ts b/packages/cli/test/utils/transform-css-vars.test.ts new file mode 100644 index 0000000..586f1ce --- /dev/null +++ b/packages/cli/test/utils/transform-css-vars.test.ts @@ -0,0 +1,98 @@ +import { expect, test } from "vitest" + +import { transform } from "../../src/utils/transformers" +import stone from "../fixtures/colors/stone.json" + +test("transform css vars", async () => { + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+}" + `, + config: { + tsx: true, + tailwind: { + baseColor: "stone", + cssVariables: true, + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+}" + `, + config: { + tsx: true, + tailwind: { + baseColor: "stone", + cssVariables: false, + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+}" + `, + config: { + tsx: true, + tailwind: { + baseColor: "stone", + cssVariables: false, + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+}" + `, + config: { + tsx: true, + tailwind: { + baseColor: "stone", + cssVariables: false, + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() +}) diff --git a/packages/cli/test/utils/transform-import.test.ts b/packages/cli/test/utils/transform-import.test.ts new file mode 100644 index 0000000..a7ad3e8 --- /dev/null +++ b/packages/cli/test/utils/transform-import.test.ts @@ -0,0 +1,120 @@ +import { expect, test } from "vitest" + +import { transform } from "../../src/utils/transformers" + +test("transform import", async () => { + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + import { Button } from "@/registry/new-york/ui/button" + import { Label} from "ui/label" + import { Box } from "@/registry/new-york/box" + + import { cn } from "@/lib/utils" + `, + config: { + tsx: true, + tailwind: { + baseColor: "neutral", + cssVariables: true, + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + import { Button } from "@/registry/new-york/ui/button" + import { Label} from "ui/label" + import { Box } from "@/registry/new-york/box" + + import { cn, foo, bar } from "@/lib/utils" + import { bar } from "@/lib/utils/bar" + `, + config: { + tsx: true, + aliases: { + components: "~/src/components", + utils: "~/lib", + }, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + import { Button } from "@/registry/new-york/ui/button" + import { Label} from "ui/label" + import { Box } from "@/registry/new-york/box" + + import { cn } from "@/lib/utils" + import { bar } from "@/lib/utils/bar" + `, + config: { + tsx: true, + aliases: { + components: "~/src/components", + utils: "~/src/utils", + }, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + import { Button } from "@/registry/new-york/ui/button" + import { Label} from "ui/label" + import { Box } from "@/registry/new-york/box" + + import { cn } from "@/lib/utils" + import { bar } from "@/lib/utils/bar" + `, + config: { + tsx: true, + aliases: { + components: "~/src/components", + utils: "~/src/utils", + ui: "~/src/components", + }, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + import { Button } from "@/registry/new-york/ui/button" + import { Label} from "ui/label" + import { Box } from "@/registry/new-york/box" + + import { cn } from "@/lib/utils" + import { bar } from "@/lib/utils/bar" + `, + config: { + tsx: true, + aliases: { + components: "~/src/components", + utils: "~/src/utils", + ui: "~/src/ui", + }, + }, + }) + ).toMatchSnapshot() +}) diff --git a/packages/cli/test/utils/transform-rsc.test.ts b/packages/cli/test/utils/transform-rsc.test.ts new file mode 100644 index 0000000..73e0105 --- /dev/null +++ b/packages/cli/test/utils/transform-rsc.test.ts @@ -0,0 +1,65 @@ +import { expect, test } from "vitest" + +import { transform } from "../../src/utils/transformers" + +test("transform rsc", async () => { + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +import { Foo } from "bar" + `, + config: { + tsx: true, + rsc: true, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `"use client" + + import * as React from "react" +import { Foo } from "bar" + `, + config: { + tsx: true, + rsc: true, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `"use client" + + import * as React from "react" +import { Foo } from "bar" + `, + config: { + tsx: true, + rsc: false, + }, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `"use foo" + + import * as React from "react" +import { Foo } from "bar" + +"use client" + `, + config: { + tsx: true, + rsc: false, + }, + }) + ).toMatchSnapshot() +}) diff --git a/packages/cli/test/utils/transform-tw-prefix.test.ts b/packages/cli/test/utils/transform-tw-prefix.test.ts new file mode 100644 index 0000000..5ba1efd --- /dev/null +++ b/packages/cli/test/utils/transform-tw-prefix.test.ts @@ -0,0 +1,82 @@ +import { expect, test } from "vitest" + +import { transform } from "../../src/utils/transformers" +import { applyPrefixesCss } from "../../src/utils/transformers/transform-tw-prefix" +import stone from "../fixtures/colors/stone.json" + +test("transform tailwind prefix", async () => { + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" + export function Foo() { + return
foo
+ } + `, + config: { + tailwind: { + baseColor: "stone", + prefix: "tw-", + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: "stone", + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+} + `, + config: { + tailwind: { + baseColor: "stone", + cssVariables: false, + prefix: "tw-", + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() + + expect( + await transform({ + filename: "test.ts", + raw: `import * as React from "react" +export function Foo() { + return
foo
+} + `, + config: { + tailwind: { + baseColor: "stone", + cssVariables: false, + prefix: "tw-", + }, + aliases: { + components: "@/components", + utils: "@/lib/utils", + }, + }, + baseColor: stone, + }) + ).toMatchSnapshot() + + expect( + applyPrefixesCss( + "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n \n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 224 71.4% 4.1%;\n \n --muted: 220 14.3% 95.9%;\n --muted-foreground: 220 8.9% 46.1%;\n \n --popover: 0 0% 100%;\n --popover-foreground: 224 71.4% 4.1%;\n \n --card: 0 0% 100%;\n --card-foreground: 224 71.4% 4.1%;\n \n --border: 220 13% 91%;\n --input: 220 13% 91%;\n \n --primary: 220.9 39.3% 11%;\n --primary-foreground: 210 20% 98%;\n \n --secondary: 220 14.3% 95.9%;\n --secondary-foreground: 220.9 39.3% 11%;\n \n --accent: 220 14.3% 95.9%;\n --accent-foreground: 220.9 39.3% 11%;\n \n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 20% 98%;\n \n --ring: 217.9 10.6% 64.9%;\n \n --radius: 0.5rem;\n }\n \n .dark {\n --background: 224 71.4% 4.1%;\n --foreground: 210 20% 98%;\n \n --muted: 215 27.9% 16.9%;\n --muted-foreground: 217.9 10.6% 64.9%;\n \n --popover: 224 71.4% 4.1%;\n --popover-foreground: 210 20% 98%;\n \n --card: 224 71.4% 4.1%;\n --card-foreground: 210 20% 98%;\n \n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n \n --primary: 210 20% 98%;\n --primary-foreground: 220.9 39.3% 11%;\n \n --secondary: 215 27.9% 16.9%;\n --secondary-foreground: 210 20% 98%;\n \n --accent: 215 27.9% 16.9%;\n --accent-foreground: 210 20% 98%;\n \n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 0 85.7% 97.3%;\n \n --ring: 215 27.9% 16.9%;\n }\n}\n \n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}", + "tw-" + ) + ).toMatchSnapshot() +}) diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json new file mode 100644 index 0000000..9887005 --- /dev/null +++ b/packages/cli/tsconfig.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "isolatedModules": false, + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts new file mode 100644 index 0000000..5e496be --- /dev/null +++ b/packages/cli/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + clean: true, + dts: true, + entry: ["src/index.ts"], + format: ["esm"], + sourcemap: true, + minify: true, + target: "esnext", + outDir: "dist", +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..2517cef --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,13754 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@changesets/changelog-github': + specifier: ^0.5.0 + version: 0.5.0 + '@changesets/cli': + specifier: ^2.27.7 + version: 2.27.7 + '@nx/js': + specifier: 19.5.1 + version: 19.5.1(@types/node@20.14.11)(nx@19.5.1)(typescript@5.5.3)(verdaccio@5.31.1) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + nx: + specifier: 19.5.1 + version: 19.5.1 + verdaccio: + specifier: ^5.0.4 + version: 5.31.1(typanion@3.14.0) + + apps/www: + dependencies: + '@analogjs/astro-angular': + specifier: ^1.6.2 + version: 1.6.2(@angular-devkit/build-angular@18.1.1)(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler-cli@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/language-service@18.1.1)(@angular/platform-browser-dynamic@18.1.1)(@angular/platform-browser@18.1.1)(@angular/platform-server@18.1.1)(@ngtools/webpack@18.1.1)(rxjs@7.8.1)(tslib@2.6.3)(zone.js@0.14.8) + '@angular-devkit/build-angular': + specifier: ^18.1.1 + version: 18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(tailwindcss@3.4.6)(typescript@5.5.3) + '@angular/animations': + specifier: ^18.1.1 + version: 18.1.1(@angular/core@18.1.1) + '@angular/common': + specifier: ^18.1.1 + version: 18.1.1(@angular/core@18.1.1)(rxjs@7.8.1) + '@angular/compiler': + specifier: ^18.1.1 + version: 18.1.1(@angular/core@18.1.1) + '@angular/compiler-cli': + specifier: ^18.1.1 + version: 18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3) + '@angular/core': + specifier: ^18.1.1 + version: 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + '@angular/language-service': + specifier: ^18.1.1 + version: 18.1.1 + '@angular/platform-browser': + specifier: ^18.1.1 + version: 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/core@18.1.1) + '@angular/platform-browser-dynamic': + specifier: ^18.1.1 + version: 18.1.1(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + '@angular/platform-server': + specifier: ^18.1.1 + version: 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + '@astrojs/check': + specifier: ^0.8.2 + version: 0.8.2(typescript@5.5.3) + '@astrojs/starlight': + specifier: ^0.25.1 + version: 0.25.1(astro@4.12.2) + '@astrojs/starlight-tailwind': + specifier: ^2.0.3 + version: 2.0.3(@astrojs/starlight@0.25.1)(@astrojs/tailwind@5.1.0)(tailwindcss@3.4.6) + '@astrojs/tailwind': + specifier: ^5.1.0 + version: 5.1.0(astro@4.12.2)(tailwindcss@3.4.6) + astro: + specifier: ^4.10.2 + version: 4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + rxjs: + specifier: ^7.8.1 + version: 7.8.1 + sharp: + specifier: ^0.32.5 + version: 0.32.6 + tailwind-merge: + specifier: ^2.4.0 + version: 2.4.0 + tailwindcss: + specifier: ^3.4.4 + version: 3.4.6 + tslib: + specifier: ^2.6.3 + version: 2.6.3 + typescript: + specifier: ^5.5.3 + version: 5.5.3 + zone.js: + specifier: ^0.14.8 + version: 0.14.8 + devDependencies: + '@types/lodash.template': + specifier: ^4.5.1 + version: 4.5.3 + lodash.template: + specifier: ^4.5.0 + version: 4.5.0 + rimraf: + specifier: ^4.1.3 + version: 4.4.1 + ts-morph: + specifier: ^18.0.0 + version: 18.0.0 + + packages/cli: + dependencies: + '@antfu/ni': + specifier: ^0.21.4 + version: 0.21.12 + '@babel/core': + specifier: ^7.22.1 + version: 7.24.9 + '@babel/parser': + specifier: ^7.22.6 + version: 7.24.8 + '@babel/plugin-transform-typescript': + specifier: ^7.22.5 + version: 7.24.8(@babel/core@7.24.9) + chalk: + specifier: 5.2.0 + version: 5.2.0 + commander: + specifier: ^10.0.0 + version: 10.0.1 + cosmiconfig: + specifier: ^8.1.3 + version: 8.3.6(typescript@4.9.5) + diff: + specifier: ^5.1.0 + version: 5.2.0 + execa: + specifier: ^7.0.0 + version: 7.2.0 + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + fs-extra: + specifier: ^11.1.0 + version: 11.2.0 + https-proxy-agent: + specifier: ^6.2.0 + version: 6.2.1 + lodash.template: + specifier: ^4.5.0 + version: 4.5.0 + node-fetch: + specifier: ^3.3.0 + version: 3.3.2 + ora: + specifier: ^6.1.2 + version: 6.3.1 + prompts: + specifier: ^2.4.2 + version: 2.4.2 + recast: + specifier: ^0.23.2 + version: 0.23.9 + ts-morph: + specifier: ^18.0.0 + version: 18.0.0 + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + zod: + specifier: ^3.20.2 + version: 3.23.8 + devDependencies: + '@types/babel__core': + specifier: ^7.20.1 + version: 7.20.5 + '@types/diff': + specifier: ^5.0.3 + version: 5.2.1 + '@types/fs-extra': + specifier: ^11.0.1 + version: 11.0.4 + '@types/lodash.template': + specifier: ^4.5.1 + version: 4.5.3 + '@types/prompts': + specifier: ^2.4.2 + version: 2.4.9 + rimraf: + specifier: ^4.1.3 + version: 4.4.1 + tsup: + specifier: ^6.6.3 + version: 6.7.0(typescript@4.9.5) + type-fest: + specifier: ^3.8.0 + version: 3.13.1 + typescript: + specifier: ^4.9.3 + version: 4.9.5 + +packages: + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + /@analogjs/astro-angular@1.6.2(@angular-devkit/build-angular@18.1.1)(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler-cli@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/language-service@18.1.1)(@angular/platform-browser-dynamic@18.1.1)(@angular/platform-browser@18.1.1)(@angular/platform-server@18.1.1)(@ngtools/webpack@18.1.1)(rxjs@7.8.1)(tslib@2.6.3)(zone.js@0.14.8): + resolution: {integrity: sha512-5kZlappe6W5M3rKb2+koxbfKpxmyHmbibAkClIMcR0XxmHs0yOt+5DMS3P1sPGoRMJTA/gbh9SNwhwVB+FTRcA==} + peerDependencies: + '@angular-devkit/build-angular': '>=16.0.0' + '@angular/animations': '>=16.0.0' + '@angular/common': '>=16.0.0' + '@angular/compiler': '>=16.0.0' + '@angular/compiler-cli': '>=16.0.0' + '@angular/core': '>=16.0.0' + '@angular/language-service': '>=16.0.0' + '@angular/platform-browser': '>=16.0.0' + '@angular/platform-browser-dynamic': '>=16.0.0' + '@angular/platform-server': '>=16.0.0' + rxjs: ^7.5.6 + tslib: ^2.4.0 + zone.js: '>=0.13.3' + dependencies: + '@analogjs/vite-plugin-angular': 1.6.2(@angular-devkit/build-angular@18.1.1)(@ngtools/webpack@18.1.1) + '@angular-devkit/build-angular': 18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(tailwindcss@3.4.6)(typescript@5.5.3) + '@angular/animations': 18.1.1(@angular/core@18.1.1) + '@angular/common': 18.1.1(@angular/core@18.1.1)(rxjs@7.8.1) + '@angular/compiler': 18.1.1(@angular/core@18.1.1) + '@angular/compiler-cli': 18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3) + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + '@angular/language-service': 18.1.1 + '@angular/platform-browser': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/core@18.1.1) + '@angular/platform-browser-dynamic': 18.1.1(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + '@angular/platform-server': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + rxjs: 7.8.1 + tslib: 2.6.3 + zone.js: 0.14.8 + transitivePeerDependencies: + - '@ngtools/webpack' + dev: false + + /@analogjs/vite-plugin-angular@1.6.2(@angular-devkit/build-angular@18.1.1)(@ngtools/webpack@18.1.1): + resolution: {integrity: sha512-cyGMcBXz6XoQ/DXK1t2ffA0lqSWhaugNi/joC7rE6eBy+T+iG0RfaW/NWWAQnJklEcEgVuX0oD9OFoIsP1WnJg==} + peerDependencies: + '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + '@ngtools/webpack': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@angular-devkit/build-angular': 18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(tailwindcss@3.4.6)(typescript@5.5.3) + '@ngtools/webpack': 18.1.1(@angular/compiler-cli@18.1.1)(typescript@5.5.3)(webpack@5.92.1) + ts-morph: 21.0.1 + dev: false + + /@angular-devkit/architect@0.1801.1: + resolution: {integrity: sha512-7dIQ++D5PTzLgs4sEvi7pMpG4nY4CTnzLKbqKDI++fJKa7FEpVjje1tsr1r8ap8xD0QXr6sIxmQ4hdLeWwPhDQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 18.1.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + dev: false + + /@angular-devkit/build-angular@18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(tailwindcss@3.4.6)(typescript@5.5.3): + resolution: {integrity: sha512-sd/eOzitC8yN9xl/TbbuDxXL1LRZCX3gwKAddV1fJSrXJHEmDM7PhdQbNEPd2O58evMKSiMZK91WnYN0lhTZtw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + '@angular/localize': ^18.0.0 + '@angular/platform-server': ^18.0.0 + '@angular/service-worker': ^18.0.0 + '@web/test-runner': ^0.18.0 + browser-sync: ^3.0.2 + jest: ^29.5.0 + jest-environment-jsdom: ^29.5.0 + karma: ^6.3.0 + ng-packagr: ^18.0.0 + protractor: ^7.0.0 + tailwindcss: ^2.0.0 || ^3.0.0 + typescript: '>=5.4 <5.6' + peerDependenciesMeta: + '@angular/localize': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + '@web/test-runner': + optional: true + browser-sync: + optional: true + jest: + optional: true + jest-environment-jsdom: + optional: true + karma: + optional: true + ng-packagr: + optional: true + protractor: + optional: true + tailwindcss: + optional: true + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1801.1 + '@angular-devkit/build-webpack': 0.1801.1(webpack-dev-server@5.0.4)(webpack@5.92.1) + '@angular-devkit/core': 18.1.1 + '@angular/build': 18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(less@4.2.0)(postcss@8.4.38)(tailwindcss@3.4.6)(terser@5.29.2)(typescript@5.5.3) + '@angular/compiler-cli': 18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3) + '@angular/platform-server': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/runtime': 7.24.7 + '@discoveryjs/json-ext': 0.5.7 + '@ngtools/webpack': 18.1.1(@angular/compiler-cli@18.1.1)(typescript@5.5.3)(webpack@5.92.1) + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.3.2) + ansi-colors: 4.1.3 + autoprefixer: 10.4.19(postcss@8.4.38) + babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.1) + browserslist: 4.23.2 + copy-webpack-plugin: 12.0.2(webpack@5.92.1) + critters: 0.0.24 + css-loader: 7.1.2(webpack@5.92.1) + esbuild-wasm: 0.21.5 + fast-glob: 3.3.2 + http-proxy-middleware: 3.0.0 + https-proxy-agent: 7.0.5 + istanbul-lib-instrument: 6.0.2 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.2.0 + less-loader: 12.2.0(less@4.2.0)(webpack@5.92.1) + license-webpack-plugin: 4.0.2(webpack@5.92.1) + loader-utils: 3.3.1 + magic-string: 0.30.10 + mini-css-extract-plugin: 2.9.0(webpack@5.92.1) + mrmime: 2.0.0 + open: 10.1.0 + ora: 5.4.1 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.6.1 + postcss: 8.4.38 + postcss-loader: 8.1.1(postcss@8.4.38)(typescript@5.5.3)(webpack@5.92.1) + resolve-url-loader: 5.0.0 + rxjs: 7.8.1 + sass: 1.77.6 + sass-loader: 14.2.1(sass@1.77.6)(webpack@5.92.1) + semver: 7.6.2 + source-map-loader: 5.0.0(webpack@5.92.1) + source-map-support: 0.5.21 + tailwindcss: 3.4.6 + terser: 5.29.2 + tree-kill: 1.2.2 + tslib: 2.6.3 + typescript: 5.5.3 + undici: 6.19.2 + vite: 5.3.2(@types/node@20.14.11)(less@4.2.0)(sass@1.77.6)(terser@5.29.2) + watchpack: 2.4.1 + webpack: 5.92.1(esbuild@0.21.5) + webpack-dev-middleware: 7.2.1(webpack@5.92.1) + webpack-dev-server: 5.0.4(webpack@5.92.1) + webpack-merge: 5.10.0 + webpack-subresource-integrity: 5.1.0(webpack@5.92.1) + optionalDependencies: + esbuild: 0.21.5 + transitivePeerDependencies: + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + dev: false + + /@angular-devkit/build-webpack@0.1801.1(webpack-dev-server@5.0.4)(webpack@5.92.1): + resolution: {integrity: sha512-9qImQciytrf433+h1aAWMD/Qn9cx7amlLtHX9j6ToBMWxY3L9ZKzwlCZ3Q+d6VWs7QrN/X9j8VkJl913yuXeCQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + webpack: ^5.30.0 + webpack-dev-server: ^5.0.2 + dependencies: + '@angular-devkit/architect': 0.1801.1 + rxjs: 7.8.1 + webpack: 5.92.1(esbuild@0.21.5) + webpack-dev-server: 5.0.4(webpack@5.92.1) + transitivePeerDependencies: + - chokidar + dev: false + + /@angular-devkit/core@18.1.1: + resolution: {integrity: sha512-YFzn/+8LezX7ZJhMQisvrqfkxJm6+JOtbWFj8K/luK0rTDmE8Z9n9r6kJ36FnHcLJ5MvvVaBc7n1v1wnzdqXpg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: 8.16.0 + ajv-formats: 3.0.1(ajv@8.16.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + dev: false + + /@angular/animations@18.1.1(@angular/core@18.1.1): + resolution: {integrity: sha512-3BdB6lB7TT1BQFb8C3XyJ5A9YSrOx951NzcXnzFfTNiq1C+VeR455LtdNiDTPa9Vf5Df1cJb6ReJ1z17ztx+6Q==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.1.1 + dependencies: + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + tslib: 2.6.3 + dev: false + + /@angular/build@18.1.1(@angular/compiler-cli@18.1.1)(@angular/platform-server@18.1.1)(@types/node@20.14.11)(less@4.2.0)(postcss@8.4.38)(tailwindcss@3.4.6)(terser@5.29.2)(typescript@5.5.3): + resolution: {integrity: sha512-DbgFqpaZE6g8VZaPboB54cVuERlZV6SAkNPEaMT/53cnCxL4QdSQs1aT9Wy8G1Ksr4WI5AZMdPic/TVF0KBGGQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + '@angular/localize': ^18.0.0 + '@angular/platform-server': ^18.0.0 + '@angular/service-worker': ^18.0.0 + less: ^4.2.0 + postcss: ^8.4.0 + tailwindcss: ^2.0.0 || ^3.0.0 + typescript: '>=5.4 <5.6' + peerDependenciesMeta: + '@angular/localize': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + less: + optional: true + postcss: + optional: true + tailwindcss: + optional: true + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1801.1 + '@angular/compiler-cli': 18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3) + '@angular/platform-server': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1) + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) + '@inquirer/confirm': 3.1.11 + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.3.2) + ansi-colors: 4.1.3 + browserslist: 4.23.2 + critters: 0.0.24 + esbuild: 0.21.5 + fast-glob: 3.3.2 + https-proxy-agent: 7.0.5 + less: 4.2.0 + lmdb: 3.0.12 + magic-string: 0.30.10 + mrmime: 2.0.0 + ora: 5.4.1 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.6.1 + postcss: 8.4.38 + rollup: 4.18.0 + sass: 1.77.6 + semver: 7.6.2 + tailwindcss: 3.4.6 + typescript: 5.5.3 + undici: 6.19.2 + vite: 5.3.2(@types/node@20.14.11)(less@4.2.0)(sass@1.77.6)(terser@5.29.2) + watchpack: 2.4.1 + transitivePeerDependencies: + - '@types/node' + - chokidar + - lightningcss + - stylus + - sugarss + - supports-color + - terser + dev: false + + /@angular/common@18.1.1(@angular/core@18.1.1)(rxjs@7.8.1): + resolution: {integrity: sha512-qNfYAapvIi8JyQToSqbg3O5dRXaElv/yNp2evvBGn4UO/liHjdNV/DzgCdyKP7uVbYrR0W3bzj++SxVR3mrATQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.1.1 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + rxjs: 7.8.1 + tslib: 2.6.3 + dev: false + + /@angular/compiler-cli@18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3): + resolution: {integrity: sha512-TMPrN4HLa5raxW133bY3AxH1Gar36nmy0ikttMeSotLSlC5Y4SCYaiMY7QaPytD1iEGvqAd/rP+YuXzOIuCM/w==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + hasBin: true + peerDependencies: + '@angular/compiler': 18.1.1 + typescript: '>=5.4 <5.6' + dependencies: + '@angular/compiler': 18.1.1(@angular/core@18.1.1) + '@babel/core': 7.24.7 + '@jridgewell/sourcemap-codec': 1.5.0 + chokidar: 3.6.0 + convert-source-map: 1.9.0 + reflect-metadata: 0.2.2 + semver: 7.6.3 + tslib: 2.6.3 + typescript: 5.5.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@angular/compiler@18.1.1(@angular/core@18.1.1): + resolution: {integrity: sha512-Nc2GZhXXi3O2otZIWgOJoGZ+88+R6YXGc70dibEpMvmDjKfYpc4pBjuYzaGntdiTYAzVOVTTv09dwTP6YOpPRA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.1.1 + peerDependenciesMeta: + '@angular/core': + optional: true + dependencies: + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + tslib: 2.6.3 + dev: false + + /@angular/core@18.1.1(rxjs@7.8.1)(zone.js@0.14.8): + resolution: {integrity: sha512-/JFQ49fVIthZzdggl7FOCYAjaynbkRcCyiri85kAyTIvJ6aMSIiEKwJCw45WI5ICf2HtC9kz6dr0OKhMR6SeiA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.14.0 + dependencies: + rxjs: 7.8.1 + tslib: 2.6.3 + zone.js: 0.14.8 + dev: false + + /@angular/language-service@18.1.1: + resolution: {integrity: sha512-SK9mKBB+fWXBXgdDLPZQI/peHqeQLheseSUPhZQyARDR6CrUvhB7MSRWERhn8832fZ6BoCE01p1obsYLWeXNbw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + dev: false + + /@angular/platform-browser-dynamic@18.1.1(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1): + resolution: {integrity: sha512-+nnWGLz7dhkRbel8qGIgfQa5PoE4ZMl0ClDw8HR0R5T3w+v0K6trPSjWIPDHm5ex25RvuLNmoUGu29drlHN3Fw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/common': 18.1.1 + '@angular/compiler': 18.1.1 + '@angular/core': 18.1.1 + '@angular/platform-browser': 18.1.1 + dependencies: + '@angular/common': 18.1.1(@angular/core@18.1.1)(rxjs@7.8.1) + '@angular/compiler': 18.1.1(@angular/core@18.1.1) + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + '@angular/platform-browser': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/core@18.1.1) + tslib: 2.6.3 + dev: false + + /@angular/platform-browser@18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/core@18.1.1): + resolution: {integrity: sha512-9FG2+NSWJXo+zu/W7VQE0UpaWejbV62AXW7218FBZXOdkdID5oNxHf0QdJ3hCaIJw1dKZEG49BTq005d9yQbew==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/animations': 18.1.1 + '@angular/common': 18.1.1 + '@angular/core': 18.1.1 + peerDependenciesMeta: + '@angular/animations': + optional: true + dependencies: + '@angular/animations': 18.1.1(@angular/core@18.1.1) + '@angular/common': 18.1.1(@angular/core@18.1.1)(rxjs@7.8.1) + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + tslib: 2.6.3 + dev: false + + /@angular/platform-server@18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/compiler@18.1.1)(@angular/core@18.1.1)(@angular/platform-browser@18.1.1): + resolution: {integrity: sha512-Or/lJ5mytuHAf6KYu9AeWPIW1BpIJA/yBps4OD65Nm0k51WkzttTPXsbcNkFvrM0N24fZksTx3+ozW71Efm/vQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/animations': 18.1.1 + '@angular/common': 18.1.1 + '@angular/compiler': 18.1.1 + '@angular/core': 18.1.1 + '@angular/platform-browser': 18.1.1 + dependencies: + '@angular/animations': 18.1.1(@angular/core@18.1.1) + '@angular/common': 18.1.1(@angular/core@18.1.1)(rxjs@7.8.1) + '@angular/compiler': 18.1.1(@angular/core@18.1.1) + '@angular/core': 18.1.1(rxjs@7.8.1)(zone.js@0.14.8) + '@angular/platform-browser': 18.1.1(@angular/animations@18.1.1)(@angular/common@18.1.1)(@angular/core@18.1.1) + tslib: 2.6.3 + xhr2: 0.2.1 + dev: false + + /@antfu/ni@0.21.12: + resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} + hasBin: true + dev: false + + /@astrojs/check@0.8.2(typescript@5.5.3): + resolution: {integrity: sha512-L0V9dGb2PGvK9Mf3kby99Y+qm7EqxaC9tN1MVCvaqp/3pPPZBadR4XAySHipxXqQsxwJS25WQow8/1kMl1e25g==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.12.1(typescript@5.5.3) + chokidar: 3.6.0 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.5.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false + + /@astrojs/compiler@2.9.2: + resolution: {integrity: sha512-Vpu0Ffsj8SoV+N0DFHlxxOMKHwSC9059Xy/OlG1t6uFYSoJXxkBC2WyF6igO7x10V+8uJrhOxaXr3nA90kJXow==} + dev: false + + /@astrojs/internal-helpers@0.4.1: + resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + dev: false + + /@astrojs/language-server@2.12.1(typescript@5.5.3): + resolution: {integrity: sha512-CCibE6XwSmrZEKlPDr48LZJN7NWxOurOJK1yOzqZFMNV8Y6DIqF6s1e60gbNNHMZkthWYBNTPno4Ni/XyviinQ==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + dependencies: + '@astrojs/compiler': 2.9.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@volar/kit': 2.4.0-alpha.18(typescript@5.5.3) + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-server': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + volar-service-css: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-emmet: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-prettier: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-typescript: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-typescript-twoslash-queries: 0.0.59(@volar/language-service@2.4.0-alpha.18) + vscode-html-languageservice: 5.3.0 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false + + /@astrojs/markdown-remark@5.2.0: + resolution: {integrity: sha512-vWGM24KZXz11jR3JO+oqYU3T2qpuOi4uGivJ9SQLCAI01+vEkHC60YJMRvHPc+hwd60F7euNs1PeOEixIIiNQw==} + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.1 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.0 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + remark-smartypants: 3.0.2 + shiki: 1.11.0 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/mdx@3.1.3(astro@4.12.2): + resolution: {integrity: sha512-hOM4dMM4RfJI254d3p/AnOZuk2VyKszRtuY5FBm+Xc4XdhIpGrR56OXMNEcWchtwz4HQyPe/eJSgvBjSROcQIQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.8.0 + dependencies: + '@astrojs/markdown-remark': 5.2.0 + '@mdx-js/mdx': 3.0.1 + acorn: 8.12.1 + astro: 4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3) + es-module-lexer: 1.5.4 + estree-util-visit: 2.0.0 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.1 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/prism@3.1.0: + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + prismjs: 1.29.0 + dev: false + + /@astrojs/sitemap@3.1.6: + resolution: {integrity: sha512-1Qp2NvAzVImqA6y+LubKi1DVhve/hXXgFvB0szxiipzh7BvtuKe4oJJ9dXSqaubaTkt4nMa6dv6RCCAYeB6xaQ==} + dependencies: + sitemap: 7.1.2 + stream-replace-string: 2.0.0 + zod: 3.23.8 + dev: false + + /@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.25.1)(@astrojs/tailwind@5.1.0)(tailwindcss@3.4.6): + resolution: {integrity: sha512-ZwbdXS/9rxYlo3tKZoTZoBPUnaaqek02b341dHwOkmMT0lIR2w+8k0mRUGxnRaYtPdMcaL+nYFd8RUa8sjdyRg==} + peerDependencies: + '@astrojs/starlight': '>=0.9.0' + '@astrojs/tailwind': ^5.0.0 + tailwindcss: ^3.3.3 + dependencies: + '@astrojs/starlight': 0.25.1(astro@4.12.2) + '@astrojs/tailwind': 5.1.0(astro@4.12.2)(tailwindcss@3.4.6) + tailwindcss: 3.4.6 + dev: false + + /@astrojs/starlight@0.25.1(astro@4.12.2): + resolution: {integrity: sha512-tniE870QpwDs7stJk/qb1LwE78761Fi77qF/UsWedDU90gC6gPjGOHNrbQYUABAmkQ63t3/Jpq9/kmS6sfHT0g==} + peerDependencies: + astro: ^4.8.6 + dependencies: + '@astrojs/mdx': 3.1.3(astro@4.12.2) + '@astrojs/sitemap': 3.1.6 + '@pagefind/default-ui': 1.1.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + astro: 4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3) + astro-expressive-code: 0.35.3(astro@4.12.2) + bcp-47: 2.1.0 + hast-util-from-html: 2.0.1 + hast-util-select: 6.0.2 + hast-util-to-string: 3.0.0 + hastscript: 9.0.0 + mdast-util-directive: 3.0.0 + mdast-util-to-markdown: 2.1.0 + pagefind: 1.1.0 + rehype: 13.0.1 + rehype-format: 5.0.0 + remark-directive: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/tailwind@5.1.0(astro@4.12.2)(tailwindcss@3.4.6): + resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} + peerDependencies: + astro: ^3.0.0 || ^4.0.0 + tailwindcss: ^3.0.24 + dependencies: + astro: 4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3) + autoprefixer: 10.4.19(postcss@8.4.39) + postcss: 8.4.39 + postcss-load-config: 4.0.2(postcss@8.4.39) + tailwindcss: 3.4.6 + transitivePeerDependencies: + - ts-node + dev: false + + /@astrojs/telemetry@3.1.0: + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + ci-info: 4.0.0 + debug: 4.3.5 + dlv: 1.1.3 + dset: 3.1.3 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + /@babel/compat-data@7.24.9: + resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.24.7: + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.7) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/core@7.24.9: + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.24.10: + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + /@babel/generator@7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: false + + /@babel/helper-annotate-as-pure@7.24.7: + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + + /@babel/helper-builder-binary-assignment-operator-visitor@7.24.7: + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-compilation-targets@7.24.8: + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: false + + /@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7): + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.5 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.9): + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.5 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.9 + + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + + /@babel/helper-member-expression-to-functions@7.24.8: + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-module-transforms@7.24.9(@babel/core@7.24.7): + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9): + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-optimise-call-expression@7.24.7: + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + + /@babel/helper-plugin-utils@7.24.8: + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-skip-transparent-expression-wrappers@7.24.7: + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.9 + + /@babel/helper-string-parser@7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function@7.24.7: + resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + /@babel/helpers@7.24.8: + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.9 + + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + /@babel/parser@7.24.8: + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.9 + + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + dev: false + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.9): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.9): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.9): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-split-export-declaration': 7.24.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/helper-split-export-declaration': 7.24.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.24.7 + dev: false + + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.24.7 + dev: true + + /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + dev: false + + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + dev: true + + /@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + regenerator-transform: 0.15.2 + dev: false + + /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.9) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.7): + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + + /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.8 + dev: false + + /@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/preset-env@7.24.7(@babel/core@7.24.7): + resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.7 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.7) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.7) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.7) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.7) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) + core-js-compat: 3.37.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/preset-env@7.24.8(@babel/core@7.24.9): + resolution: {integrity: sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.9 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.9) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.9) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.9) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.9) + core-js-compat: 3.37.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7): + 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.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.24.9 + esutils: 2.0.3 + dev: false + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.9): + 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.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.24.9 + esutils: 2.0.3 + dev: true + + /@babel/preset-typescript@7.24.7(@babel/core@7.24.9): + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + /@babel/runtime@7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/runtime@7.24.8: + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + + /@babel/traverse@7.24.8: + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.24.9: + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + /@changesets/apply-release-plan@7.0.4: + resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/config': 3.0.2 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.0 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.3 + dev: true + + /@changesets/assemble-release-plan@6.0.3: + resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.3 + dev: true + + /@changesets/changelog-git@0.2.0: + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + dependencies: + '@changesets/types': 6.0.0 + dev: true + + /@changesets/changelog-github@0.5.0: + resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} + dependencies: + '@changesets/get-github-info': 0.6.0 + '@changesets/types': 6.0.0 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding + dev: true + + /@changesets/cli@2.27.7: + resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} + hasBin: true + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/apply-release-plan': 7.0.4 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.2 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/get-release-plan': 4.0.3 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.1 + '@manypkg/get-packages': 1.1.3 + '@types/semver': 7.5.8 + ansi-colors: 4.1.3 + chalk: 2.4.2 + ci-info: 3.9.0 + enquirer: 2.3.6 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + mri: 1.2.0 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.1.4 + resolve-from: 5.0.0 + semver: 7.6.3 + spawndamnit: 2.0.0 + term-size: 2.2.1 + dev: true + + /@changesets/config@3.0.2: + resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/logger': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.7 + dev: true + + /@changesets/errors@0.2.0: + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + dependencies: + extendable-error: 0.1.7 + dev: true + + /@changesets/get-dependents-graph@2.1.1: + resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.6.3 + dev: true + + /@changesets/get-github-info@0.6.0: + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + dependencies: + dataloader: 1.4.0 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + dev: true + + /@changesets/get-release-plan@4.0.3: + resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/config': 3.0.2 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + dev: true + + /@changesets/get-version-range-type@0.4.0: + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + dev: true + + /@changesets/git@3.0.0: + resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.7 + spawndamnit: 2.0.0 + dev: true + + /@changesets/logger@0.1.0: + resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} + dependencies: + chalk: 2.4.2 + dev: true + + /@changesets/parse@0.4.0: + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + dev: true + + /@changesets/pre@2.0.0: + resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + dev: true + + /@changesets/read@0.6.0: + resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: true + + /@changesets/should-skip-package@0.1.0: + resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + dev: true + + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: true + + /@changesets/types@6.0.0: + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + dev: true + + /@changesets/write@0.3.1: + resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@ctrl/tinycolor@4.1.0: + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} + dev: false + + /@cypress/request@3.0.1: + resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} + engines: {node: '>= 6'} + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + performance-now: 2.1.0 + qs: 6.10.4 + safe-buffer: 5.2.1 + tough-cookie: 4.1.4 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: false + + /@emmetio/abbreviation@2.3.3: + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false + + /@emmetio/css-abbreviation@2.1.8: + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false + + /@emmetio/css-parser@0.4.0: + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + dev: false + + /@emmetio/html-matcher@1.3.0: + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false + + /@emmetio/scanner@1.0.4: + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: false + + /@emmetio/stream-reader-utils@0.1.0: + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + dev: false + + /@emmetio/stream-reader@2.2.0: + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + dev: false + + /@emnapi/core@1.2.0: + resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.6.3 + dev: true + + /@emnapi/runtime@1.2.0: + resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + dependencies: + tslib: 2.6.3 + + /@emnapi/wasi-threads@1.0.1: + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + dependencies: + tslib: 2.6.3 + dev: true + + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@expressive-code/core@0.35.3: + resolution: {integrity: sha512-SYamcarAjufYhbuK/kfvJSvAXLsfnM7DKc78R7Dq4B73R5bKQK2m5zR0l57tXr4yp2C5Z8lu5xZncdwWxcmPdg==} + dependencies: + '@ctrl/tinycolor': 4.1.0 + hast-util-select: 6.0.2 + hast-util-to-html: 9.0.1 + hast-util-to-text: 4.0.2 + hastscript: 9.0.0 + postcss: 8.4.39 + postcss-nested: 6.2.0(postcss@8.4.39) + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /@expressive-code/plugin-frames@0.35.3: + resolution: {integrity: sha512-QYytMq6IsaHgTofQ5b6d+CnbxkqLdikSF2hC+IL/ZZwPYHYZoUlmjIwmJZhY4/hHqJGELrtZsyVdlt06RntgmA==} + dependencies: + '@expressive-code/core': 0.35.3 + dev: false + + /@expressive-code/plugin-shiki@0.35.3: + resolution: {integrity: sha512-aFQBPepv0zhVXqJFAvfQ4vXYv/meJKiqmEEKSxdjAfwXllIV49PDlnGEXmbGYjR4hUQQjbfDgzAbrbfePc3YVQ==} + dependencies: + '@expressive-code/core': 0.35.3 + shiki: 1.11.0 + dev: false + + /@expressive-code/plugin-text-markers@0.35.3: + resolution: {integrity: sha512-gDdnQrfDRXw5Y+PKHJDkpAUdf2pthYOthGcgy3JB8GOTQ3EL1h+755Ct/bGc4MR6jn+dgnQP47uHMWQaccvN6Q==} + dependencies: + '@expressive-code/core': 0.35.3 + dev: false + + /@img/sharp-darwin-arm64@0.33.4: + resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.2 + dev: false + optional: true + + /@img/sharp-darwin-x64@0.33.4: + resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.2 + dev: false + optional: true + + /@img/sharp-libvips-darwin-arm64@1.0.2: + resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} + engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-darwin-x64@1.0.2: + resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} + engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-arm64@1.0.2: + resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-arm@1.0.2: + resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-s390x@1.0.2: + resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-x64@1.0.2: + resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linuxmusl-arm64@1.0.2: + resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linuxmusl-x64@1.0.2: + resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-linux-arm64@0.33.4: + resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.2 + dev: false + optional: true + + /@img/sharp-linux-arm@0.33.4: + resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.2 + dev: false + optional: true + + /@img/sharp-linux-s390x@0.33.4: + resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} + engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.2 + dev: false + optional: true + + /@img/sharp-linux-x64@0.33.4: + resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.2 + dev: false + optional: true + + /@img/sharp-linuxmusl-arm64@0.33.4: + resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + dev: false + optional: true + + /@img/sharp-linuxmusl-x64@0.33.4: + resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + dev: false + optional: true + + /@img/sharp-wasm32@0.33.4: + resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [wasm32] + requiresBuild: true + dependencies: + '@emnapi/runtime': 1.2.0 + dev: false + optional: true + + /@img/sharp-win32-ia32@0.33.4: + resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-win32-x64@0.33.4: + resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@inquirer/confirm@3.1.11: + resolution: {integrity: sha512-3wWw10VPxQP279FO4bzWsf8YjIAq7NdwATJ4xS2h1uwsXZu/RmtOVV95rZ7yllS1h/dzu+uLewjMAzNDEj8h2w==} + engines: {node: '>=18'} + dependencies: + '@inquirer/core': 8.2.4 + '@inquirer/type': 1.5.1 + dev: false + + /@inquirer/core@8.2.4: + resolution: {integrity: sha512-7vsXSfxtrrbwMTirfaKwPcjqJy7pzeuF/bP62yo1NQrRJ5HjmMlrhZml/Ljm9ODc1RnbhJlTeSnCkjtFddKjwA==} + engines: {node: '>=18'} + dependencies: + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.1 + '@types/mute-stream': 0.0.4 + '@types/node': 20.14.11 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + picocolors: 1.0.1 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /@inquirer/figures@1.0.5: + resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} + engines: {node: '>=18'} + dev: false + + /@inquirer/type@1.5.1: + resolution: {integrity: sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==} + engines: {node: '>=18'} + dependencies: + mute-stream: 1.0.0 + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: false + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: false + + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true + + /@jsonjoy.com/base64@1.1.2(tslib@2.6.3): + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + dependencies: + tslib: 2.6.3 + dev: false + + /@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3): + resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) + '@jsonjoy.com/util': 1.2.0(tslib@2.6.3) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.6.3) + tslib: 2.6.3 + dev: false + + /@jsonjoy.com/util@1.2.0(tslib@2.6.3): + resolution: {integrity: sha512-4B8B+3vFsY4eo33DMKyJPlQ3sBMpPFUZK2dr3O3rXrOGKKbYG44J0XSFkDo1VOQiri5HFEhIeVvItjR2xcazmg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + dependencies: + tslib: 2.6.3 + dev: false + + /@leichtgewicht/ip-codec@2.0.5: + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + dev: false + + /@lmdb/lmdb-darwin-arm64@3.0.12: + resolution: {integrity: sha512-vgTwzNUD3Hy4aqtGhX2+nV/usI0mwy3hDRuTjs8VcK0BLiMVEpNQXgzwlWEgPmA8AAPloUgyOs2nK5clJF5oIg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@lmdb/lmdb-darwin-x64@3.0.12: + resolution: {integrity: sha512-qOt0hAhj2ZLY6aEWu85rzt5zcyCAQITMhCMEPNlo1tuYekpVAdkQNiwXxEkCjBYvwTskvXuwXOOUpjuSc+aJnA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@lmdb/lmdb-linux-arm64@3.0.12: + resolution: {integrity: sha512-Qy4cFXFe9h1wAWMsojex8x1ifvw2kqiZv686YiRTdQEzAfc3vJASHFcD/QejHUCx7YHMYdnUoCS45rG2AiGDTQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@lmdb/lmdb-linux-arm@3.0.12: + resolution: {integrity: sha512-Ggd/UXpE+alMncbELCXA3OKpDj9bDBR3qVO7WRTxstloDglRAHfZmUJgTkeaNKjFO1JHqS7AKy0jba9XebZB1w==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@lmdb/lmdb-linux-x64@3.0.12: + resolution: {integrity: sha512-c+noT9IofktxktFllKHFmci8ka2SYGSLN17pj/KSl1hg7mmfAiGp4xxFxEwMLTb+SX95vP1DFiR++1I3WLVxvA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@lmdb/lmdb-win32-x64@3.0.12: + resolution: {integrity: sha512-CO3MFV8gUx16NU/CyyuumAKblESwvoGVA2XhQKZ976OTOxaTbb8F8D3f0iiZ4MYqsN74jIrFuCmXpPnpjbhfOQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.24.8 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.24.8 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + dev: true + + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3: + resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3: + resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3: + resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3: + resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3: + resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3: + resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/wasm-runtime@0.2.4: + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + dependencies: + '@emnapi/core': 1.2.0 + '@emnapi/runtime': 1.2.0 + '@tybys/wasm-util': 0.9.0 + dev: true + + /@ngtools/webpack@18.1.1(@angular/compiler-cli@18.1.1)(typescript@5.5.3)(webpack@5.92.1): + resolution: {integrity: sha512-mjlfnWcHtBZJUJaVyffJZZL8U1o1XUQwrFIKeiFUeatLDsjtv8EbLW9Ed1v3eAJyVuaTNKpsdZma1XdxzeLONw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + typescript: '>=5.4 <5.6' + webpack: ^5.54.0 + dependencies: + '@angular/compiler-cli': 18.1.1(@angular/compiler@18.1.1)(typescript@5.5.3) + typescript: 5.5.3 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /@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 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + /@nrwl/devkit@19.5.1(nx@19.5.1): + resolution: {integrity: sha512-ZsckDZszLTv3oshNsY5fZ86g8a/VcGvgDpdiP/z/A/krtOHL8iUjdT/72Eo5DIult5WcSFjnifyWcyWIGe1PeA==} + dependencies: + '@nx/devkit': 19.5.1(nx@19.5.1) + transitivePeerDependencies: + - nx + dev: true + + /@nrwl/js@19.5.1(@types/node@20.14.11)(nx@19.5.1)(typescript@5.5.3)(verdaccio@5.31.1): + resolution: {integrity: sha512-t3EBizfpsT2n2x/oISqs2/JyCpwl1EqjvNDyXgMavLvIMnjLd1vsvmHwoblMJdRJFWropHlHBtp+6u2PRs/Gjw==} + dependencies: + '@nx/js': 19.5.1(@types/node@20.14.11)(nx@19.5.1)(typescript@5.5.3)(verdaccio@5.31.1) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/tao@19.5.1: + resolution: {integrity: sha512-gAitJkexzI36jCNIHru1PAqNcFe17KlSwb3F4VoCArcZSJmSh5cTbxaAAWup8aavxHT6nF6G1Zm1+N0RmzRMRQ==} + hasBin: true + dependencies: + nx: 19.5.1 + tslib: 2.6.3 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/workspace@19.5.1: + resolution: {integrity: sha512-lqX0bgqCv/qc35tqea16uMWbkMN2dxEOCCc81BxKwDf0roSlO0Jnb0vWMCBUrITWbginSe7vovvjfpGbS1QboA==} + dependencies: + '@nx/workspace': 19.5.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nx/devkit@19.5.1(nx@19.5.1): + resolution: {integrity: sha512-Vj8wwzNIR5VIWmuLHhOi4aUVq7eVV5YTbctnEewKT+V/O4LZj+hClGyVNyT8s6b8JIjNWoIO4HXStLnH8rDOlw==} + peerDependencies: + nx: '>= 17 <= 20' + dependencies: + '@nrwl/devkit': 19.5.1(nx@19.5.1) + ejs: 3.1.10 + enquirer: 2.3.6 + ignore: 5.3.1 + minimatch: 9.0.3 + nx: 19.5.1 + semver: 7.6.3 + tmp: 0.2.3 + tslib: 2.6.3 + yargs-parser: 21.1.1 + dev: true + + /@nx/js@19.5.1(@types/node@20.14.11)(nx@19.5.1)(typescript@5.5.3)(verdaccio@5.31.1): + resolution: {integrity: sha512-Kp61s0cB3yk3RCyvSprakNL0VmXv7uqfsglqvxUDG6DXof9pj8jhTNn1Gms79DmUR5jxTeT+XNHcpl1y3QhTzg==} + peerDependencies: + verdaccio: ^5.0.4 + peerDependenciesMeta: + verdaccio: + optional: true + dependencies: + '@babel/core': 7.24.9 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.9) + '@babel/preset-env': 7.24.8(@babel/core@7.24.9) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) + '@babel/runtime': 7.24.8 + '@nrwl/js': 19.5.1(@types/node@20.14.11)(nx@19.5.1)(typescript@5.5.3)(verdaccio@5.31.1) + '@nx/devkit': 19.5.1(nx@19.5.1) + '@nx/workspace': 19.5.1 + babel-plugin-const-enum: 1.2.0(@babel/core@7.24.9) + babel-plugin-macros: 2.8.0 + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.24.9) + chalk: 4.1.2 + columnify: 1.6.0 + detect-port: 1.6.1 + fast-glob: 3.2.7 + fs-extra: 11.2.0 + ignore: 5.3.1 + js-tokens: 4.0.0 + minimatch: 9.0.3 + npm-package-arg: 11.0.1 + npm-run-path: 4.0.1 + ora: 5.3.0 + semver: 7.6.3 + source-map-support: 0.5.19 + ts-node: 10.9.1(@types/node@20.14.11)(typescript@5.5.3) + tsconfig-paths: 4.2.0 + tslib: 2.6.3 + verdaccio: 5.31.1(typanion@3.14.0) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + dev: true + + /@nx/nx-darwin-arm64@19.5.1: + resolution: {integrity: sha512-mdFSnwf+cEGZQ0HDJIzHBOWmho66VUN44qsDRPVSwpaEqlHSlcbiqKzM0+oVx9CRDLNQoYtYs1Y3hGlnag1sCQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-darwin-x64@19.5.1: + resolution: {integrity: sha512-ficF0T6vN0LkkYoPyEgdXEOfIR9ss0hXeG2s32SwqfjNZlbisO4fvrHM8f8WPujEJ+5nCIJ9o4jJiWBHkfUTBg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-freebsd-x64@19.5.1: + resolution: {integrity: sha512-UjquUf8N06DlAyhpvEm1D57WXWQnvvVq6vIxq6rTmK+alWjMyOUs90sPYrqvV3TARAsdkos763S8T5rAOB/xYQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm-gnueabihf@19.5.1: + resolution: {integrity: sha512-UXBXiLEZVgHlz/iO634JQwQU/MP0Kx0tKwEzucjAryIUFTBRAZos76wTF8glBQaH4dTwWtQQObxaEVGGu+J4dA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm64-gnu@19.5.1: + resolution: {integrity: sha512-UlBq3ImnFHMsI6jLxQA97ntgBvMvtnVmL/eluGOcUres9q0IqzTOWmBDccpR3ZLbI3NBrmDRrS79aid3SuBKwA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm64-musl@19.5.1: + resolution: {integrity: sha512-sw0zdO9CLjDY9qiweZm5p5zrkOeRPagimHCtHw/YIuPfkBrtoazi9adD+f8OXou/jrL/f1UE2/CA3gQKDOT35Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-x64-gnu@19.5.1: + resolution: {integrity: sha512-tHPcBgsyyLNRfJLWnDQLcWZZ69xn4Ocfnquxs30Q5gk5CZTNSVm/yA4ibYn9JGvSu0dNjzM+nJwmtEaudhtgSg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-x64-musl@19.5.1: + resolution: {integrity: sha512-dHP8GrqK05gHwq6kSjuZqaN0CQrID2OspuJ4vKd+WoelioFNmdRAQWkOyqXA5dlrJfWs/IqV+WvnexYlxG1quw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-win32-arm64-msvc@19.5.1: + resolution: {integrity: sha512-YNhVje0gSmt7bLWDCR1Ea3vbvqF+iIeDhtpJuK7kXMbWAujZrA5sGW/xdPPShV8omlQuu1Ggms0BUCwr8Aiyig==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-win32-x64-msvc@19.5.1: + resolution: {integrity: sha512-bxj12iAuyEwBCV6A+C8nXQ55KNji4L0VrL3y2KeH0wOeBMgTeKQxoMNk0/Ty2O6354YkAgwaKRHJMnM/LfO+og==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nx/workspace@19.5.1: + resolution: {integrity: sha512-I/O+kDxaLzVXITmddijffNzllioe84oGSQ3q8s3nW7RP2/T1LkmOS7Prnd80sEVteQowHe0kOnvAh+p82kAUjQ==} + dependencies: + '@nrwl/workspace': 19.5.1 + '@nx/devkit': 19.5.1(nx@19.5.1) + chalk: 4.1.2 + enquirer: 2.3.6 + nx: 19.5.1 + tslib: 2.6.3 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@pagefind/darwin-arm64@1.1.0: + resolution: {integrity: sha512-SLsXNLtSilGZjvqis8sX42fBWsWAVkcDh1oerxwqbac84HbiwxpxOC2jm8hRwcR0Z55HPZPWO77XeRix/8GwTg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@pagefind/darwin-x64@1.1.0: + resolution: {integrity: sha512-QjQSE/L5oS1C8N8GdljGaWtjCBMgMtfrPAoiCmINTu9Y9dp0ggAyXvF8K7Qg3VyIMYJ6v8vg2PN7Z3b+AaAqUA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@pagefind/default-ui@1.1.0: + resolution: {integrity: sha512-+XiAJAK++C64nQcD7s3Prdmd5S92lT05fwjOxm0L1jj80jbL+tmvcqkkFnPpoqhnicIPgcAX/Y5W0HRZnBt35w==} + dev: false + + /@pagefind/linux-arm64@1.1.0: + resolution: {integrity: sha512-8zjYCa2BtNEL7KnXtysPtBELCyv5DSQ4yHeK/nsEq6w4ToAMTBl0K06khqxdSGgjMSwwrxvLzq3so0LC5Q14dA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@pagefind/linux-x64@1.1.0: + resolution: {integrity: sha512-4lsg6VB7A6PWTwaP8oSmXV4O9H0IHX7AlwTDcfyT+YJo/sPXOVjqycD5cdBgqNLfUk8B9bkWcTDCRmJbHrKeCw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@pagefind/windows-x64@1.1.0: + resolution: {integrity: sha512-OboCM76BcMKT9IoSfZuFhiqMRgTde8x4qDDvKulFmycgiJrlL5WnIqBHJLQxZq+o2KyZpoHF97iwsGAm8c32sQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm-eabi@4.18.0: + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm-eabi@4.19.0: + resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm64@4.18.0: + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm64@4.19.0: + resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-arm64@4.18.0: + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-arm64@4.19.0: + resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-x64@4.18.0: + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-x64@4.19.0: + resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.19.0: + resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.18.0: + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.19.0: + resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.18.0: + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.19.0: + resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-musl@4.18.0: + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-musl@4.19.0: + resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.19.0: + resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.18.0: + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.19.0: + resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.18.0: + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.19.0: + resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-gnu@4.18.0: + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-gnu@4.19.0: + resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-musl@4.18.0: + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-musl@4.19.0: + resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.18.0: + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.19.0: + resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.18.0: + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.19.0: + resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-x64-msvc@4.18.0: + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-x64-msvc@4.19.0: + resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@shikijs/core@1.11.0: + resolution: {integrity: sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + dev: false + + /@ts-morph/common@0.19.0: + resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} + dependencies: + fast-glob: 3.3.2 + minimatch: 7.4.6 + mkdirp: 2.1.6 + path-browserify: 1.0.1 + + /@ts-morph/common@0.22.0: + resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} + dependencies: + fast-glob: 3.3.2 + minimatch: 9.0.5 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + dev: false + + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@tybys/wasm-util@0.9.0: + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + dependencies: + tslib: 2.6.3 + dev: true + + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.24.9 + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + dependencies: + '@babel/types': 7.24.9 + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 18.16.9 + dev: false + + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + dependencies: + '@types/express-serve-static-core': 4.19.5 + '@types/node': 18.16.9 + dev: false + + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + dev: false + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/diff@5.2.1: + resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==} + dev: true + + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 9.6.0 + '@types/estree': 1.0.5 + dev: false + + /@types/eslint@9.6.0: + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: false + + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: false + + /@types/express-serve-static-core@4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + dependencies: + '@types/node': 18.16.9 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: false + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + dev: false + + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 18.16.9 + dev: true + + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: false + + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: false + + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/lodash.template@4.5.3: + resolution: {integrity: sha512-Mo0UYKLu1oXgkV9TVoXZLlXXjyIXlW7ZQRxi/4gQJmzJr63dmicE8gG0OkPjYTKBrBic852q0JzqrtNUWLBIyA==} + dependencies: + '@types/lodash': 4.17.7 + dev: true + + /@types/lodash@4.17.7: + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + dev: true + + /@types/mdast@4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/mdx@2.0.13: + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + dev: false + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: false + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + + /@types/mute-stream@0.0.4: + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + dependencies: + '@types/node': 20.14.11 + dev: false + + /@types/nlcst@2.0.3: + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: true + + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false + + /@types/node@18.16.9: + resolution: {integrity: sha512-IeB32oIV4oGArLrd7znD2rkHQ6EDCM+2Sr76dJnrHwv9OHBTTM6nuDLK9bmikXzPa0ZlWMWtRGo/Uw4mrzQedA==} + + /@types/node@20.14.11: + resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} + dependencies: + undici-types: 5.26.5 + + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: true + + /@types/prompts@2.4.9: + resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} + dependencies: + '@types/node': 18.16.9 + kleur: 3.0.3 + dev: true + + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + dev: false + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: false + + /@types/retry@0.12.2: + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + dev: false + + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 18.16.9 + dev: false + + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + dependencies: + '@types/express': 4.17.21 + dev: false + + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 18.16.9 + '@types/send': 0.17.4 + dev: false + + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false + + /@types/wrap-ansi@3.0.0: + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + dev: false + + /@types/ws@8.5.11: + resolution: {integrity: sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: false + + /@verdaccio/auth@7.0.0-next-7.16: + resolution: {integrity: sha512-jOfyBjBwCN+XqVKrjZSVQLGm1EOPKsKtaLzG9g9DyBUa89eMbjsRfA9g/ipf7jTuG1NZrZRQ68nzpGVbpEbC9Q==} + engines: {node: '>=18'} + dependencies: + '@verdaccio/config': 7.0.0-next-7.16 + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/loaders': 7.0.0-next-7.16 + '@verdaccio/logger': 7.0.0-next-7.16 + '@verdaccio/signature': 7.0.0-next-7.5 + '@verdaccio/utils': 7.0.0-next-7.16 + debug: 4.3.4 + lodash: 4.17.21 + verdaccio-htpasswd: 12.0.0-next-7.16 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/commons-api@10.2.0: + resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} + engines: {node: '>=8'} + dependencies: + http-errors: 2.0.0 + http-status-codes: 2.2.0 + dev: true + + /@verdaccio/config@7.0.0-next-7.16: + resolution: {integrity: sha512-y7a0cb6LdoJxFM2astIQjn7kfOwTQqSfpgzf/B67HIr9k45Q0E6HDrDQ0d+FcCGU0iI+ftAAM7+sv+nOYEEvNw==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/utils': 7.0.0-next-7.16 + debug: 4.3.4 + js-yaml: 4.1.0 + lodash: 4.17.21 + minimatch: 7.4.6 + yup: 0.32.11 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/core@7.0.0-next-7.16: + resolution: {integrity: sha512-mDKZ///tK0BeghoAfuOoN9x7RTNSd16ChG8D9OrSBtE/fGQxoVu9+hjcDuYmPPpZuwrt/6B5ooFutg36xWaopg==} + engines: {node: '>=12'} + dependencies: + ajv: 8.12.0 + core-js: 3.35.0 + http-errors: 2.0.0 + http-status-codes: 2.3.0 + process-warning: 1.0.0 + semver: 7.6.0 + dev: true + + /@verdaccio/file-locking@10.3.1: + resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} + engines: {node: '>=12'} + dependencies: + lockfile: 1.0.4 + dev: true + + /@verdaccio/file-locking@12.0.0-next.1: + resolution: {integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==} + engines: {node: '>=12'} + dependencies: + lockfile: 1.0.4 + dev: true + + /@verdaccio/loaders@7.0.0-next-7.16: + resolution: {integrity: sha512-C671ipk7grPmcsN3NG/XLUi60U3WjIgxKb5puowAPuvwXYN1LZWI71CXroDzA5D71hxirN8CZ4+QQytE15NBXg==} + engines: {node: '>=18'} + dependencies: + '@verdaccio/logger': 7.0.0-next-7.16 + debug: 4.3.4 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/local-storage-legacy@11.0.2: + resolution: {integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/commons-api': 10.2.0 + '@verdaccio/file-locking': 10.3.1 + '@verdaccio/streams': 10.2.1 + async: 3.2.4 + debug: 4.3.4 + lodash: 4.17.21 + lowdb: 1.0.0 + mkdirp: 1.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/logger-7@7.0.0-next-7.16: + resolution: {integrity: sha512-91R7zR+NjkT8mP0VXuQTjjPKnaRPLHqQEksXGhn5waAqYnsE9dqKcXXIAy9t3heP0ZbOQiIoBMEBmMxU8VmaiA==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/logger-commons': 7.0.0-next-7.16 + pino: 7.11.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/logger-commons@7.0.0-next-7.16: + resolution: {integrity: sha512-uGchjJUFEtksGLQ57EIjbMU5yq/6yf9Dfuz9ZTNE99meyDJndUAcCrvGvL3DoItDqFYt36HHqe/nzhC9XFwDfQ==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/logger-prettify': 7.0.0-next-7.3 + colorette: 2.0.20 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/logger-prettify@7.0.0-next-7.3: + resolution: {integrity: sha512-xPes4BuxEl1MUvDlYWO8oM3jcO3718p+ub7kx4kEGB48nTjF4wICkf/XdERj+cusE1dCodRWByNt9Hu32ER/JA==} + engines: {node: '>=12'} + dependencies: + colorette: 2.0.20 + dayjs: 1.11.10 + lodash: 4.17.21 + pino-abstract-transport: 1.1.0 + sonic-boom: 3.8.0 + dev: true + + /@verdaccio/logger@7.0.0-next-7.16: + resolution: {integrity: sha512-BdcpSKCiiqKSgtsObXDDqoZupJBkMZUz1iMtptA29eBbtytyHbIx44MZDyUgqfAaqD9/q4NufFjSNTwYKF3Z8w==} + engines: {node: '>=18'} + dependencies: + '@verdaccio/logger-commons': 7.0.0-next-7.16 + pino: 8.17.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/middleware@7.0.0-next-7.16: + resolution: {integrity: sha512-4UPRd+B80LBUd7DYS9e8XAOsY8b5edVv2Kd/RiGRq34IEJ1rGDy2Nz67GTYnDxwxMwLb54PkDp0qMrs+lmn46g==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/config': 7.0.0-next-7.16 + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/url': 12.0.0-next-7.16 + '@verdaccio/utils': 7.0.0-next-7.16 + debug: 4.3.4 + express: 4.19.2 + express-rate-limit: 5.5.1 + lodash: 4.17.21 + lru-cache: 7.18.3 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/search-indexer@7.0.0-next-7.2: + resolution: {integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==} + engines: {node: '>=12'} + dev: true + + /@verdaccio/signature@7.0.0-next-7.5: + resolution: {integrity: sha512-xF0xGi10HOAQ7Mkwf6dC2fjaBrdxxqXE/HMh/l/O5/LpWoGFZ6xsm/3ZieVRJtIq/qvL5pmmO5Tn8lPS7pm5SQ==} + engines: {node: '>=14'} + dependencies: + debug: 4.3.4 + jsonwebtoken: 9.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/streams@10.2.1: + resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} + engines: {node: '>=12', npm: '>=5'} + dev: true + + /@verdaccio/tarball@12.0.0-next-7.16: + resolution: {integrity: sha512-yZPks89XTa+tyXjeJ/OhASVzuQXigcw5OYPbHevhlO2lKoCFaiiqSSmxAOIeJ80hbTjwvdLVDDpiHe8BJ9Uhxw==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/url': 12.0.0-next-7.16 + '@verdaccio/utils': 7.0.0-next-7.16 + debug: 4.3.4 + gunzip-maybe: 1.4.2 + lodash: 4.17.21 + tar-stream: 3.1.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/ui-theme@7.0.0-next-7.16: + resolution: {integrity: sha512-pub3CMaGkUlQmuA5wLxS6n5NwMXsZRy3Gz8hACnidsZ8VET5AwXMNoWtL1/hVbBryclCQ4f3CFNlexcihy1KgA==} + dev: true + + /@verdaccio/url@12.0.0-next-7.16: + resolution: {integrity: sha512-qHHnaTXkroP5l2FIpVZYE8lIE3UvmjJ2jSqm92mm/9wKlj4R0DiBgELj/ZRFgrPnZYw1MFDCodahfDx2gIozpw==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + debug: 4.3.4 + lodash: 4.17.21 + validator: 13.11.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@verdaccio/utils@7.0.0-next-7.16: + resolution: {integrity: sha512-OQFLRUwT3ovnPEREGoIXdhKAnr+/0LbxnhcstandRmmFtuAG1BGWMO8vSoXw2YT0PL9zTMsDTrS5hMOALW/GXQ==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + lodash: 4.17.21 + minimatch: 7.4.6 + semver: 7.6.0 + dev: true + + /@vitejs/plugin-basic-ssl@1.1.0(vite@5.3.2): + resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} + engines: {node: '>=14.6.0'} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + dependencies: + vite: 5.3.2(@types/node@20.14.11)(less@4.2.0)(sass@1.77.6)(terser@5.29.2) + dev: false + + /@volar/kit@2.4.0-alpha.18(typescript@5.5.3): + resolution: {integrity: sha512-dZMSNhesh23lhd61ax2l04IgIcYofAjm8M+5BKAmX47ROweyc8RrrslszCFUJynlmXx6JS1PoHqvo8+E0aAYQQ==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + typesafe-path: 0.2.2 + typescript: 5.5.3 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/language-core@2.4.0-alpha.18: + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} + dependencies: + '@volar/source-map': 2.4.0-alpha.18 + dev: false + + /@volar/language-server@2.4.0-alpha.18: + resolution: {integrity: sha512-dciHEE/R5kzI0bY71QfkoCVQ3cQI6g9MHfA4oIP6UhnJy0CdleUalWSygOXoD3Nq7Yk6wn2BRrb1PP5MsadY/Q==} + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/snapshot-document': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/language-service@2.4.0-alpha.18: + resolution: {integrity: sha512-EuetrtbEtudi9buinWAG5U3Jam5dY27zXd/7GYnx542kBwanWOBM8i4DAQd0z7M11fOxXgybxPA933uaSyaOog==} + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/snapshot-document@2.4.0-alpha.18: + resolution: {integrity: sha512-JAeclEly/wnILhR4Pu9MpgBLInZJH49O1zoy8fU+pk5I+zpv7JIEby5z2UFAS60+sIDnxBdAGd7rZ5VibE70vg==} + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + dev: false + + /@volar/source-map@2.4.0-alpha.18: + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} + dev: false + + /@volar/typescript@2.4.0-alpha.18: + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + dev: false + + /@vscode/emmet-helper@2.9.3: + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + dependencies: + emmet: 2.4.7 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + dev: false + + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: false + + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: false + + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: false + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: false + + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + dev: false + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: false + + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: false + + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + dev: false + + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: false + + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + dev: false + + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: false + + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + dev: false + + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: false + + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + dev: false + + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: false + + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + dev: false + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: false + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: false + + /@yarnpkg/lockfile@1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: true + + /@yarnpkg/parsers@3.0.0-rc.46: + resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} + engines: {node: '>=14.15.0'} + dependencies: + js-yaml: 3.14.1 + tslib: 2.6.3 + dev: true + + /@zkochan/js-yaml@0.0.7: + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-import-attributes@1.9.5(acorn@8.12.1): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.12.1 + dev: false + + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.1 + dev: false + + /acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 + dev: true + + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: true + + /adjust-sourcemap-loader@4.0.0: + resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} + engines: {node: '>=8.9'} + dependencies: + loader-utils: 2.0.4 + regex-parser: 2.3.0 + dev: false + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: false + + /ajv-formats@3.0.1(ajv@8.16.0): + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.16.0 + dev: false + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: false + + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + dev: false + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: false + + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /apache-md5@1.1.8: + resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} + engines: {node: '>=8'} + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + /array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.3 + dev: false + + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false + + /astro-expressive-code@0.35.3(astro@4.12.2): + resolution: {integrity: sha512-f1L1m3J3EzZHDEox6TXmuKo5fTSbaNxE/HU0S0UQmvlCowtOKnU/LOsoDwsbQSYGKz+fdLRPsCjFMiKqEoyfcw==} + peerDependencies: + astro: ^4.0.0-beta || ^3.3.0 + dependencies: + astro: 4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3) + rehype-expressive-code: 0.35.3 + dev: false + + /astro@4.12.2(@types/node@20.14.11)(less@4.2.0)(typescript@5.5.3): + resolution: {integrity: sha512-l6OmqlL+FiuSi9x6F+EGZitteOznq1JffOil7st7cdqeMCTEIym4oagI1a6zp6QekliKWEEZWdplGhgh1k1f7Q==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + dependencies: + '@astrojs/compiler': 2.9.2 + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/markdown-remark': 5.2.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.24.9 + '@babel/generator': 7.24.10 + '@babel/parser': 7.24.8 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + '@types/babel__core': 7.20.5 + '@types/cookie': 0.6.0 + acorn: 8.12.1 + aria-query: 5.3.0 + axobject-query: 4.1.0 + boxen: 7.1.1 + chokidar: 3.6.0 + ci-info: 4.0.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.6.0 + cssesc: 3.0.0 + debug: 4.3.5 + deterministic-object-hash: 2.0.2 + devalue: 5.0.0 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.3 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + execa: 8.0.1 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.10 + mrmime: 2.0.0 + ora: 8.0.1 + p-limit: 6.1.0 + p-queue: 8.0.1 + path-to-regexp: 6.2.2 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.1 + semver: 7.6.3 + shiki: 1.11.0 + string-width: 7.2.0 + strip-ansi: 7.1.0 + tsconfck: 3.1.1(typescript@5.5.3) + unist-util-visit: 5.0.0 + vfile: 6.0.2 + vite: 5.3.4(@types/node@20.14.11)(less@4.2.0) + vitefu: 0.2.5(vite@5.3.4) + which-pm: 3.0.0 + yargs-parser: 21.1.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.1(zod@3.23.8) + optionalDependencies: + sharp: 0.33.4 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: false + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: true + + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.2 + caniuse-lite: 1.0.30001643 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.1 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: false + + /autoprefixer@10.4.19(postcss@8.4.39): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.2 + caniuse-lite: 1.0.30001643 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.1 + postcss: 8.4.39 + postcss-value-parser: 4.2.0 + dev: false + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4@1.13.0: + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} + dev: true + + /axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + dependencies: + follow-redirects: 1.15.6(debug@4.3.5) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + dev: false + + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + + /babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.92.1): + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + dependencies: + '@babel/core': 7.24.7 + find-cache-dir: 4.0.0 + schema-utils: 4.2.0 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /babel-plugin-const-enum@1.2.0(@babel/core@7.24.9): + resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + '@babel/traverse': 7.24.8 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-macros@2.8.0: + resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} + dependencies: + '@babel/runtime': 7.24.8 + cosmiconfig: 6.0.0 + resolve: 1.22.8 + dev: true + + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.9): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.24.9 + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + core-js-compat: 3.37.1 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.9): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + core-js-compat: 3.37.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.9): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.24.9): + resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} + peerDependencies: + '@babel/core': ^7 + '@babel/traverse': ^7 + peerDependenciesMeta: + '@babel/traverse': + optional: true + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + requiresBuild: true + optional: true + + /bare-fs@2.3.1: + resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + requiresBuild: true + dependencies: + bare-events: 2.4.2 + bare-path: 2.1.3 + bare-stream: 2.1.3 + dev: false + optional: true + + /bare-os@2.4.0: + resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + requiresBuild: true + dev: false + optional: true + + /bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + requiresBuild: true + dependencies: + bare-os: 2.4.0 + dev: false + optional: true + + /bare-stream@2.1.3: + resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + requiresBuild: true + dependencies: + streamx: 2.18.0 + dev: false + optional: true + + /base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: false + + /bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + dev: false + + /bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + dev: false + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + dev: true + + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: false + + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: false + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: false + + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.2.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + + /browserify-zlib@0.1.4: + resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} + dependencies: + pako: 0.2.9 + dev: true + + /browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001643 + electron-to-chromium: 1.4.832 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.2) + + /buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + dependencies: + run-applescript: 7.0.0 + dev: false + + /bundle-require@4.2.1(esbuild@0.17.19): + resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.17.19 + load-tsconfig: 0.2.5 + dev: true + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false + + /caniuse-lite@1.0.30001643: + resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + + /chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + dev: false + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true + + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: false + + /class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + dependencies: + clsx: 2.0.0 + dev: false + + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: false + + /cli-spinners@2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: false + + /clipanion@3.2.1(typanion@3.14.0): + resolution: {integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==} + peerDependencies: + typanion: '*' + dependencies: + typanion: 3.14.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: false + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + dev: false + + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false + + /code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: false + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + /columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: false + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: false + + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: false + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: false + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: false + + /copy-webpack-plugin@12.0.2(webpack@5.92.1): + resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 14.0.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + dependencies: + browserslist: 4.23.2 + + /core-js@3.35.0: + resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} + requiresBuild: true + dev: true + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@8.3.6(typescript@4.9.5): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 4.9.5 + dev: false + + /cosmiconfig@9.0.0(typescript@5.5.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.5.3 + dev: false + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /critters@0.0.24: + resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==} + dependencies: + chalk: 4.1.2 + css-select: 5.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + htmlparser2: 8.0.2 + postcss: 8.4.39 + postcss-media-query-parser: 0.2.3 + dev: false + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /css-loader@7.1.2(webpack@5.92.1): + resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.27.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) + postcss-modules-scope: 3.2.0(postcss@8.4.39) + postcss-modules-values: 4.0.0(postcss@8.4.39) + postcss-value-parser: 4.2.0 + semver: 7.6.3 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: false + + /css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + dev: false + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: false + + /dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + dev: false + + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + dev: false + + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: false + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /destroy@1.2.0: + 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'} + dev: true + + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: false + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: false + + /detect-port@1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} + hasBin: true + dependencies: + address: 1.2.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + dependencies: + base-64: 1.0.0 + dev: false + + /devalue@5.0.0: + resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} + dev: false + + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + dev: false + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: false + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: false + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: false + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: false + + /dotenv-expand@11.0.6: + resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} + engines: {node: '>=12'} + dependencies: + dotenv: 16.4.5 + dev: true + + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: true + + /dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} + dev: true + + /dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + engines: {node: '>=4'} + dev: false + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + dev: true + + /duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + /ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.9.2 + dev: true + + /electron-to-chromium@1.4.832: + resolution: {integrity: sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==} + + /emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + dev: false + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: false + + /envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: false + optional: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + dev: false + + /esbuild-wasm@0.21.5: + resolution: {integrity: sha512-L/FlOPMMFtw+6qPAbuPvJXdrOYOp9yx/PEwSrIZW0qghY4vgV003evdYDwqQ/9ENMQI0B6RMod9xT4FHtto6OQ==} + engines: {node: '>=12'} + hasBin: true + dev: false + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + dev: false + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: false + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + dev: false + + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false + + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.8.6 + source-map: 0.7.4 + dev: false + + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.2 + dev: false + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /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'} + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: false + + /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.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: false + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + + /express-rate-limit@5.5.1: + resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} + dev: true + + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /expressive-code@0.35.3: + resolution: {integrity: sha512-XjWWUCxS4uQjPoRM98R7SNWWIYlFEaOeHm1piWv+c7coHCekuWno81thsc3g/UJ+DajNtOEsIQIAAcsBQZ8LMg==} + dependencies: + '@expressive-code/core': 0.35.3 + '@expressive-code/plugin-frames': 0.35.3 + '@expressive-code/plugin-shiki': 0.35.3 + '@expressive-code/plugin-text-markers': 0.35.3 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: true + + /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 + dev: true + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + /fast-glob@3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} + 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.7 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + 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.7 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + dev: true + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: false + + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + dev: false + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + dev: false + + /find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: false + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.7 + pkg-dir: 4.2.0 + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + /flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + dev: false + + /follow-redirects@1.15.6(debug@4.3.5): + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.5 + + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + dependencies: + js-yaml: 3.14.1 + dev: true + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + 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 + dev: true + + /fs.realpath@1.0.0: + 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 + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: false + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: false + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + /glob@6.0.4: + resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + + /gunzip-maybe@1.4.2: + resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} + hasBin: true + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + dev: true + + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: false + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.0 + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 + dev: false + + /hast-util-from-html@2.0.1: + resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.1.2 + vfile: 6.0.2 + vfile-message: 4.0.2 + dev: false + + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.2 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + dev: false + + /hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hast-util-is-body-ok-link@3.0.0: + resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.0 + hast-util-is-element: 3.0.0 + dev: false + + /hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-select@6.0.2: + resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.0.5 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.0 + hast-util-whitespace: 3.0.0 + not: 0.1.0 + nth-check: 2.1.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.4 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + dev: false + + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.6 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + dev: false + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + dev: false + + /hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + dev: false + + /hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + lru-cache: 10.4.3 + dev: true + + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: false + + /html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + dev: false + + /html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + dev: false + + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false + + /html-whitespace-sensitive-tag-names@3.0.0: + resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==} + dev: false + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: false + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: false + + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: false + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: false + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: false + + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.21 + '@types/http-proxy': 1.17.14 + http-proxy: 1.18.1(debug@4.3.5) + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.7 + transitivePeerDependencies: + - debug + dev: false + + /http-proxy-middleware@3.0.0: + resolution: {integrity: sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/http-proxy': 1.17.14 + debug: 4.3.5 + http-proxy: 1.18.1(debug@4.3.5) + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.7 + transitivePeerDependencies: + - supports-color + dev: false + + /http-proxy@1.18.1(debug@4.3.5): + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.6(debug@4.3.5) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: false + + /http-signature@1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.18.0 + dev: true + + /http-status-codes@2.2.0: + resolution: {integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==} + dev: true + + /http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@6.2.1: + resolution: {integrity: sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + + /https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: false + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: false + + /hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /icss-utils@5.1.0(postcss@8.4.39): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.39 + dev: false + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /inline-style-parser@0.2.3: + resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + dev: false + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + /ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + dev: false + + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + + /is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.2 + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-deflate@1.0.0: + resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-gzip@1.0.0: + resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: false + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: false + + /is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: false + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: false + + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: false + + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + dev: false + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: false + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: false + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: false + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: false + + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.24.9 + '@babel/parser': 7.24.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + dev: false + + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.16.9 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: false + + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + dev: false + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: false + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + dev: false + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.2 + semver: 7.6.3 + dev: true + + /jsprim@2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: true + + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: true + + /karma-source-map-support@1.4.0: + resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} + dependencies: + source-map-support: 0.5.21 + dev: false + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + /launch-editor@2.8.0: + resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} + dependencies: + picocolors: 1.0.1 + shell-quote: 1.8.1 + dev: false + + /less-loader@12.2.0(less@4.2.0)(webpack@5.92.1): + resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + less: 4.2.0 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.3 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + dev: false + + /license-webpack-plugin@4.0.2(webpack@5.92.1): + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} + peerDependencies: + webpack: '*' + peerDependenciesMeta: + webpack: + optional: true + dependencies: + webpack: 5.92.1(esbuild@0.21.5) + webpack-sources: 3.2.3 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + /lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /lines-and-columns@2.0.4: + resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /lmdb@3.0.12: + resolution: {integrity: sha512-JnoEulTgveoC64vlYJ9sufGLuNkk6TcxSYpKxSC9aM42I61jIv3pQH0fgb6qW7HV0+FNqA3g1WCQQYfhfawGoQ==} + hasBin: true + requiresBuild: true + dependencies: + msgpackr: 1.11.0 + node-addon-api: 6.1.0 + node-gyp-build-optional-packages: 5.2.2 + ordered-binary: 1.5.1 + weak-lru-cache: 1.2.2 + optionalDependencies: + '@lmdb/lmdb-darwin-arm64': 3.0.12 + '@lmdb/lmdb-darwin-x64': 3.0.12 + '@lmdb/lmdb-linux-arm': 3.0.12 + '@lmdb/lmdb-linux-arm64': 3.0.12 + '@lmdb/lmdb-linux-x64': 3.0.12 + '@lmdb/lmdb-win32-x64': 3.0.12 + dev: false + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: false + + /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 + dev: false + + /loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: false + + /lockfile@1.0.4: + resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} + dependencies: + signal-exit: 3.0.7 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: true + + /lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: true + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: true + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: true + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: true + + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + + /lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.2.0 + is-unicode-supported: 1.3.0 + dev: false + + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: false + + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + + /lowdb@1.0.0: + resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + is-promise: 2.2.2 + lodash: 4.17.21 + pify: 3.0.0 + steno: 0.4.4 + dev: true + + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true + + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: false + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + dev: false + optional: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + dev: false + + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: false + + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-remove-position: 5.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + dev: false + + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + dev: false + + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.4 + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /memfs@4.9.3: + resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==} + engines: {node: '>= 4.0.0'} + dependencies: + '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) + '@jsonjoy.com/util': 1.2.0(tslib@2.6.3) + tree-dump: 1.0.2(tslib@2.6.3) + tslib: 2.6.3 + dev: false + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-directive@3.0.1: + resolution: {integrity: sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + dev: false + + /micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.0 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + '@types/unist': 3.0.2 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.5 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: false + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + + /mini-css-extract-plugin@2.9.0(webpack@5.92.1): + resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.2.0 + tapable: 2.2.1 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: false + + /minimatch@3.1.2: + 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==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + dev: true + + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /msgpackr-extract@3.0.3: + resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} + hasBin: true + requiresBuild: true + dependencies: + node-gyp-build-optional-packages: 5.2.2 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + dev: false + optional: true + + /msgpackr@1.11.0: + resolution: {integrity: sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==} + optionalDependencies: + msgpackr-extract: 3.0.3 + dev: false + + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false + + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + dev: false + + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: false + + /mv@2.1.1: + resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} + engines: {node: '>=0.8.0'} + dependencies: + mkdirp: 0.5.6 + ncp: 2.0.0 + rimraf: 2.4.5 + dev: true + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /nanoclone@0.2.1: + resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + + /ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + dev: true + + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + dev: false + optional: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + /nice-napi@1.0.2: + resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} + os: ['!win32'] + requiresBuild: true + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.8.1 + dev: false + optional: true + + /nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + dependencies: + '@types/nlcst': 2.0.3 + dev: false + + /node-abi@3.65.0: + resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.3 + dev: false + + /node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + requiresBuild: true + dev: false + optional: true + + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + dev: false + + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: false + + /node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: false + + /node-gyp-build-optional-packages@5.2.2: + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + hasBin: true + dependencies: + detect-libc: 2.0.3 + dev: false + + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + dev: true + + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} + dev: false + + /npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.2 + proc-log: 3.0.0 + semver: 7.6.3 + validate-npm-package-name: 5.0.1 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: false + + /nx@19.5.1: + resolution: {integrity: sha512-aKctNLiK2hXl2536/qwnAqvSzNlIGwJdTBl2ajOnSyNrGWuLDMllTNTdp0/lU0QBJ2NSod3JbBQFV7cc9ILs4w==} + hasBin: true + requiresBuild: true + peerDependencies: + '@swc-node/register': ^1.8.0 + '@swc/core': ^1.3.85 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + '@nrwl/tao': 19.5.1 + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.0-rc.46 + '@zkochan/js-yaml': 0.0.7 + axios: 1.7.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 8.0.1 + dotenv: 16.4.5 + dotenv-expand: 11.0.6 + enquirer: 2.3.6 + figures: 3.2.0 + flat: 5.0.2 + front-matter: 4.0.2 + fs-extra: 11.2.0 + ignore: 5.3.1 + jest-diff: 29.7.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.4 + minimatch: 9.0.3 + node-machine-id: 1.1.12 + npm-run-path: 4.0.1 + open: 8.4.2 + ora: 5.3.0 + semver: 7.6.3 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar-stream: 2.2.0 + tmp: 0.2.3 + tsconfig-paths: 4.2.0 + tslib: 2.6.3 + yargs: 17.7.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@nx/nx-darwin-arm64': 19.5.1 + '@nx/nx-darwin-x64': 19.5.1 + '@nx/nx-freebsd-x64': 19.5.1 + '@nx/nx-linux-arm-gnueabihf': 19.5.1 + '@nx/nx-linux-arm64-gnu': 19.5.1 + '@nx/nx-linux-arm64-musl': 19.5.1 + '@nx/nx-linux-x64-gnu': 19.5.1 + '@nx/nx-linux-x64-musl': 19.5.1 + '@nx/nx-win32-arm64-msvc': 19.5.1 + '@nx/nx-win32-x64-msvc': 19.5.1 + transitivePeerDependencies: + - debug + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: false + + /on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + dev: true + + /on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: false + + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + dev: false + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: false + + /ora@6.3.1: + resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + chalk: 5.2.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + strip-ansi: 7.1.0 + wcwidth: 1.0.1 + dev: false + + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + dev: false + + /ordered-binary@1.5.1: + resolution: {integrity: sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==} + dev: false + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: true + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.1.1 + dev: false + + /p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.1.1 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: false + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.2 + dev: false + + /p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + dependencies: + '@types/retry': 0.12.2 + is-network-error: 1.1.0 + retry: 0.13.1 + dev: false + + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + dev: false + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + /pagefind@1.1.0: + resolution: {integrity: sha512-1nmj0/vfYcMxNEQj0YDRp6bTVv9hI7HLdPhK/vBBYlrnwjATndQvHyicj5Y7pUHrpCFZpFnLVQXIF829tpFmaw==} + hasBin: true + optionalDependencies: + '@pagefind/darwin-arm64': 1.1.0 + '@pagefind/darwin-x64': 1.1.0 + '@pagefind/linux-arm64': 1.1.0 + '@pagefind/linux-x64': 1.1.0 + '@pagefind/windows-x64': 1.1.0 + dev: false + + /pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.2 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.2 + dev: false + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: false + + /parse5-html-rewriting-stream@7.0.0: + resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==} + dependencies: + entities: 4.5.0 + parse5: 7.1.2 + parse5-sax-parser: 7.0.0 + dev: false + + /parse5-sax-parser@7.0.0: + resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} + dependencies: + parse5: 7.1.2 + dev: false + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: false + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: false + + /peek-stream@1.1.3: + resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + dependencies: + buffer-from: 1.1.2 + duplexify: 3.7.1 + through2: 2.0.5 + dev: true + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + dev: false + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + /pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + dependencies: + duplexify: 4.1.3 + split2: 4.2.0 + dev: true + + /pino-abstract-transport@1.1.0: + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + dev: true + + /pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + dev: true + + /pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + dev: true + + /pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 + dev: true + + /pino@8.17.2: + resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.1.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 3.8.1 + thread-stream: 2.7.0 + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + /piscina@4.6.1: + resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} + optionalDependencies: + nice-napi: 1.0.2 + dev: false + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + + /pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + dependencies: + find-up: 6.3.0 + dev: false + + /pkginfo@0.4.1: + resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /postcss-import@15.1.0(postcss@8.4.39): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.39 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: false + + /postcss-js@4.0.1(postcss@8.4.39): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.39 + dev: false + + /postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.39): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.2 + postcss: 8.4.39 + yaml: 2.4.5 + dev: false + + /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.5.3)(webpack@5.92.1): + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + cosmiconfig: 9.0.0(typescript@5.5.3) + jiti: 1.21.6 + postcss: 8.4.38 + semver: 7.6.3 + webpack: 5.92.1(esbuild@0.21.5) + transitivePeerDependencies: + - typescript + dev: false + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: false + + /postcss-modules-extract-imports@3.1.0(postcss@8.4.39): + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.39 + dev: false + + /postcss-modules-local-by-default@4.0.5(postcss@8.4.39): + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-selector-parser: 6.1.1 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-modules-scope@3.2.0(postcss@8.4.39): + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.39 + postcss-selector-parser: 6.1.1 + dev: false + + /postcss-modules-values@4.0.0(postcss@8.4.39): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + dev: false + + /postcss-nested@6.2.0(postcss@8.4.39): + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.39 + postcss-selector-parser: 6.1.1 + dev: false + + /postcss-selector-parser@6.1.1: + resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: false + + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + dev: false + + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.65.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + + /preferred-pm@3.1.4: + resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.2.0 + dev: true + + /preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + dev: false + + /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==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + dev: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + + /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==} + + /process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + dev: true + + /process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + dev: true + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: false + + /property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + dev: true + + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + dev: false + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + dev: false + optional: true + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + + /pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /qs@6.10.4: + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + + /quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + /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@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + dev: true + + /real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + dev: true + + /recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.6.3 + dev: false + + /reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + 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.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.24.8 + + /regex-parser@2.3.0: + resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} + dev: false + + /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 + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + + /rehype-expressive-code@0.35.3: + resolution: {integrity: sha512-kj43Rg+WzYUs8RRr6XyBr60pnrIZEgbmn9yJoV6qka1UDpcx7r8icn6Q2uSAgaLtlEUy+HCPgQJraOZrA53LOQ==} + dependencies: + expressive-code: 0.35.3 + dev: false + + /rehype-format@5.0.0: + resolution: {integrity: sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==} + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.0 + rehype-minify-whitespace: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /rehype-minify-whitespace@6.0.0: + resolution: {integrity: sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==} + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.0 + dev: false + + /rehype-parse@9.0.0: + resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.1 + unified: 11.0.5 + dev: false + + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.2 + dev: false + + /rehype-stringify@10.0.0: + resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.1 + unified: 11.0.5 + dev: false + + /rehype@13.0.1: + resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.0 + rehype-stringify: 10.0.0 + unified: 11.0.5 + dev: false + + /remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-directive: 3.0.0 + micromark-extension-directive: 3.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.2 + dev: false + + /remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + dependencies: + retext: 9.0.0 + retext-smartypants: 6.1.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + dev: false + + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + dev: false + + /request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-url-loader@5.0.0: + resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} + engines: {node: '>=12'} + dependencies: + adjust-sourcemap-loader: 4.0.0 + convert-source-map: 1.9.0 + loader-utils: 2.0.4 + postcss: 8.4.39 + source-map: 0.6.1 + dev: false + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.15.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: false + + /retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + dev: false + + /retext-smartypants@6.1.0: + resolution: {integrity: sha512-LDPXg95346bqFZnDMHo0S7Rq5p64+B+N8Vz733+wPMDtwb9rCOs9LIdIEhrUOU+TAywX9St+ocQWJt8wrzivcQ==} + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + dev: false + + /retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + dev: false + + /retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + dev: false + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@2.4.5: + resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 6.0.4 + dev: true + + /rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 9.3.5 + dev: true + + /rimraf@5.0.9: + resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} + engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} + hasBin: true + dependencies: + glob: 10.4.5 + dev: false + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 + fsevents: 2.3.3 + dev: false + + /rollup@4.19.0: + resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.19.0 + '@rollup/rollup-android-arm64': 4.19.0 + '@rollup/rollup-darwin-arm64': 4.19.0 + '@rollup/rollup-darwin-x64': 4.19.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.19.0 + '@rollup/rollup-linux-arm-musleabihf': 4.19.0 + '@rollup/rollup-linux-arm64-gnu': 4.19.0 + '@rollup/rollup-linux-arm64-musl': 4.19.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.19.0 + '@rollup/rollup-linux-riscv64-gnu': 4.19.0 + '@rollup/rollup-linux-s390x-gnu': 4.19.0 + '@rollup/rollup-linux-x64-gnu': 4.19.0 + '@rollup/rollup-linux-x64-musl': 4.19.0 + '@rollup/rollup-win32-arm64-msvc': 4.19.0 + '@rollup/rollup-win32-ia32-msvc': 4.19.0 + '@rollup/rollup-win32-x64-msvc': 4.19.0 + fsevents: 2.3.3 + dev: false + + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + dev: false + + /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.3 + dev: false + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sass-loader@14.2.1(sass@1.77.6)(webpack@5.92.1): + resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + webpack: + optional: true + dependencies: + neo-async: 2.6.2 + sass: 1.77.6 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /sass@1.77.6: + resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.0 + dev: false + + /sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + dev: false + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: false + + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + ajv-keywords: 5.1.0(ajv@8.12.0) + dev: false + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: false + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + dependencies: + randombytes: 2.1.0 + dev: false + + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: false + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: false + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: false + + /sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + node-addon-api: 6.1.0 + prebuild-install: 7.1.2 + semver: 7.6.3 + simple-get: 4.0.1 + tar-fs: 3.0.6 + tunnel-agent: 0.6.0 + dev: false + + /sharp@0.33.4: + resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} + engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.4 + '@img/sharp-darwin-x64': 0.33.4 + '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-linux-arm': 0.33.4 + '@img/sharp-linux-arm64': 0.33.4 + '@img/sharp-linux-s390x': 0.33.4 + '@img/sharp-linux-x64': 0.33.4 + '@img/sharp-linuxmusl-arm64': 0.33.4 + '@img/sharp-linuxmusl-x64': 0.33.4 + '@img/sharp-wasm32': 0.33.4 + '@img/sharp-win32-ia32': 0.33.4 + '@img/sharp-win32-x64': 0.33.4 + dev: false + optional: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: false + + /shiki@1.11.0: + resolution: {integrity: sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng==} + dependencies: + '@shikijs/core': 1.11.0 + '@types/hast': 3.0.4 + dev: false + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: false + + /sitemap@7.1.2: + resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + dev: false + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: false + + /sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + + /sonic-boom@3.8.0: + resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + + /sonic-boom@3.8.1: + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map-loader@5.0.0(webpack@5.92.1): + resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.72.1 + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.0 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /source-map-support@0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + dev: true + + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.5 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: false + + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.5 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: false + + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: false + + /steno@0.4.4: + resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} + dependencies: + graceful-fs: 4.2.11 + dev: true + + /stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + dev: false + + /stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + dev: true + + /streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + /string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: false + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: false + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + + /strong-log-transformer@2.1.0: + resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} + engines: {node: '>=4'} + hasBin: true + dependencies: + duplexer: 0.1.2 + minimist: 1.2.8 + through: 2.3.8 + dev: true + + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + + /style-to-object@1.0.6: + resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} + dependencies: + inline-style-parser: 0.2.3 + dev: false + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /tailwind-merge@2.4.0: + resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==} + dev: false + + /tailwindcss@3.4.6: + resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.4.39 + postcss-import: 15.1.0(postcss@8.4.39) + postcss-js: 4.0.1(postcss@8.4.39) + postcss-load-config: 4.0.2(postcss@8.4.39) + postcss-nested: 6.2.0(postcss@8.4.39) + postcss-selector-parser: 6.1.1 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: false + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.1 + bare-path: 2.1.3 + dev: false + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + /tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.1): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.21.5 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.29.2 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: false + + /text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + dependencies: + b4a: 1.6.6 + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + + /thingies@1.21.0(tslib@2.6.3): + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + dependencies: + tslib: 2.6.3 + dev: false + + /thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + dependencies: + real-require: 0.1.0 + dev: true + + /thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + dependencies: + real-require: 0.2.0 + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: false + + /tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: false + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + /toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + dev: true + + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: true + + /tree-dump@1.0.2(tslib@2.6.3): + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + dependencies: + tslib: 2.6.3 + dev: false + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + /ts-morph@18.0.0: + resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} + dependencies: + '@ts-morph/common': 0.19.0 + code-block-writer: 12.0.0 + + /ts-morph@21.0.1: + resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + dependencies: + '@ts-morph/common': 0.22.0 + code-block-writer: 12.0.0 + dev: false + + /ts-node@10.9.1(@types/node@20.14.11)(typescript@5.5.3): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.14.11 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfck@3.1.1(typescript@5.5.3): + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.5.3 + dev: false + + /tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + /tsup@6.7.0(typescript@4.9.5): + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.2.1(esbuild@0.17.19) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.3.5 + esbuild: 0.17.19 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 3.29.4 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /typanion@3.14.0: + resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: false + + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typed-assert@1.0.9: + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} + dev: false + + /typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + dev: false + + /typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + dependencies: + semver: 7.6.3 + dev: false + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + /typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + + /uglify-js@3.19.0: + resolution: {integrity: sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /undici@6.19.2: + resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + engines: {node: '>=18.17'} + dev: false + + /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'} + 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'} + + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: false + + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.2 + dev: false + + /unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: false + + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + dependencies: + '@types/unist': 3.0.2 + array-iterate: 2.0.1 + dev: false + + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + /unix-crypt-td-js@1.1.4: + resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + /update-browserslist-db@1.1.0(browserslist@4.23.2): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.2 + escalade: 3.1.2 + picocolors: 1.0.1 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /utils-merge@1.0.1: + 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 + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: true + + /validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + /verdaccio-audit@12.0.0-next-7.16: + resolution: {integrity: sha512-iljdkRF7OWchLYXEunvKV54YrcyOvzoIHCSoPXtUlK5pd/tVE3PU9v+lXxyrd3dmnUkPl2EkddK04Zb/I0XvxQ==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/config': 7.0.0-next-7.16 + '@verdaccio/core': 7.0.0-next-7.16 + express: 4.19.2 + https-proxy-agent: 5.0.1 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /verdaccio-htpasswd@12.0.0-next-7.16: + resolution: {integrity: sha512-Pad9fRLG5IYvhfrynS2eDTHuFLpRUobo610TM/osw5vKhTzgUTHlau2u7xsDG6vTZtyHv5TzBzQUhTg+CUKO4g==} + engines: {node: '>=12'} + dependencies: + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/file-locking': 12.0.0-next.1 + apache-md5: 1.1.8 + bcryptjs: 2.4.3 + core-js: 3.35.0 + debug: 4.3.4 + http-errors: 2.0.0 + unix-crypt-td-js: 1.1.4 + transitivePeerDependencies: + - supports-color + dev: true + + /verdaccio@5.31.1(typanion@3.14.0): + resolution: {integrity: sha512-EbHcCjkadt+qnbchx+06FcgKkpU2wonqkymB1BEt+0p4fNOxeXR8IDCQbwlLpzurc4n9yt9197JCVTJFWa1ESw==} + engines: {node: '>=14'} + hasBin: true + dependencies: + '@cypress/request': 3.0.1 + '@verdaccio/auth': 7.0.0-next-7.16 + '@verdaccio/config': 7.0.0-next-7.16 + '@verdaccio/core': 7.0.0-next-7.16 + '@verdaccio/local-storage-legacy': 11.0.2 + '@verdaccio/logger-7': 7.0.0-next-7.16 + '@verdaccio/middleware': 7.0.0-next-7.16 + '@verdaccio/search-indexer': 7.0.0-next-7.2 + '@verdaccio/signature': 7.0.0-next-7.5 + '@verdaccio/streams': 10.2.1 + '@verdaccio/tarball': 12.0.0-next-7.16 + '@verdaccio/ui-theme': 7.0.0-next-7.16 + '@verdaccio/url': 12.0.0-next-7.16 + '@verdaccio/utils': 7.0.0-next-7.16 + JSONStream: 1.3.5 + async: 3.2.5 + clipanion: 3.2.1(typanion@3.14.0) + compression: 1.7.4 + cors: 2.8.5 + debug: 4.3.5 + envinfo: 7.13.0 + express: 4.19.2 + express-rate-limit: 5.5.1 + fast-safe-stringify: 2.1.1 + handlebars: 4.7.8 + js-yaml: 4.1.0 + jsonwebtoken: 9.0.2 + kleur: 4.1.5 + lodash: 4.17.21 + lru-cache: 7.18.3 + mime: 3.0.0 + mkdirp: 1.0.4 + mv: 2.1.1 + pkginfo: 0.4.1 + semver: 7.6.2 + validator: 13.12.0 + verdaccio-audit: 12.0.0-next-7.16 + verdaccio-htpasswd: 12.0.0-next-7.16 + transitivePeerDependencies: + - encoding + - supports-color + - typanion + dev: true + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + dependencies: + '@types/unist': 3.0.2 + vfile: 6.0.2 + dev: false + + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + + /vite@5.3.2(@types/node@20.14.11)(less@4.2.0)(sass@1.77.6)(terser@5.29.2): + resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + 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': 20.14.11 + esbuild: 0.21.5 + less: 4.2.0 + postcss: 8.4.39 + rollup: 4.19.0 + sass: 1.77.6 + terser: 5.29.2 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /vite@5.3.4(@types/node@20.14.11)(less@4.2.0): + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} + 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': 20.14.11 + esbuild: 0.21.5 + less: 4.2.0 + postcss: 8.4.39 + rollup: 4.19.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /vitefu@0.2.5(vite@5.3.4): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 5.3.4(@types/node@20.14.11)(less@4.2.0) + dev: false + + /volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + vscode-css-languageservice: 6.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@volar/language-service': 2.4.0-alpha.18 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + dev: false + + /volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + vscode-html-languageservice: 5.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /volar-service-prettier@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-FmBR4lsgFRGR3V0LnxZZal0WqdOJjuLL6mQSj4p57M15APtQwuocG/FiF+ONGFnwRXMOIBDBTCARdth+TKgL3A==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + vscode-uri: 3.0.8 + dev: false + + /volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + vscode-uri: 3.0.8 + dev: false + + /volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + dev: false + + /vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + + /vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + + /vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + dev: false + + /vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + dev: false + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: false + + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: false + + /vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.5 + dev: false + + /vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: false + + /vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: false + + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: false + + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: false + + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + + /weak-lru-cache@1.2.2: + resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} + dev: false + + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false + + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + dev: false + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webpack-dev-middleware@7.2.1(webpack@5.92.1): + resolution: {integrity: sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + colorette: 2.0.20 + memfs: 4.9.3 + mime-types: 2.1.35 + on-finished: 2.4.1 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /webpack-dev-server@5.0.4(webpack@5.92.1): + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.7 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.11 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.19.2 + graceful-fs: 4.2.11 + html-entities: 2.5.2 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.2.0 + launch-editor: 2.8.0 + open: 10.1.0 + p-retry: 6.2.0 + rimraf: 5.0.9 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.92.1(esbuild@0.21.5) + webpack-dev-middleware: 7.2.1(webpack@5.92.1) + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: false + + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: false + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: false + + /webpack-subresource-integrity@5.1.0(webpack@5.92.1): + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} + engines: {node: '>= 12'} + peerDependencies: + html-webpack-plugin: '>= 5.0.0-beta.1 < 6' + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + dependencies: + typed-assert: 1.0.9 + webpack: 5.92.1(esbuild@0.21.5) + dev: false + + /webpack@5.92.1(esbuild@0.21.5): + resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.1) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: false + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: false + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: false + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: false + + /which-pm@2.2.0: + resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true + + /which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + dependencies: + load-yaml-file: 0.2.0 + dev: false + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + dev: false + + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: false + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /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 + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /xhr2@0.2.1: + resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==} + engines: {node: '>= 6'} + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + dev: false + + /yup@0.32.11: + resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} + engines: {node: '>=10'} + dependencies: + '@babel/runtime': 7.24.8 + '@types/lodash': 4.17.7 + lodash: 4.17.21 + lodash-es: 4.17.21 + nanoclone: 0.2.1 + property-expr: 2.0.6 + toposort: 2.0.2 + dev: true + + /zod-to-json-schema@3.23.1(zod@3.23.8): + resolution: {integrity: sha512-oT9INvydob1XV0v1d2IadrR74rLtDInLvDFfAa1CG0Pmg/vxATk7I2gSelfj271mbzeM4Da0uuDQE/Nkj3DWNw==} + peerDependencies: + zod: ^3.23.3 + dependencies: + zod: 3.23.8 + dev: false + + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + dev: false + + /zone.js@0.14.8: + resolution: {integrity: sha512-48uh7MnVp4/OQDuCHeFdXw5d8xwPqFTvlHgPJ1LBFb5GaustLSZV+YUH0to5ygNyGpqTsjpbpt141U/j3pCfqQ==} + dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3ff5faa --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*" diff --git a/project.json b/project.json new file mode 100644 index 0000000..81ca50b --- /dev/null +++ b/project.json @@ -0,0 +1,14 @@ +{ + "name": "ui", + "$schema": "node_modules/nx/schemas/project-schema.json", + "targets": { + "local-registry": { + "executor": "@nx/js:verdaccio", + "options": { + "port": 4873, + "config": ".verdaccio/config.yml", + "storage": "tmp/local-registry/storage" + } + } + } +} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..dc1faa3 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,22 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "rootDir": ".", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "es2015", + "module": "esnext", + "lib": ["es2020", "dom"], + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "baseUrl": ".", + "paths": { + "shadcn-ng": ["packages/cli/src/index.ts"] + } + }, + "exclude": ["node_modules", "tmp"] +}
+ + +
+ Next.js Logo +
+ + +