├── pnpm-workspace.yaml
├── .gitignore
├── docs
├── error-in-variadic.png
└── autocomplete-paths.png
├── packages
├── next-static-paths
│ ├── augment.d.ts
│ ├── bin
│ │ └── next-static-paths.js
│ ├── root.d.ts
│ ├── cli
│ │ ├── index.ts
│ │ ├── filePathToPathname.ts
│ │ ├── argObject.ts
│ │ ├── helperJsDocs.ts
│ │ └── command-generate.ts
│ ├── src
│ │ ├── index.ts
│ │ ├── TypedLink.tsx
│ │ └── pathFor.ts
│ ├── tsconfig.cjs.json
│ ├── tsconfig.esm.json
│ ├── CHANGELOG.md
│ ├── scripts
│ │ └── build.ts
│ ├── test
│ │ ├── helperJsDocs.test.ts
│ │ ├── filePathToPathname.test.ts
│ │ └── command.test.ts
│ ├── tsconfig.json
│ ├── README.md
│ └── package.json
└── example-app
│ ├── pages
│ ├── dynamic
│ │ └── [userId].tsx
│ ├── splat
│ │ └── [...rest].tsx
│ └── index.tsx
│ ├── next-env.d.ts
│ ├── generated
│ └── static-paths.d.ts
│ ├── tsconfig.json
│ ├── package.json
│ └── tests
│ ├── pathFor.test.ts
│ └── TypedLink.test.tsx
├── .changeset
├── config.json
└── README.md
├── turbo.json
├── package.json
├── .github
└── workflows
│ ├── build.yaml
│ └── release.yml
├── README.md
└── pnpm-lock.yaml
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - packages/*
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 | *.tsbuildinfo
4 | .turbo
5 | .next
6 | *.log
7 |
--------------------------------------------------------------------------------
/docs/error-in-variadic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Schniz/next-static-paths/HEAD/docs/error-in-variadic.png
--------------------------------------------------------------------------------
/docs/autocomplete-paths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Schniz/next-static-paths/HEAD/docs/autocomplete-paths.png
--------------------------------------------------------------------------------
/packages/next-static-paths/augment.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@@@next-static-paths" {
2 | interface Paths {}
3 | }
4 |
--------------------------------------------------------------------------------
/packages/next-static-paths/bin/next-static-paths.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | require("../dist/cli/index.js");
4 |
--------------------------------------------------------------------------------
/packages/next-static-paths/root.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | export * from "./dist/esm/index";
4 |
--------------------------------------------------------------------------------
/packages/next-static-paths/cli/index.ts:
--------------------------------------------------------------------------------
1 | import { generate } from "./command-generate";
2 | import { binary, run } from "cmd-ts";
3 |
4 | run(binary(generate), process.argv);
5 |
--------------------------------------------------------------------------------
/packages/next-static-paths/src/index.ts:
--------------------------------------------------------------------------------
1 | export { pathFor } from "./pathFor";
2 | export { TypedLink } from "./TypedLink";
3 | export type { TypedLinkProps, TypedProps } from "./TypedLink";
4 |
--------------------------------------------------------------------------------
/packages/example-app/pages/dynamic/[userId].tsx:
--------------------------------------------------------------------------------
1 | import { useRouter } from "next/router";
2 | export default function ShowUser() {
3 | const router = useRouter();
4 | return
user id: {router.query.userId}
;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/example-app/pages/splat/[...rest].tsx:
--------------------------------------------------------------------------------
1 | import { useRouter } from "next/router";
2 | export default function ShowUser() {
3 | const router = useRouter();
4 | return rest: {JSON.stringify(router.query.rest)}
;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/example-app/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/packages/example-app/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { TypedLink } from "next-static-paths";
2 |
3 | export default function Home() {
4 | return (
5 |
6 | Hello, world.{" "}
7 |
8 | Hello
9 |
10 |
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
3 | "changelog": "@changesets/cli/changelog",
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "public",
8 | "baseBranch": "main",
9 | "updateInternalDependencies": "patch",
10 | "ignore": []
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turborepo.org/schema.json",
3 | "pipeline": {
4 | "build": {
5 | "dependsOn": ["^build"],
6 | "outputs": ["dist/**"]
7 | },
8 | "test": {
9 | "dependsOn": ["build"],
10 | "outputs": []
11 | },
12 | "lint": {
13 | "outputs": []
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/next-static-paths/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig.json",
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "noEmit": false,
6 | "module": "commonjs",
7 | "outDir": "./dist/cjs",
8 | "jsx": "react"
9 | },
10 | "include": ["src/**/*.ts", "src/**/*.tsx", "root.d.ts"]
11 | }
12 |
--------------------------------------------------------------------------------
/packages/next-static-paths/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig.json",
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "noEmit": false,
6 | "declaration": true,
7 | "module": "esnext",
8 | "outDir": "./dist/esm",
9 | "jsx": "react"
10 | },
11 | "include": ["src/**/*.ts", "src/**/*.tsx", "root.d.ts"]
12 | }
13 |
--------------------------------------------------------------------------------
/packages/example-app/generated/static-paths.d.ts:
--------------------------------------------------------------------------------
1 | // This file is generated by scripts/generate-paths.ts
2 | // Do not edit this file directly.
3 |
4 | // @generated
5 | // prettier-ignore
6 | /* eslint-disable */
7 |
8 | declare module "@@@next-static-paths" {
9 | interface Paths {
10 | "/": Record,
11 | "/dynamic/[userId]": {"userId": string},
12 | "/splat/[...rest]": {"rest": string[]}
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/next-static-paths/cli/filePathToPathname.ts:
--------------------------------------------------------------------------------
1 | export function filePathToPathname(
2 | pageExtensions: readonly string[],
3 | filePath: string
4 | ): string {
5 | const extensionsRegex = new RegExp(`\\.(${pageExtensions.join("|")})$`);
6 | return filePath
7 | .replace(extensionsRegex, "")
8 | .replace(/^/, "/")
9 | .replace(/\/(_middleware|index)$/, "")
10 | .replace(/\/+$/, "")
11 | .replace(/^$/, "/");
12 | }
13 |
--------------------------------------------------------------------------------
/packages/next-static-paths/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # next-static-paths
2 |
3 | ## 0.0.6
4 |
5 | ### Patch Changes
6 |
7 | - d81f4ff: add a readme to the npm package
8 |
9 | ## 0.0.5
10 |
11 | ### Patch Changes
12 |
13 | - 477976c: Add repository to package.json
14 |
15 | ## 0.0.4
16 |
17 | ### Patch Changes
18 |
19 | - 238a159: Allow TypedLink to receive children in the types
20 |
21 | ## 0.0.3
22 |
23 | ### Patch Changes
24 |
25 | - 3013374: Remove the `as` prop from the link
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "next-static-paths-monorepo",
3 | "private": true,
4 | "scripts": {
5 | "build": "FORCE_COLOR=1 turbo run build",
6 | "lint": "FORCE_COLOR=1 turbo run lint",
7 | "test": "FORCE_COLOR=1 turbo run test",
8 | "changeset:version": "changeset version && pnpm install --no-frozen-lockfile",
9 | "changeset:publish": "pnpm run build && changeset publish"
10 | },
11 | "devDependencies": {
12 | "@changesets/cli": "^2.22.0",
13 | "turbo": "^1.2.9"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/packages/next-static-paths/scripts/build.ts:
--------------------------------------------------------------------------------
1 | import { build } from "esbuild";
2 | import path from "path";
3 |
4 | async function main() {
5 | await build({
6 | entryPoints: [path.resolve(__dirname, "../cli/index.ts")],
7 | bundle: true,
8 | legalComments: "external",
9 | format: "iife",
10 | target: "esnext",
11 | external: ["prettier"],
12 | platform: "node",
13 | minify: true,
14 | outdir: path.resolve(__dirname, "../dist/cli"),
15 | });
16 | }
17 |
18 | main().catch((err) => {
19 | console.error(err);
20 | process.exit(1);
21 | });
22 |
--------------------------------------------------------------------------------
/packages/next-static-paths/test/helperJsDocs.test.ts:
--------------------------------------------------------------------------------
1 | import { it, expect, describe } from "vitest";
2 | import { getHelperJsDocs } from "../cli/helperJsDocs";
3 |
4 | describe("helperJsDocs", () => {
5 | it("returns undefined when no helper is generated", () => {
6 | const helper = getHelperJsDocs("");
7 | expect(helper).toBeUndefined();
8 | });
9 |
10 | it("returns a helper", () => {
11 | const helper = getHelperJsDocs(`
12 | // @pathHelper pathName
13 | `);
14 |
15 | expect(helper).toEqual({
16 | name: "pathNamePath",
17 | });
18 | });
19 | });
20 |
--------------------------------------------------------------------------------
/packages/next-static-paths/test/filePathToPathname.test.ts:
--------------------------------------------------------------------------------
1 | import { filePathToPathname } from "../cli/filePathToPathname";
2 | import { test, expect } from "vitest";
3 |
4 | test.each([
5 | ["normal API route", "api/hello.js", "/api/hello"],
6 | ["nested index file", "conf/speakers/index.js", "/conf/speakers"],
7 | ["root index file", "index.js", "/"],
8 | ["middleware", "something/_middleware.js", "/something"],
9 | ["dot in the filepath", "something/file.json.js", "/something/file.json"],
10 | ])(`%s`, (_, filePath, expected) => {
11 | expect(filePathToPathname(["js"], filePath)).toEqual(expected);
12 | });
13 |
--------------------------------------------------------------------------------
/packages/example-app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "skipLibCheck": true,
6 | "strict": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "noEmit": true,
9 | "incremental": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "allowJs": true
17 | },
18 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
19 | "exclude": ["node_modules"]
20 | }
21 |
--------------------------------------------------------------------------------
/packages/next-static-paths/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2019",
4 | "lib": ["esnext"],
5 | "skipLibCheck": true,
6 | "strict": true,
7 | "strictNullChecks": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "incremental": true,
11 | "esModuleInterop": true,
12 | "module": "esnext",
13 | "moduleResolution": "node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "jsx": "preserve",
17 | "allowJs": true
18 | },
19 | "include": [
20 | "root.d.ts",
21 | "src/**/*.ts",
22 | "scripts/**/*.ts",
23 | "test/**/*.ts",
24 | "cli/**/*.ts"
25 | ],
26 | "exclude": ["node_modules"]
27 | }
28 |
--------------------------------------------------------------------------------
/packages/example-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@next-static-paths/example-app",
3 | "private": true,
4 | "version": "1.0.0",
5 | "description": "",
6 | "main": "index.js",
7 | "scripts": {
8 | "dev": "next dev",
9 | "build": "next-static-paths && next build"
10 | },
11 | "keywords": [],
12 | "author": "",
13 | "license": "ISC",
14 | "devDependencies": {
15 | "@types/react": "^17.0.42",
16 | "@types/react-dom": "^18.0.4",
17 | "next": "^12.1.0",
18 | "next-static-paths": "workspace:^0.0.6",
19 | "prettier": "^2.6.0",
20 | "typescript": "^4.6.2",
21 | "vitest": "^0.5.9"
22 | },
23 | "dependencies": {
24 | "react": "^17.0.2",
25 | "react-dom": "^17.0.2"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | name: "build"
2 |
3 | on:
4 | push:
5 | branches:
6 | - "main"
7 | pull_request:
8 | branches:
9 | - "main"
10 |
11 | jobs:
12 | build:
13 | runs-on: ubuntu-latest
14 | strategy:
15 | matrix:
16 | node-version: ["14.x", "16.x"]
17 | steps:
18 | - uses: actions/checkout@v3
19 | - uses: actions/setup-node@v2
20 | with:
21 | node-version: ${{ matrix.node-version }}
22 | - uses: pnpm/action-setup@v2.2.1
23 | with:
24 | version: 6.31.0
25 | - name: Cache pnpm modules
26 | uses: actions/cache@v2
27 | with:
28 | path: ~/.pnpm-store
29 | key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
30 | restore-keys: |
31 | ${{ runner.os }}-
32 | - run: pnpm install
33 | - run: pnpm run build
34 | - run: pnpm run test
35 | - run: pnpm run lint
36 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | on:
2 | push:
3 | branches:
4 | - main
5 |
6 | name: "release"
7 | concurrency: ${{ github.workflow }}-${{ github.ref }}
8 |
9 | jobs:
10 | release:
11 | name: Release
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Checkout Repo
15 | uses: actions/checkout@v2
16 |
17 | - uses: pnpm/action-setup@v2.2.1
18 | with:
19 | version: 6.31.0
20 |
21 | - name: Setup Node.js 16.x
22 | uses: actions/setup-node@v2
23 | with:
24 | node-version: 16.x
25 | cache: pnpm
26 |
27 | - name: Install Dependencies
28 | run: pnpm install
29 |
30 | - name: Create Release Pull Request
31 | uses: changesets/action@v1
32 | with:
33 | version: "pnpm changeset:version"
34 | publish: "pnpm changeset:publish"
35 | env:
36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
38 |
--------------------------------------------------------------------------------
/packages/next-static-paths/cli/argObject.ts:
--------------------------------------------------------------------------------
1 | export type ArgumentType = "string" | "variadic";
2 | export type ArgObject = { [arg: string]: ArgumentType };
3 |
4 | export function getArgumentsFromPath(pathname: string): ArgObject {
5 | const matches = pathname.match(/\[([^\]]+)\]/g);
6 | const output: ArgObject = {};
7 | if (!matches) {
8 | return output;
9 | }
10 | for (const match of matches) {
11 | const argumentName = match.slice(1, -1);
12 | if (argumentName.startsWith("...")) {
13 | output[argumentName.slice(3)] = "variadic";
14 | } else {
15 | output[argumentName] = "string";
16 | }
17 | }
18 | return output;
19 | }
20 |
21 | export function argObjectToTypeString(argObject: ArgObject): string {
22 | const entries = Object.entries(argObject);
23 | if (!entries.length) {
24 | return "Record";
25 | }
26 | const properties = entries.map(([key, value]) => {
27 | const valueType = value === "variadic" ? "string[]" : "string";
28 | return `${JSON.stringify(key)}: ${valueType}`;
29 | });
30 | return `{${properties.join(", ")}}`;
31 | }
32 |
--------------------------------------------------------------------------------
/packages/next-static-paths/README.md:
--------------------------------------------------------------------------------
1 | # `next-static-paths`
2 |
3 | Statically prevent HTTP 404 Not Found in your Next.js applications using TypeScript and code generation.
4 |
5 | ## Usage
6 |
7 | ```sh-session
8 | $ pnpm add next-static-paths
9 | # or
10 | $ yarn add next-static-paths
11 | # or
12 | $ npm install next-static-paths
13 | ```
14 |
15 | Then, from within your Next.js application root, run the following command:
16 |
17 | ```sh-session
18 | # For pnpm users
19 | $ pnpx next-static-paths
20 |
21 | # For yarn users
22 | $ yarn next-static-paths
23 |
24 | # For npm users
25 | $ npx next-static-paths
26 | ```
27 |
28 | ### `TypedLink` component
29 |
30 | ```tsx
31 | import { TypedLink } from "next-static-paths";
32 | function MyComponent() {
33 | return (
34 |
35 | Hello world
36 |
37 | );
38 | }
39 | ```
40 |
41 | ### `pathFor` helper
42 |
43 | ```tsx
44 | import { pathFor } from "next-static-paths";
45 |
46 | function getPath() {
47 | return pathFor("/some/[myArgument]", { myArgument: "hello world" });
48 | }
49 | ```
50 |
--------------------------------------------------------------------------------
/packages/next-static-paths/src/TypedLink.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Paths } from "@@@next-static-paths";
3 | import Link, { LinkProps } from "next/link";
4 | import { pathFor } from "./pathFor";
5 |
6 | export type TypedProps = Paths[K] & { as: K };
7 | export type TypedLinkProps = Omit &
8 | TypedProps;
9 |
10 | export function TypedLink(
11 | props: React.PropsWithChildren>
12 | ) {
13 | const as = (props as any).as as string;
14 | const restProps = omit(props, "as");
15 | if (typeof as !== "string") {
16 | throw new Error("`as` prop is required");
17 | }
18 | const generatedPath = (pathFor as any)(as, restProps);
19 | return ;
20 | }
21 |
22 | function omit(
23 | value: T,
24 | ...keys: Keys[]
25 | ): Omit {
26 | const output = {} as Omit;
27 | for (const [key, v] of Object.entries(value)) {
28 | if (!keys.includes(key as Keys)) {
29 | output[key as keyof Omit] = v;
30 | }
31 | }
32 | return output;
33 | }
34 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # This feature is supported natively in [Next.js 13.2](https://nextjs.org/13-2)
2 |
3 | upgrade and have fun!
4 |
5 | ---
6 |
7 | # `next-static-paths`
8 |
9 | Statically prevent HTTP 404 Not Found in your Next.js applications using TypeScript and code generation.
10 |
11 | ## Features
12 |
13 | 💻 A command-line interface to generate static types and custom route helper functions
14 |
15 | 🔗 A `` component which wraps Next.js `` and provides type-safe path matching
16 |
17 | 📝 A `pathFor` helper that enables path generation in a type-safe manner
18 |
19 | ## Usage
20 |
21 | ```sh-session
22 | $ pnpm add next-static-paths
23 | # or
24 | $ yarn add next-static-paths
25 | # or
26 | $ npm install next-static-paths
27 | ```
28 |
29 | Then, from within your Next.js application root, run the following command:
30 |
31 | ```sh-session
32 | # For pnpm users
33 | $ pnpx next-static-paths
34 |
35 | # For yarn users
36 | $ yarn next-static-paths
37 |
38 | # For npm users
39 | $ npx next-static-paths
40 | ```
41 |
42 | ## Usage screenshots
43 |
44 | #### Path autocomplete
45 |
46 | 
47 |
48 | #### Dynamic path segment type checking
49 |
50 | 
51 |
--------------------------------------------------------------------------------
/packages/example-app/tests/pathFor.test.ts:
--------------------------------------------------------------------------------
1 | import { test, expect } from "vitest";
2 | import { pathFor } from "next-static-paths";
3 |
4 | test("/", () => {
5 | expect(pathFor("/")).toEqual("/");
6 | });
7 |
8 | test("/dynamic/[userId]", () => {
9 | expect(() => {
10 | // @ts-expect-error
11 | pathFor("/dynamic/[userId]");
12 | }).toThrowError(/argument userId is missing/i);
13 |
14 | expect(() => {
15 | // @ts-expect-error
16 | pathFor("/dynamic/[userId]", { hello: "world" });
17 | }).toThrowError(/argument userId is missing/i);
18 |
19 | // @ts-expect-error
20 | pathFor("/dynamic/[userId]", { userId: "userId", hello: "world" });
21 |
22 | expect(pathFor("/dynamic/[userId]", { userId: "userId" })).toEqual(
23 | "/dynamic/userId"
24 | );
25 | });
26 |
27 | test("/splat/[...rest]", () => {
28 | expect(() => {
29 | // @ts-expect-error
30 | pathFor("/splat/[...rest]");
31 | }).toThrowError(/argument rest is missing/i);
32 |
33 | // @ts-expect-error
34 | pathFor("/splat/[...rest]", { rest: "rest" });
35 |
36 | // @ts-expect-error
37 | pathFor("/splat/[...rest]", { rest: [10] });
38 |
39 | pathFor("/splat/[...rest]", { rest: [] });
40 | expect(pathFor("/splat/[...rest]", { rest: ["hello", "wor/ld"] })).toEqual(
41 | "/splat/hello/wor%2Fld"
42 | );
43 | });
44 |
--------------------------------------------------------------------------------
/packages/next-static-paths/cli/helperJsDocs.ts:
--------------------------------------------------------------------------------
1 | import { ArgObject, argObjectToTypeString } from "./argObject";
2 |
3 | export interface HelperJsDocs {
4 | name: string;
5 | }
6 |
7 | export function getHelperJsDocs(contents: string): HelperJsDocs | undefined {
8 | const helperNameMatches = contents.match(/@pathHelper ([a-zA-Z0-9_]+)/);
9 | if (!helperNameMatches || !helperNameMatches[1]) return;
10 | return { name: `${helperNameMatches[1]}Path` };
11 | }
12 |
13 | export function generateHelperCode(
14 | { name }: HelperJsDocs,
15 | pathname: string,
16 | argsObject: ArgObject
17 | ) {
18 | const comment = `/** A helper for ${pathname} */`;
19 | const argKeys = Object.keys(argsObject);
20 | if (argKeys.length === 0) {
21 | return `${comment}\nexport const ${name} = ${JSON.stringify(pathname)}`;
22 | }
23 |
24 | const literal = pathname
25 | .replace(/\[\.\.\.([^\]]+)\]/g, (_, paramName) => {
26 | return `\${params.${paramName}.map(encodeURIComponent).join('/')}`;
27 | })
28 | .replace(/\[([^\]]+)\]/g, (_, paramName) => {
29 | return `\${encodeURIComponent(params.${paramName})}`;
30 | });
31 |
32 | const objectType = argObjectToTypeString(argsObject);
33 |
34 | const definition = `
35 | ${comment}
36 | export function ${name}(params: ${objectType}): string {
37 | return \`${literal}\`;
38 | }
39 | `;
40 |
41 | return definition;
42 | }
43 |
--------------------------------------------------------------------------------
/packages/next-static-paths/src/pathFor.ts:
--------------------------------------------------------------------------------
1 | import type { Paths } from "@@@next-static-paths";
2 |
3 | type PathKeysWithoutArguments = {
4 | [key in keyof Paths]: Record extends Paths[key] ? key : never;
5 | }[keyof Paths];
6 |
7 | type PathKeysWithArguments = {
8 | [key in keyof Paths]: Record extends Paths[key] ? never : key;
9 | }[keyof Paths];
10 |
11 | /**
12 | * Constructs an absolute path for a given route
13 | * that was generated using `next-static-paths generate`
14 | */
15 | export function pathFor(
16 | key: K,
17 | args?: undefined
18 | ): string;
19 | export function pathFor(
20 | key: K,
21 | args: Paths[K]
22 | ): string;
23 | export function pathFor<
24 | K extends PathKeysWithArguments | PathKeysWithoutArguments
25 | >(key: K, args?: Record): string {
26 | return (key as string).replace(
27 | /\[(?:\.\.\.)?([^\]]+)\]/g,
28 | (_, argumentKey) => {
29 | if (typeof args === "undefined" || !(argumentKey in args)) {
30 | throw new Error(
31 | `pathFor: argument ${argumentKey} is missing for route ${key}`
32 | );
33 | }
34 |
35 | const value = (args as Record)[
36 | argumentKey as string
37 | ] as string | string[];
38 |
39 | if (typeof value === "string") {
40 | return encodeURIComponent(value);
41 | } else {
42 | return value.map(encodeURIComponent).join("/");
43 | }
44 | }
45 | );
46 | }
47 |
--------------------------------------------------------------------------------
/packages/next-static-paths/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "next-static-paths",
3 | "version": "0.0.6",
4 | "description": "Static types for routing in Next.js apps",
5 | "main": "dist/cjs/index.js",
6 | "module": "dist/esm/index.js",
7 | "types": "./root.d.ts",
8 | "scripts": {
9 | "bin": "pnpm run --silent ts-node -- cli/index.ts",
10 | "build": "rm -rf dist; pnpm run build:cli && pnpm run build:lib",
11 | "build:cli": "pnpm run --silent -- ts-node ./scripts/build.ts",
12 | "build:lib": "tsc -p ./tsconfig.cjs.json && tsc -p ./tsconfig.esm.json",
13 | "test": "vitest",
14 | "ts-node": "node -r @swc-node/register",
15 | "lint": "prettier src/**/*.ts cli/**/*.ts --check"
16 | },
17 | "bin": {
18 | "next-static-paths": "./bin/next-static-paths.js"
19 | },
20 | "repository": {
21 | "url": "https://github.com/Schniz/next-static-paths",
22 | "type": "git",
23 | "directory": "packages/next-static-paths"
24 | },
25 | "files": [
26 | "bin",
27 | "dist",
28 | "root.d.ts",
29 | "augment.d.ts"
30 | ],
31 | "keywords": [],
32 | "author": "Gal Schlezinger ",
33 | "license": "MIT",
34 | "devDependencies": {
35 | "@swc-node/register": "^1.4.2",
36 | "@types/react": "^17.0.42",
37 | "chalk": "4",
38 | "cmd-ts": "^0.10.0",
39 | "esbuild": "^0.14.25",
40 | "globby": "11",
41 | "next": "^12.1.0",
42 | "prettier": "^2.6.0",
43 | "react": "^17.0.2",
44 | "react-dom": "^17.0.2",
45 | "typescript": "^4.6.2",
46 | "vitest": "^0.5.9"
47 | },
48 | "peerDependencies": {
49 | "next": "^12.1.0",
50 | "react": "^17.0.2",
51 | "react-dom": "^17.0.2"
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/packages/example-app/tests/TypedLink.test.tsx:
--------------------------------------------------------------------------------
1 | import { TypedLink } from "next-static-paths";
2 | import { test, expect, describe } from "vitest";
3 | import React from "react";
4 | import { renderToStaticMarkup } from "react-dom/server";
5 |
6 | test("no args throws", () => {
7 | expect(() => {
8 | renderToStaticMarkup(
9 | // @ts-expect-error
10 |
11 | );
12 | }).toThrowError(/`as` prop is required/);
13 | });
14 |
15 | test("/", () => {
16 | expect(
17 | renderToStaticMarkup(
18 |
19 | Hello
20 |
21 | )
22 | ).toEqual(`Hello`);
23 | });
24 |
25 | describe("/dynamic/[userId]", () => {
26 | test("fails if missing userId", () => {
27 | expect(() => {
28 | // @ts-ignore
29 | renderToStaticMarkup();
30 | }).toThrowError(/argument userId is missing/);
31 | });
32 | test("renders correctly", () => {
33 | expect(
34 | renderToStaticMarkup(
35 |
36 | Hello
37 |
38 | )
39 | ).toEqual(`Hello`);
40 | });
41 | });
42 |
43 | describe("/splat/[...rest]", () => {
44 | test("throws if missing userId", () => {
45 | expect(() => {
46 | // @ts-ignore
47 | renderToStaticMarkup();
48 | }).toThrowError(/argument rest is missing/);
49 | });
50 | test("renders correctly", () => {
51 | expect(
52 | renderToStaticMarkup(
53 |
54 | Hello
55 |
56 | )
57 | ).toEqual(`Hello`);
58 | });
59 | });
60 |
--------------------------------------------------------------------------------
/packages/next-static-paths/test/command.test.ts:
--------------------------------------------------------------------------------
1 | import { generate } from "../cli/command-generate";
2 | import fs from "fs/promises";
3 | import os from "os";
4 | import path from "path";
5 | import { test, expect, spyOn } from "vitest";
6 | import { mkdirSync } from "fs";
7 |
8 | test("deletes the runtimes file when file is missing", async () => {
9 | const testDir = await createFileSystem({
10 | [`pages/dynamic/[id].js`]: `// @pathHelper page`,
11 | });
12 |
13 | const spies = spyOnStderr();
14 | await generate.handler({
15 | outputDir: `${testDir}/generated`,
16 | pageExtensions: ["jsx", "js"],
17 | pagesDirectory: `${testDir}/pages`,
18 | runtimeFilename: "runtime.ts",
19 | staticFilename: "static.d.ts",
20 | });
21 |
22 | expect(await getFileSystem(`${testDir}/generated`)).toMatchObject({
23 | "runtime.ts": expect.stringContaining("export function pagePath"),
24 | });
25 |
26 | await fs.writeFile(
27 | path.join(testDir, "pages/dynamic/[id].js"),
28 | `// @hideFromPath`
29 | );
30 |
31 | spies.clear();
32 | await generate.handler({
33 | outputDir: `${testDir}/generated`,
34 | pageExtensions: ["jsx", "js"],
35 | pagesDirectory: `${testDir}/pages`,
36 | runtimeFilename: "runtime.ts",
37 | staticFilename: "static.d.ts",
38 | });
39 | expect(spies.consoleError).toHaveBeenCalledWith(
40 | expect.stringContaining(`no helpers found`)
41 | );
42 |
43 | expect(await getFileSystem(`${testDir}/generated`)).toEqual({
44 | "static.d.ts": expect.stringContaining("@generated"),
45 | });
46 | });
47 |
48 | test("generates the files", async () => {
49 | const testDir = await createFileSystem({
50 | [`pages/index.js`]: `// @pathHelper home`,
51 | [`pages/dynamic/[value1]/[value2]/[value3].js`]: `// @pathHelper threeValues`,
52 | });
53 |
54 | const spies = spyOnStderr();
55 | await generate.handler({
56 | outputDir: `${testDir}/generated`,
57 | pageExtensions: ["jsx", "js"],
58 | pagesDirectory: `${testDir}/pages`,
59 | runtimeFilename: "runtime.ts",
60 | staticFilename: "static.d.ts",
61 | });
62 | expect(spies.consoleError).toHaveBeenCalledWith(
63 | expect.stringContaining("Found /")
64 | );
65 | expect(spies.consoleError).toHaveBeenCalledWith(
66 | expect.stringContaining("Found /dynamic/[value1]/[value2]/[value3]")
67 | );
68 |
69 | const fileSystem = await getFileSystem(`${testDir}/generated`);
70 |
71 | expect(fileSystem).toEqual({
72 | "runtime.ts": expect.stringContaining(`export const homePath =`),
73 | "static.d.ts": expect.stringContaining(`"/": Record`),
74 | });
75 |
76 | expect(fileSystem).toEqual({
77 | "runtime.ts": expect.stringContaining(`export function threeValuesPath`),
78 | "static.d.ts": expect.stringContaining(
79 | `"/dynamic/[value1]/[value2]/[value3]":`
80 | ),
81 | });
82 | });
83 |
84 | async function createFileSystem(
85 | files: Record,
86 | testDir: string = randomTempDir()
87 | ): Promise {
88 | for (const [key, value] of Object.entries(files)) {
89 | await fs.mkdir(path.join(testDir, path.dirname(key)), { recursive: true });
90 | await fs.writeFile(path.join(testDir, key), value);
91 | }
92 |
93 | return testDir;
94 | }
95 |
96 | async function getFileSystem(
97 | rootPath: string
98 | ): Promise> {
99 | const files = await fs.readdir(rootPath);
100 | const fileSystem: Record = {};
101 |
102 | for (const file of files) {
103 | const filePath = rootPath + "/" + file;
104 | const stat = await fs.stat(filePath);
105 |
106 | if (stat.isDirectory()) {
107 | const subFiles = await getFileSystem(filePath);
108 | Object.assign(fileSystem, subFiles);
109 | } else {
110 | const content = await fs.readFile(filePath, "utf8");
111 | const relativePath = path.relative(rootPath, filePath);
112 | fileSystem[relativePath] = content;
113 | }
114 | }
115 |
116 | return fileSystem;
117 | }
118 |
119 | function randomTempDir() {
120 | const tmpdir = os.tmpdir();
121 | const random = `test-${Math.random() * 100000}`;
122 | const testDir = path.join(tmpdir, random);
123 | mkdirSync(testDir);
124 | return testDir;
125 | }
126 |
127 | function spyOnStderr() {
128 | const consoleError = spyOn(console, "error").mockImplementation(() => {});
129 | const write = spyOn(process.stderr, "write").mockImplementation(
130 | (a: any, b: any, c: any) => {
131 | if (typeof b === "function") {
132 | b();
133 | } else if (typeof c === "function") {
134 | c();
135 | }
136 | return true;
137 | }
138 | );
139 | return {
140 | consoleError,
141 | write,
142 | clear() {
143 | consoleError.mockClear();
144 | write.mockClear();
145 | },
146 | };
147 | }
148 |
--------------------------------------------------------------------------------
/packages/next-static-paths/cli/command-generate.ts:
--------------------------------------------------------------------------------
1 | import {
2 | command,
3 | multioption,
4 | option,
5 | string,
6 | array,
7 | extendType,
8 | } from "cmd-ts";
9 | import { Directory } from "cmd-ts/batteries/fs";
10 | import globby from "globby";
11 | import path from "path";
12 | import fs from "fs/promises";
13 | import chalk from "chalk";
14 | import { existsSync } from "fs";
15 | import { type Writable } from "stream";
16 | import { filePathToPathname } from "./filePathToPathname";
17 | import {
18 | getHelperJsDocs,
19 | HelperJsDocs,
20 | generateHelperCode,
21 | } from "./helperJsDocs";
22 | import {
23 | ArgObject,
24 | argObjectToTypeString,
25 | getArgumentsFromPath,
26 | } from "./argObject";
27 |
28 | const logRoutes = chalk.blue.bold(`routes:`);
29 | const danger = chalk.red.bold(`danger:`);
30 | const logOutput = chalk.magenta.bold(`output:`);
31 |
32 | interface Route {
33 | filepath: string;
34 | pathname: string;
35 | arguments: ArgObject;
36 | helper?: HelperJsDocs;
37 | }
38 |
39 | const defaultPageExtensions = ["js", "jsx", "ts", "tsx"] as const;
40 | const PageExtensionType = extendType(array(string), {
41 | async from(value: string[]): Promise {
42 | if (!value.length) {
43 | return defaultPageExtensions;
44 | }
45 |
46 | return value.map((x) => x.replace(/^\./, ""));
47 | },
48 | defaultValue: () => defaultPageExtensions,
49 | defaultValueIsSerializable: true,
50 | displayName: "ext",
51 | });
52 |
53 | export const generate = command({
54 | name: "next-static-paths",
55 | description: "Generate static path generation and helpers for next.js",
56 | args: {
57 | outputDir: option({
58 | long: "output",
59 | description: "The directory where the files will be stored",
60 | defaultValue: () => "./generated",
61 | defaultValueIsSerializable: true,
62 | }),
63 | pagesDirectory: option({
64 | type: Directory,
65 | long: "pages-dir",
66 | defaultValue: () => "./pages",
67 | defaultValueIsSerializable: true,
68 | }),
69 | runtimeFilename: option({
70 | type: {
71 | ...string,
72 | displayName: "file",
73 | },
74 | long: "runtime-filename",
75 | description:
76 | "the filename for which the runtime helpers will be generated to",
77 | defaultValue: () => "paths.ts",
78 | defaultValueIsSerializable: true,
79 | }),
80 | staticFilename: option({
81 | type: {
82 | ...string,
83 | displayName: "file",
84 | },
85 | long: "static-filename",
86 | description:
87 | "the filename for which the static typedefs will be generated to",
88 | defaultValue: () => "static-paths.d.ts",
89 | defaultValueIsSerializable: true,
90 | }),
91 | pageExtensions: multioption({
92 | long: "page-extension",
93 | type: PageExtensionType,
94 | description: "The pageExtensions config from next.config.js",
95 | }),
96 | },
97 | async handler({
98 | outputDir,
99 | staticFilename,
100 | runtimeFilename,
101 | pageExtensions,
102 | pagesDirectory,
103 | }) {
104 | const glob = `**/*.{${pageExtensions.join(",")}}`;
105 | const globber = globby.stream(glob, {
106 | cwd: pagesDirectory,
107 | ignore: [
108 | ignoredFile("_app", pageExtensions),
109 | ignoredFile("_document", pageExtensions),
110 | ],
111 | });
112 | const routes = new Map();
113 |
114 | for await (const pathAsMaybeString of globber) {
115 | const filepath = String(pathAsMaybeString);
116 | const contents = await fs.readFile(
117 | path.join(pagesDirectory, filepath),
118 | "utf8"
119 | );
120 |
121 | const helper = getHelperJsDocs(contents);
122 | const pathname = filePathToPathname(pageExtensions, filepath);
123 |
124 | const previousValue = routes.get(pathname);
125 | routes.set(pathname, {
126 | ...previousValue,
127 | filepath,
128 | pathname,
129 | arguments: getArgumentsFromPath(pathname),
130 | helper,
131 | });
132 | }
133 |
134 | const helpers: string[] = [];
135 | for (const { pathname, helper, arguments: args } of routes.values()) {
136 | if (helper) {
137 | helpers.push(generateHelperCode(helper, pathname, args));
138 | console.error(
139 | `${logRoutes} Found ${pathname} (${chalk.cyan(helper.name)})`
140 | );
141 | } else {
142 | console.error(`${logRoutes} Found ${pathname}`);
143 | }
144 | }
145 |
146 | const paths = {
147 | runtime: path.join(outputDir, runtimeFilename),
148 | static: path.join(outputDir, staticFilename),
149 | };
150 |
151 | await fs.mkdir(outputDir, { recursive: true });
152 |
153 | if (helpers.length) {
154 | console.error(
155 | `${logOutput} Generated ${helpers.length} helpers to ${chalk.cyan(
156 | paths.runtime
157 | )}`
158 | );
159 | await fs.writeFile(
160 | paths.runtime,
161 | maybePrettify([getIntroString(), "", ...helpers].join("\n\n")),
162 | "utf8"
163 | );
164 | } else if (existsSync(paths.runtime)) {
165 | console.error(
166 | `${danger} no helpers found, deleting ${chalk.red(paths.runtime)}`
167 | );
168 | await fs.rm(paths.runtime);
169 | }
170 |
171 | console.error(
172 | `${logOutput} generating static interface to ${chalk.cyan(paths.static)}`
173 | );
174 | await fs.writeFile(
175 | paths.static,
176 | maybePrettify(
177 | [
178 | getIntroString(),
179 | "",
180 | `declare module "@@@next-static-paths" {`,
181 | getInterface([...routes.values()]).replace(/^/gm, " "),
182 | "}",
183 | ].join("\n")
184 | ),
185 | "utf8"
186 | );
187 |
188 | await write(process.stderr, chalk.bgGreen.black.bold(" SUCCESS ") + " ");
189 | await write(process.stderr, "Generated ");
190 | if (helpers.length) {
191 | await write(process.stderr, `${chalk.cyan(helpers.length)} helpers for `);
192 | }
193 | await write(process.stderr, `${chalk.cyan(routes.size)} static paths.`);
194 | await write(process.stderr, "\n");
195 | },
196 | });
197 |
198 | function ignoredFile(name: string, extensions: readonly string[]) {
199 | return `${name}.{${extensions.join(",")}}`;
200 | }
201 |
202 | function getInterface(routes: readonly Route[]) {
203 | const fields = routes
204 | .map((x) => {
205 | let pathname = x.pathname;
206 | let args = x.arguments;
207 | const typedef = argObjectToTypeString(args);
208 | return `${JSON.stringify(pathname)}: ${typedef}`;
209 | })
210 | .join(",\n");
211 | return `interface Paths {\n${fields}\n}`;
212 | }
213 |
214 | function getIntroString(): string {
215 | return [
216 | `// This file is generated by scripts/generate-paths.ts`,
217 | `// Do not edit this file directly.`,
218 | "",
219 | "// @generated",
220 | `// prettier-ignore`,
221 | `/* eslint-disable */`,
222 | ].join("\n");
223 | }
224 |
225 | function write(writable: Writable, data: string): Promise {
226 | return new Promise((resolve, reject) => {
227 | writable.write(data, (err) => {
228 | if (err) {
229 | reject(err);
230 | } else {
231 | resolve();
232 | }
233 | });
234 | });
235 | }
236 |
237 | function maybePrettify(input: string): string {
238 | try {
239 | const resolved = require("prettier");
240 | return resolved.format(input, { parser: "typescript" });
241 | } catch {}
242 | return input;
243 | }
244 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | importers:
4 |
5 | .:
6 | specifiers:
7 | '@changesets/cli': ^2.22.0
8 | turbo: ^1.2.9
9 | devDependencies:
10 | '@changesets/cli': 2.22.0
11 | turbo: 1.2.9
12 |
13 | packages/example-app:
14 | specifiers:
15 | '@types/react': ^17.0.42
16 | '@types/react-dom': ^18.0.4
17 | next: ^12.1.0
18 | next-static-paths: workspace:^0.0.6
19 | prettier: ^2.6.0
20 | react: ^17.0.2
21 | react-dom: ^17.0.2
22 | typescript: ^4.6.2
23 | vitest: ^0.5.9
24 | dependencies:
25 | react: 17.0.2
26 | react-dom: 17.0.2_react@17.0.2
27 | devDependencies:
28 | '@types/react': 17.0.42
29 | '@types/react-dom': 18.0.4
30 | next: 12.1.0_react-dom@17.0.2+react@17.0.2
31 | next-static-paths: link:../next-static-paths
32 | prettier: 2.6.0
33 | typescript: 4.6.2
34 | vitest: 0.5.9
35 |
36 | packages/next-static-paths:
37 | specifiers:
38 | '@swc-node/register': ^1.4.2
39 | '@types/react': ^17.0.42
40 | chalk: '4'
41 | cmd-ts: ^0.10.0
42 | esbuild: ^0.14.25
43 | globby: '11'
44 | next: ^12.1.0
45 | prettier: ^2.6.0
46 | react: ^17.0.2
47 | react-dom: ^17.0.2
48 | typescript: ^4.6.2
49 | vitest: ^0.5.9
50 | devDependencies:
51 | '@swc-node/register': 1.4.2
52 | '@types/react': 17.0.42
53 | chalk: 4.1.2
54 | cmd-ts: 0.10.0
55 | esbuild: 0.14.27
56 | globby: 11.1.0
57 | next: 12.1.0_react-dom@17.0.2+react@17.0.2
58 | prettier: 2.6.0
59 | react: 17.0.2
60 | react-dom: 17.0.2_react@17.0.2
61 | typescript: 4.6.2
62 | vitest: 0.5.9
63 |
64 | packages:
65 |
66 | /@babel/code-frame/7.16.7:
67 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
68 | engines: {node: '>=6.9.0'}
69 | dependencies:
70 | '@babel/highlight': 7.17.9
71 | dev: true
72 |
73 | /@babel/helper-validator-identifier/7.16.7:
74 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
75 | engines: {node: '>=6.9.0'}
76 | dev: true
77 |
78 | /@babel/highlight/7.17.9:
79 | resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==}
80 | engines: {node: '>=6.9.0'}
81 | dependencies:
82 | '@babel/helper-validator-identifier': 7.16.7
83 | chalk: 2.4.2
84 | js-tokens: 4.0.0
85 | dev: true
86 |
87 | /@babel/runtime/7.17.9:
88 | resolution: {integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==}
89 | engines: {node: '>=6.9.0'}
90 | dependencies:
91 | regenerator-runtime: 0.13.9
92 | dev: true
93 |
94 | /@changesets/apply-release-plan/6.0.0:
95 | resolution: {integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==}
96 | dependencies:
97 | '@babel/runtime': 7.17.9
98 | '@changesets/config': 2.0.0
99 | '@changesets/get-version-range-type': 0.3.2
100 | '@changesets/git': 1.3.2
101 | '@changesets/types': 5.0.0
102 | '@manypkg/get-packages': 1.1.3
103 | detect-indent: 6.1.0
104 | fs-extra: 7.0.1
105 | lodash.startcase: 4.4.0
106 | outdent: 0.5.0
107 | prettier: 1.19.1
108 | resolve-from: 5.0.0
109 | semver: 5.7.1
110 | dev: true
111 |
112 | /@changesets/assemble-release-plan/5.1.2:
113 | resolution: {integrity: sha512-nOFyDw4APSkY/vh5WNwGEtThPgEjVShp03PKVdId6wZTJALVcAALCSLmDRfeqjE2z9EsGJb7hZdDlziKlnqZgw==}
114 | dependencies:
115 | '@babel/runtime': 7.17.9
116 | '@changesets/errors': 0.1.4
117 | '@changesets/get-dependents-graph': 1.3.2
118 | '@changesets/types': 5.0.0
119 | '@manypkg/get-packages': 1.1.3
120 | semver: 5.7.1
121 | dev: true
122 |
123 | /@changesets/changelog-git/0.1.11:
124 | resolution: {integrity: sha512-sWJvAm+raRPeES9usNpZRkooeEB93lOpUN0Lmjz5vhVAb7XGIZrHEJ93155bpE1S0c4oJ5Di9ZWgzIwqhWP/Wg==}
125 | dependencies:
126 | '@changesets/types': 5.0.0
127 | dev: true
128 |
129 | /@changesets/cli/2.22.0:
130 | resolution: {integrity: sha512-4bA3YoBkd5cm5WUxmrR2N9WYE7EeQcM+R3bVYMUj2NvffkQVpU3ckAI+z8UICoojq+HRl2OEwtz+S5UBmYY4zw==}
131 | hasBin: true
132 | dependencies:
133 | '@babel/runtime': 7.17.9
134 | '@changesets/apply-release-plan': 6.0.0
135 | '@changesets/assemble-release-plan': 5.1.2
136 | '@changesets/changelog-git': 0.1.11
137 | '@changesets/config': 2.0.0
138 | '@changesets/errors': 0.1.4
139 | '@changesets/get-dependents-graph': 1.3.2
140 | '@changesets/get-release-plan': 3.0.8
141 | '@changesets/git': 1.3.2
142 | '@changesets/logger': 0.0.5
143 | '@changesets/pre': 1.0.11
144 | '@changesets/read': 0.5.5
145 | '@changesets/types': 5.0.0
146 | '@changesets/write': 0.1.8
147 | '@manypkg/get-packages': 1.1.3
148 | '@types/is-ci': 3.0.0
149 | '@types/semver': 6.2.3
150 | chalk: 2.4.2
151 | enquirer: 2.3.6
152 | external-editor: 3.1.0
153 | fs-extra: 7.0.1
154 | human-id: 1.0.2
155 | is-ci: 3.0.1
156 | meow: 6.1.1
157 | outdent: 0.5.0
158 | p-limit: 2.3.0
159 | preferred-pm: 3.0.3
160 | resolve-from: 5.0.0
161 | semver: 5.7.1
162 | spawndamnit: 2.0.0
163 | term-size: 2.2.1
164 | tty-table: 2.8.13
165 | dev: true
166 |
167 | /@changesets/config/2.0.0:
168 | resolution: {integrity: sha512-r5bIFY6CN3K6SQ+HZbjyE3HXrBIopONR47mmX7zUbORlybQXtympq9rVAOzc0Oflbap8QeIexc+hikfZoREXDg==}
169 | dependencies:
170 | '@changesets/errors': 0.1.4
171 | '@changesets/get-dependents-graph': 1.3.2
172 | '@changesets/logger': 0.0.5
173 | '@changesets/types': 5.0.0
174 | '@manypkg/get-packages': 1.1.3
175 | fs-extra: 7.0.1
176 | micromatch: 4.0.4
177 | dev: true
178 |
179 | /@changesets/errors/0.1.4:
180 | resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==}
181 | dependencies:
182 | extendable-error: 0.1.7
183 | dev: true
184 |
185 | /@changesets/get-dependents-graph/1.3.2:
186 | resolution: {integrity: sha512-tsqA6qZRB86SQuApSoDvI8yEWdyIlo/WLI4NUEdhhxLMJ0dapdeT6rUZRgSZzK1X2nv5YwR0MxQBbDAiDibKrg==}
187 | dependencies:
188 | '@changesets/types': 5.0.0
189 | '@manypkg/get-packages': 1.1.3
190 | chalk: 2.4.2
191 | fs-extra: 7.0.1
192 | semver: 5.7.1
193 | dev: true
194 |
195 | /@changesets/get-release-plan/3.0.8:
196 | resolution: {integrity: sha512-TJYiWNuP0Lzu2dL/KHuk75w7TkiE5HqoYirrXF7SJIxkhlgH9toQf2C7IapiFTObtuF1qDN8HJAX1CuIOwXldg==}
197 | dependencies:
198 | '@babel/runtime': 7.17.9
199 | '@changesets/assemble-release-plan': 5.1.2
200 | '@changesets/config': 2.0.0
201 | '@changesets/pre': 1.0.11
202 | '@changesets/read': 0.5.5
203 | '@changesets/types': 5.0.0
204 | '@manypkg/get-packages': 1.1.3
205 | dev: true
206 |
207 | /@changesets/get-version-range-type/0.3.2:
208 | resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==}
209 | dev: true
210 |
211 | /@changesets/git/1.3.2:
212 | resolution: {integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==}
213 | dependencies:
214 | '@babel/runtime': 7.17.9
215 | '@changesets/errors': 0.1.4
216 | '@changesets/types': 5.0.0
217 | '@manypkg/get-packages': 1.1.3
218 | is-subdir: 1.2.0
219 | spawndamnit: 2.0.0
220 | dev: true
221 |
222 | /@changesets/logger/0.0.5:
223 | resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==}
224 | dependencies:
225 | chalk: 2.4.2
226 | dev: true
227 |
228 | /@changesets/parse/0.3.13:
229 | resolution: {integrity: sha512-wh9Ifa0dungY6d2nMz6XxF6FZ/1I7j+mEgPAqrIyKS64nifTh1Ua82qKKMMK05CL7i4wiB2NYc3SfnnCX3RVeA==}
230 | dependencies:
231 | '@changesets/types': 5.0.0
232 | js-yaml: 3.14.1
233 | dev: true
234 |
235 | /@changesets/pre/1.0.11:
236 | resolution: {integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==}
237 | dependencies:
238 | '@babel/runtime': 7.17.9
239 | '@changesets/errors': 0.1.4
240 | '@changesets/types': 5.0.0
241 | '@manypkg/get-packages': 1.1.3
242 | fs-extra: 7.0.1
243 | dev: true
244 |
245 | /@changesets/read/0.5.5:
246 | resolution: {integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==}
247 | dependencies:
248 | '@babel/runtime': 7.17.9
249 | '@changesets/git': 1.3.2
250 | '@changesets/logger': 0.0.5
251 | '@changesets/parse': 0.3.13
252 | '@changesets/types': 5.0.0
253 | chalk: 2.4.2
254 | fs-extra: 7.0.1
255 | p-filter: 2.1.0
256 | dev: true
257 |
258 | /@changesets/types/4.1.0:
259 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
260 | dev: true
261 |
262 | /@changesets/types/5.0.0:
263 | resolution: {integrity: sha512-IT1kBLSbAgTS4WtpU6P5ko054hq12vk4tgeIFRVE7Vnm4a/wgbNvBalgiKP0MjEXbCkZbItiGQHkCGxYWR55sA==}
264 | dev: true
265 |
266 | /@changesets/write/0.1.8:
267 | resolution: {integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==}
268 | dependencies:
269 | '@babel/runtime': 7.17.9
270 | '@changesets/types': 5.0.0
271 | fs-extra: 7.0.1
272 | human-id: 1.0.2
273 | prettier: 1.19.1
274 | dev: true
275 |
276 | /@manypkg/find-root/1.1.0:
277 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
278 | dependencies:
279 | '@babel/runtime': 7.17.9
280 | '@types/node': 12.20.49
281 | find-up: 4.1.0
282 | fs-extra: 8.1.0
283 | dev: true
284 |
285 | /@manypkg/get-packages/1.1.3:
286 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
287 | dependencies:
288 | '@babel/runtime': 7.17.9
289 | '@changesets/types': 4.1.0
290 | '@manypkg/find-root': 1.1.0
291 | fs-extra: 8.1.0
292 | globby: 11.1.0
293 | read-yaml-file: 1.1.0
294 | dev: true
295 |
296 | /@next/env/12.1.0:
297 | resolution: {integrity: sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==}
298 | dev: true
299 |
300 | /@next/swc-android-arm64/12.1.0:
301 | resolution: {integrity: sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==}
302 | engines: {node: '>= 10'}
303 | cpu: [arm64]
304 | os: [android]
305 | requiresBuild: true
306 | dev: true
307 | optional: true
308 |
309 | /@next/swc-darwin-arm64/12.1.0:
310 | resolution: {integrity: sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==}
311 | engines: {node: '>= 10'}
312 | cpu: [arm64]
313 | os: [darwin]
314 | requiresBuild: true
315 | dev: true
316 | optional: true
317 |
318 | /@next/swc-darwin-x64/12.1.0:
319 | resolution: {integrity: sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==}
320 | engines: {node: '>= 10'}
321 | cpu: [x64]
322 | os: [darwin]
323 | requiresBuild: true
324 | dev: true
325 | optional: true
326 |
327 | /@next/swc-linux-arm-gnueabihf/12.1.0:
328 | resolution: {integrity: sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==}
329 | engines: {node: '>= 10'}
330 | cpu: [arm]
331 | os: [linux]
332 | requiresBuild: true
333 | dev: true
334 | optional: true
335 |
336 | /@next/swc-linux-arm64-gnu/12.1.0:
337 | resolution: {integrity: sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==}
338 | engines: {node: '>= 10'}
339 | cpu: [arm64]
340 | os: [linux]
341 | requiresBuild: true
342 | dev: true
343 | optional: true
344 |
345 | /@next/swc-linux-arm64-musl/12.1.0:
346 | resolution: {integrity: sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==}
347 | engines: {node: '>= 10'}
348 | cpu: [arm64]
349 | os: [linux]
350 | requiresBuild: true
351 | dev: true
352 | optional: true
353 |
354 | /@next/swc-linux-x64-gnu/12.1.0:
355 | resolution: {integrity: sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==}
356 | engines: {node: '>= 10'}
357 | cpu: [x64]
358 | os: [linux]
359 | requiresBuild: true
360 | dev: true
361 | optional: true
362 |
363 | /@next/swc-linux-x64-musl/12.1.0:
364 | resolution: {integrity: sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==}
365 | engines: {node: '>= 10'}
366 | cpu: [x64]
367 | os: [linux]
368 | requiresBuild: true
369 | dev: true
370 | optional: true
371 |
372 | /@next/swc-win32-arm64-msvc/12.1.0:
373 | resolution: {integrity: sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==}
374 | engines: {node: '>= 10'}
375 | cpu: [arm64]
376 | os: [win32]
377 | requiresBuild: true
378 | dev: true
379 | optional: true
380 |
381 | /@next/swc-win32-ia32-msvc/12.1.0:
382 | resolution: {integrity: sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==}
383 | engines: {node: '>= 10'}
384 | cpu: [ia32]
385 | os: [win32]
386 | requiresBuild: true
387 | dev: true
388 | optional: true
389 |
390 | /@next/swc-win32-x64-msvc/12.1.0:
391 | resolution: {integrity: sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==}
392 | engines: {node: '>= 10'}
393 | cpu: [x64]
394 | os: [win32]
395 | requiresBuild: true
396 | dev: true
397 | optional: true
398 |
399 | /@nodelib/fs.scandir/2.1.5:
400 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
401 | engines: {node: '>= 8'}
402 | dependencies:
403 | '@nodelib/fs.stat': 2.0.5
404 | run-parallel: 1.2.0
405 | dev: true
406 |
407 | /@nodelib/fs.stat/2.0.5:
408 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
409 | engines: {node: '>= 8'}
410 | dev: true
411 |
412 | /@nodelib/fs.walk/1.2.8:
413 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
414 | engines: {node: '>= 8'}
415 | dependencies:
416 | '@nodelib/fs.scandir': 2.1.5
417 | fastq: 1.13.0
418 | dev: true
419 |
420 | /@swc-node/core/1.8.2:
421 | resolution: {integrity: sha512-IoJ7tGHQ6JOMSmFe4VhP64uLmFKMNasS0QEgUrLFQ0h/dTvpQMynnoGBEJoPL6LfsebZ/q4uKqbpWrth6/yrAA==}
422 | engines: {node: '>= 10'}
423 | dependencies:
424 | '@swc/core': 1.2.160
425 | dev: true
426 |
427 | /@swc-node/register/1.4.2:
428 | resolution: {integrity: sha512-wLZz0J7BTO//1Eq7e4eBQjKF380Hr2eVemz849msQSKcVM1D7UJUt/dP2TinEVGx++/BXJ/0q37i6n9Iw0EM0w==}
429 | dependencies:
430 | '@swc-node/core': 1.8.2
431 | '@swc-node/sourcemap-support': 0.1.11
432 | chalk: 4.1.2
433 | debug: 4.3.4
434 | pirates: 4.0.5
435 | tslib: 2.3.1
436 | typescript: 4.6.2
437 | transitivePeerDependencies:
438 | - supports-color
439 | dev: true
440 |
441 | /@swc-node/sourcemap-support/0.1.11:
442 | resolution: {integrity: sha512-b+Mn3oQl+7nUSt7hPzIbY9B30YhcFo1PT4kd9P4QmD6raycmIealOAhAdZID/JevphzsOXHQB4OqJm7Yi5tMcA==}
443 | dependencies:
444 | source-map-support: 0.5.21
445 | dev: true
446 |
447 | /@swc/core-android-arm-eabi/1.2.160:
448 | resolution: {integrity: sha512-VzFP7tYgvpkUhd8wgyNtERqvoPBBDretyMFxAxPe2SxClaBs9Ka95PdiPPZalRq+vFCb/dFxD8Vhz+XO16Kpjg==}
449 | engines: {node: '>=10'}
450 | cpu: [arm]
451 | os: [android]
452 | requiresBuild: true
453 | dev: true
454 | optional: true
455 |
456 | /@swc/core-android-arm64/1.2.160:
457 | resolution: {integrity: sha512-m+xqQaa7TqW3Vm9MUvITtdU8OlAc/9yT+TgOS4l8WlfFI87IDnLLfinKKEp+xfKwzYDdIsh+sC+jdGdIBTMB+Q==}
458 | engines: {node: '>=10'}
459 | cpu: [arm64]
460 | os: [android]
461 | requiresBuild: true
462 | dev: true
463 | optional: true
464 |
465 | /@swc/core-darwin-arm64/1.2.160:
466 | resolution: {integrity: sha512-9bG70KYKvjNf7tZtjOu1h4kDZPtoidZptIXPGSHuUgJ1BbSJYpfRR5xAmq4k37+GqOjIPJp4+lSGQPa2HfejpA==}
467 | engines: {node: '>=10'}
468 | cpu: [arm64]
469 | os: [darwin]
470 | requiresBuild: true
471 | dev: true
472 | optional: true
473 |
474 | /@swc/core-darwin-x64/1.2.160:
475 | resolution: {integrity: sha512-+b4HdKAVf/XPZ9DjgG2axGLbquPEuYwEP3zeWgbWn0s0FYQ7WTFxznf3YrTJE9MYadJeCOs3U80E2xVAtRRS9Q==}
476 | engines: {node: '>=10'}
477 | cpu: [x64]
478 | os: [darwin]
479 | requiresBuild: true
480 | dev: true
481 | optional: true
482 |
483 | /@swc/core-freebsd-x64/1.2.160:
484 | resolution: {integrity: sha512-E5agJwv+RVMoZ8FQIPSO5wLPDQx6jqcMpV207EB3pPaxPWGe4n3DH3vcibHp80RACDNdiaqo5lBeBnGJI4ithw==}
485 | engines: {node: '>=10'}
486 | cpu: [x64]
487 | os: [freebsd]
488 | requiresBuild: true
489 | dev: true
490 | optional: true
491 |
492 | /@swc/core-linux-arm-gnueabihf/1.2.160:
493 | resolution: {integrity: sha512-uCttZRNx+lWVhCYGC6/pGUej08g1SQc5am6R9NVFh111goytcdlPnC4jV8oWzq2QhDWkkKxLoP2CZOytzI4+0w==}
494 | engines: {node: '>=10'}
495 | cpu: [arm]
496 | os: [linux]
497 | requiresBuild: true
498 | dev: true
499 | optional: true
500 |
501 | /@swc/core-linux-arm64-gnu/1.2.160:
502 | resolution: {integrity: sha512-sB18roiv8m/zsY6tXLSrbUls0eKkSkxOEF0ennXVEtz97rMJ+WWnkOc8gI+rUpj3MHbVAIxyDNyyZU4cH5g1jQ==}
503 | engines: {node: '>=10'}
504 | cpu: [arm64]
505 | os: [linux]
506 | requiresBuild: true
507 | dev: true
508 | optional: true
509 |
510 | /@swc/core-linux-arm64-musl/1.2.160:
511 | resolution: {integrity: sha512-PJ7Ukb+BRR3pGYcUag8qRWOB11eByc5YLx/xAMSc3bRmaYW/oj6s8k+1DYiR//BAuNQdf14MpMFzDuWiDEUh7A==}
512 | engines: {node: '>=10'}
513 | cpu: [arm64]
514 | os: [linux]
515 | requiresBuild: true
516 | dev: true
517 | optional: true
518 |
519 | /@swc/core-linux-x64-gnu/1.2.160:
520 | resolution: {integrity: sha512-wVh8Q86xz3t0y5zoUryWQ64bFG/YxdcykBgaog8lU9xkFb1KSqVRE9ia7aKA12/ZtAfpJZLRBleZxBAcaCg9FQ==}
521 | engines: {node: '>=10'}
522 | cpu: [x64]
523 | os: [linux]
524 | requiresBuild: true
525 | dev: true
526 | optional: true
527 |
528 | /@swc/core-linux-x64-musl/1.2.160:
529 | resolution: {integrity: sha512-AnWdarl9WWuDdbc2AX1w76W1jaekSCokxRrWdSGUgQytaZRtybKZEgThvJCQDrSlYQD4XDOhhVRCurTvy4JsfQ==}
530 | engines: {node: '>=10'}
531 | cpu: [x64]
532 | os: [linux]
533 | requiresBuild: true
534 | dev: true
535 | optional: true
536 |
537 | /@swc/core-win32-arm64-msvc/1.2.160:
538 | resolution: {integrity: sha512-ScL27mZRTwEIqBIv9RY34nQvyBvhosiM5Lus4dCFmS71flPcAEv7hJgy4GE3YUQV0ryGNK9NaO43H8sAyNwKVQ==}
539 | engines: {node: '>=10'}
540 | cpu: [arm64]
541 | os: [win32]
542 | requiresBuild: true
543 | dev: true
544 | optional: true
545 |
546 | /@swc/core-win32-ia32-msvc/1.2.160:
547 | resolution: {integrity: sha512-e75zbWlhlyrd5HdrYzELa6OlZxgyaVpJj+c9xMD95HcdklVbmsyt1vuqRxMyqaZUDLyehwwCDRX/ZeDme//M/A==}
548 | engines: {node: '>=10'}
549 | cpu: [ia32]
550 | os: [win32]
551 | requiresBuild: true
552 | dev: true
553 | optional: true
554 |
555 | /@swc/core-win32-x64-msvc/1.2.160:
556 | resolution: {integrity: sha512-GAYT+WzYQY4sr17S21yJh4flJp/sQ62mAs6RfN89p7jIWgm0Bl/SooRl6ocsftTlnZm7K7QC8zmQVeNCWDCLPw==}
557 | engines: {node: '>=10'}
558 | cpu: [x64]
559 | os: [win32]
560 | requiresBuild: true
561 | dev: true
562 | optional: true
563 |
564 | /@swc/core/1.2.160:
565 | resolution: {integrity: sha512-nXoC7HA+aY7AtBPsiqGXocoRLAzzA7MV+InWQtILN7Uru4hB9+rLnLCPc3zSdg7pgnxJLa1tHup1Rz7Vv6TcIQ==}
566 | engines: {node: '>=10'}
567 | hasBin: true
568 | optionalDependencies:
569 | '@swc/core-android-arm-eabi': 1.2.160
570 | '@swc/core-android-arm64': 1.2.160
571 | '@swc/core-darwin-arm64': 1.2.160
572 | '@swc/core-darwin-x64': 1.2.160
573 | '@swc/core-freebsd-x64': 1.2.160
574 | '@swc/core-linux-arm-gnueabihf': 1.2.160
575 | '@swc/core-linux-arm64-gnu': 1.2.160
576 | '@swc/core-linux-arm64-musl': 1.2.160
577 | '@swc/core-linux-x64-gnu': 1.2.160
578 | '@swc/core-linux-x64-musl': 1.2.160
579 | '@swc/core-win32-arm64-msvc': 1.2.160
580 | '@swc/core-win32-ia32-msvc': 1.2.160
581 | '@swc/core-win32-x64-msvc': 1.2.160
582 | dev: true
583 |
584 | /@types/chai-subset/1.3.3:
585 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
586 | dependencies:
587 | '@types/chai': 4.3.0
588 | dev: true
589 |
590 | /@types/chai/4.3.0:
591 | resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==}
592 | dev: true
593 |
594 | /@types/is-ci/3.0.0:
595 | resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==}
596 | dependencies:
597 | ci-info: 3.3.0
598 | dev: true
599 |
600 | /@types/minimist/1.2.2:
601 | resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
602 | dev: true
603 |
604 | /@types/node/12.20.49:
605 | resolution: {integrity: sha512-5e6QNb9bkeh4Hni4ktLqUZuUqnGTX/kou2aZkXyxtuYaHXgBm+In1SHR9V+7kDzWzjB08KC2uqt2doDi7cuAAA==}
606 | dev: true
607 |
608 | /@types/normalize-package-data/2.4.1:
609 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
610 | dev: true
611 |
612 | /@types/prop-types/15.7.4:
613 | resolution: {integrity: sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==}
614 | dev: true
615 |
616 | /@types/react-dom/18.0.4:
617 | resolution: {integrity: sha512-FgTtbqPOCI3dzZPZoC2T/sx3L34qxy99ITWn4eoSA95qPyXDMH0ALoAqUp49ITniiJFsXUVBtalh/KffMpg21Q==}
618 | dependencies:
619 | '@types/react': 17.0.42
620 | dev: true
621 |
622 | /@types/react/17.0.42:
623 | resolution: {integrity: sha512-nuab3x3CpJ7VFeNA+3HTUuEkvClYHXqWtWd7Ud6AZYW7Z3NH9WKtgU+tFB0ZLcHq+niB/HnzLcaZPqMJ95+k5Q==}
624 | dependencies:
625 | '@types/prop-types': 15.7.4
626 | '@types/scheduler': 0.16.2
627 | csstype: 3.0.11
628 | dev: true
629 |
630 | /@types/scheduler/0.16.2:
631 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
632 | dev: true
633 |
634 | /@types/semver/6.2.3:
635 | resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==}
636 | dev: true
637 |
638 | /ansi-colors/4.1.1:
639 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
640 | engines: {node: '>=6'}
641 | dev: true
642 |
643 | /ansi-regex/5.0.1:
644 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
645 | engines: {node: '>=8'}
646 | dev: true
647 |
648 | /ansi-styles/3.2.1:
649 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
650 | engines: {node: '>=4'}
651 | dependencies:
652 | color-convert: 1.9.3
653 | dev: true
654 |
655 | /ansi-styles/4.3.0:
656 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
657 | engines: {node: '>=8'}
658 | dependencies:
659 | color-convert: 2.0.1
660 | dev: true
661 |
662 | /argparse/1.0.10:
663 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
664 | dependencies:
665 | sprintf-js: 1.0.3
666 | dev: true
667 |
668 | /array-union/2.1.0:
669 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
670 | engines: {node: '>=8'}
671 | dev: true
672 |
673 | /arrify/1.0.1:
674 | resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=}
675 | engines: {node: '>=0.10.0'}
676 | dev: true
677 |
678 | /assertion-error/1.1.0:
679 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
680 | dev: true
681 |
682 | /better-path-resolve/1.0.0:
683 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
684 | engines: {node: '>=4'}
685 | dependencies:
686 | is-windows: 1.0.2
687 | dev: true
688 |
689 | /braces/3.0.2:
690 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
691 | engines: {node: '>=8'}
692 | dependencies:
693 | fill-range: 7.0.1
694 | dev: true
695 |
696 | /breakword/1.0.5:
697 | resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==}
698 | dependencies:
699 | wcwidth: 1.0.1
700 | dev: true
701 |
702 | /buffer-from/1.1.2:
703 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
704 | dev: true
705 |
706 | /camelcase-keys/6.2.2:
707 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
708 | engines: {node: '>=8'}
709 | dependencies:
710 | camelcase: 5.3.1
711 | map-obj: 4.3.0
712 | quick-lru: 4.0.1
713 | dev: true
714 |
715 | /camelcase/5.3.1:
716 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
717 | engines: {node: '>=6'}
718 | dev: true
719 |
720 | /caniuse-lite/1.0.30001319:
721 | resolution: {integrity: sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==}
722 | dev: true
723 |
724 | /chai/4.3.6:
725 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==}
726 | engines: {node: '>=4'}
727 | dependencies:
728 | assertion-error: 1.1.0
729 | check-error: 1.0.2
730 | deep-eql: 3.0.1
731 | get-func-name: 2.0.0
732 | loupe: 2.3.4
733 | pathval: 1.1.1
734 | type-detect: 4.0.8
735 | dev: true
736 |
737 | /chalk/2.4.2:
738 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
739 | engines: {node: '>=4'}
740 | dependencies:
741 | ansi-styles: 3.2.1
742 | escape-string-regexp: 1.0.5
743 | supports-color: 5.5.0
744 | dev: true
745 |
746 | /chalk/3.0.0:
747 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
748 | engines: {node: '>=8'}
749 | dependencies:
750 | ansi-styles: 4.3.0
751 | supports-color: 7.2.0
752 | dev: true
753 |
754 | /chalk/4.1.2:
755 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
756 | engines: {node: '>=10'}
757 | dependencies:
758 | ansi-styles: 4.3.0
759 | supports-color: 7.2.0
760 | dev: true
761 |
762 | /chardet/0.7.0:
763 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
764 | dev: true
765 |
766 | /check-error/1.0.2:
767 | resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=}
768 | dev: true
769 |
770 | /ci-info/3.3.0:
771 | resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==}
772 | dev: true
773 |
774 | /cliui/6.0.0:
775 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
776 | dependencies:
777 | string-width: 4.2.3
778 | strip-ansi: 6.0.1
779 | wrap-ansi: 6.2.0
780 | dev: true
781 |
782 | /clone/1.0.4:
783 | resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=}
784 | engines: {node: '>=0.8'}
785 | dev: true
786 |
787 | /cmd-ts/0.10.0:
788 | resolution: {integrity: sha512-DsVhXSE8yljY96pu+UOlFr67CNrZVCowLh6X1e7sIoLZkR2esoI5Agbokxi8HXu79ow4HBCCI2EcE3t7hrra8Q==}
789 | dependencies:
790 | chalk: 4.1.2
791 | debug: 4.3.4
792 | didyoumean: 1.2.2
793 | strip-ansi: 6.0.1
794 | transitivePeerDependencies:
795 | - supports-color
796 | dev: true
797 |
798 | /color-convert/1.9.3:
799 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
800 | dependencies:
801 | color-name: 1.1.3
802 | dev: true
803 |
804 | /color-convert/2.0.1:
805 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
806 | engines: {node: '>=7.0.0'}
807 | dependencies:
808 | color-name: 1.1.4
809 | dev: true
810 |
811 | /color-name/1.1.3:
812 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
813 | dev: true
814 |
815 | /color-name/1.1.4:
816 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
817 | dev: true
818 |
819 | /cross-spawn/5.1.0:
820 | resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=}
821 | dependencies:
822 | lru-cache: 4.1.5
823 | shebang-command: 1.2.0
824 | which: 1.3.1
825 | dev: true
826 |
827 | /csstype/3.0.11:
828 | resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==}
829 | dev: true
830 |
831 | /csv-generate/3.4.3:
832 | resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==}
833 | dev: true
834 |
835 | /csv-parse/4.16.3:
836 | resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==}
837 | dev: true
838 |
839 | /csv-stringify/5.6.5:
840 | resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==}
841 | dev: true
842 |
843 | /csv/5.5.3:
844 | resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==}
845 | engines: {node: '>= 0.1.90'}
846 | dependencies:
847 | csv-generate: 3.4.3
848 | csv-parse: 4.16.3
849 | csv-stringify: 5.6.5
850 | stream-transform: 2.1.3
851 | dev: true
852 |
853 | /debug/4.3.4:
854 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
855 | engines: {node: '>=6.0'}
856 | peerDependencies:
857 | supports-color: '*'
858 | peerDependenciesMeta:
859 | supports-color:
860 | optional: true
861 | dependencies:
862 | ms: 2.1.2
863 | dev: true
864 |
865 | /decamelize-keys/1.1.0:
866 | resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=}
867 | engines: {node: '>=0.10.0'}
868 | dependencies:
869 | decamelize: 1.2.0
870 | map-obj: 1.0.1
871 | dev: true
872 |
873 | /decamelize/1.2.0:
874 | resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=}
875 | engines: {node: '>=0.10.0'}
876 | dev: true
877 |
878 | /deep-eql/3.0.1:
879 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==}
880 | engines: {node: '>=0.12'}
881 | dependencies:
882 | type-detect: 4.0.8
883 | dev: true
884 |
885 | /defaults/1.0.3:
886 | resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=}
887 | dependencies:
888 | clone: 1.0.4
889 | dev: true
890 |
891 | /detect-indent/6.1.0:
892 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
893 | engines: {node: '>=8'}
894 | dev: true
895 |
896 | /didyoumean/1.2.2:
897 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
898 | dev: true
899 |
900 | /dir-glob/3.0.1:
901 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
902 | engines: {node: '>=8'}
903 | dependencies:
904 | path-type: 4.0.0
905 | dev: true
906 |
907 | /emoji-regex/8.0.0:
908 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
909 | dev: true
910 |
911 | /enquirer/2.3.6:
912 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==}
913 | engines: {node: '>=8.6'}
914 | dependencies:
915 | ansi-colors: 4.1.1
916 | dev: true
917 |
918 | /error-ex/1.3.2:
919 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
920 | dependencies:
921 | is-arrayish: 0.2.1
922 | dev: true
923 |
924 | /esbuild-android-64/0.14.27:
925 | resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==}
926 | engines: {node: '>=12'}
927 | cpu: [x64]
928 | os: [android]
929 | requiresBuild: true
930 | dev: true
931 | optional: true
932 |
933 | /esbuild-android-arm64/0.14.27:
934 | resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==}
935 | engines: {node: '>=12'}
936 | cpu: [arm64]
937 | os: [android]
938 | requiresBuild: true
939 | dev: true
940 | optional: true
941 |
942 | /esbuild-darwin-64/0.14.27:
943 | resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==}
944 | engines: {node: '>=12'}
945 | cpu: [x64]
946 | os: [darwin]
947 | requiresBuild: true
948 | dev: true
949 | optional: true
950 |
951 | /esbuild-darwin-arm64/0.14.27:
952 | resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==}
953 | engines: {node: '>=12'}
954 | cpu: [arm64]
955 | os: [darwin]
956 | requiresBuild: true
957 | dev: true
958 | optional: true
959 |
960 | /esbuild-freebsd-64/0.14.27:
961 | resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==}
962 | engines: {node: '>=12'}
963 | cpu: [x64]
964 | os: [freebsd]
965 | requiresBuild: true
966 | dev: true
967 | optional: true
968 |
969 | /esbuild-freebsd-arm64/0.14.27:
970 | resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==}
971 | engines: {node: '>=12'}
972 | cpu: [arm64]
973 | os: [freebsd]
974 | requiresBuild: true
975 | dev: true
976 | optional: true
977 |
978 | /esbuild-linux-32/0.14.27:
979 | resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==}
980 | engines: {node: '>=12'}
981 | cpu: [ia32]
982 | os: [linux]
983 | requiresBuild: true
984 | dev: true
985 | optional: true
986 |
987 | /esbuild-linux-64/0.14.27:
988 | resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==}
989 | engines: {node: '>=12'}
990 | cpu: [x64]
991 | os: [linux]
992 | requiresBuild: true
993 | dev: true
994 | optional: true
995 |
996 | /esbuild-linux-arm/0.14.27:
997 | resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==}
998 | engines: {node: '>=12'}
999 | cpu: [arm]
1000 | os: [linux]
1001 | requiresBuild: true
1002 | dev: true
1003 | optional: true
1004 |
1005 | /esbuild-linux-arm64/0.14.27:
1006 | resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==}
1007 | engines: {node: '>=12'}
1008 | cpu: [arm64]
1009 | os: [linux]
1010 | requiresBuild: true
1011 | dev: true
1012 | optional: true
1013 |
1014 | /esbuild-linux-mips64le/0.14.27:
1015 | resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==}
1016 | engines: {node: '>=12'}
1017 | cpu: [mips64el]
1018 | os: [linux]
1019 | requiresBuild: true
1020 | dev: true
1021 | optional: true
1022 |
1023 | /esbuild-linux-ppc64le/0.14.27:
1024 | resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==}
1025 | engines: {node: '>=12'}
1026 | cpu: [ppc64]
1027 | os: [linux]
1028 | requiresBuild: true
1029 | dev: true
1030 | optional: true
1031 |
1032 | /esbuild-linux-riscv64/0.14.27:
1033 | resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==}
1034 | engines: {node: '>=12'}
1035 | cpu: [riscv64]
1036 | os: [linux]
1037 | requiresBuild: true
1038 | dev: true
1039 | optional: true
1040 |
1041 | /esbuild-linux-s390x/0.14.27:
1042 | resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==}
1043 | engines: {node: '>=12'}
1044 | cpu: [s390x]
1045 | os: [linux]
1046 | requiresBuild: true
1047 | dev: true
1048 | optional: true
1049 |
1050 | /esbuild-netbsd-64/0.14.27:
1051 | resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==}
1052 | engines: {node: '>=12'}
1053 | cpu: [x64]
1054 | os: [netbsd]
1055 | requiresBuild: true
1056 | dev: true
1057 | optional: true
1058 |
1059 | /esbuild-openbsd-64/0.14.27:
1060 | resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==}
1061 | engines: {node: '>=12'}
1062 | cpu: [x64]
1063 | os: [openbsd]
1064 | requiresBuild: true
1065 | dev: true
1066 | optional: true
1067 |
1068 | /esbuild-sunos-64/0.14.27:
1069 | resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==}
1070 | engines: {node: '>=12'}
1071 | cpu: [x64]
1072 | os: [sunos]
1073 | requiresBuild: true
1074 | dev: true
1075 | optional: true
1076 |
1077 | /esbuild-windows-32/0.14.27:
1078 | resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==}
1079 | engines: {node: '>=12'}
1080 | cpu: [ia32]
1081 | os: [win32]
1082 | requiresBuild: true
1083 | dev: true
1084 | optional: true
1085 |
1086 | /esbuild-windows-64/0.14.27:
1087 | resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==}
1088 | engines: {node: '>=12'}
1089 | cpu: [x64]
1090 | os: [win32]
1091 | requiresBuild: true
1092 | dev: true
1093 | optional: true
1094 |
1095 | /esbuild-windows-arm64/0.14.27:
1096 | resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==}
1097 | engines: {node: '>=12'}
1098 | cpu: [arm64]
1099 | os: [win32]
1100 | requiresBuild: true
1101 | dev: true
1102 | optional: true
1103 |
1104 | /esbuild/0.14.27:
1105 | resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==}
1106 | engines: {node: '>=12'}
1107 | hasBin: true
1108 | requiresBuild: true
1109 | optionalDependencies:
1110 | esbuild-android-64: 0.14.27
1111 | esbuild-android-arm64: 0.14.27
1112 | esbuild-darwin-64: 0.14.27
1113 | esbuild-darwin-arm64: 0.14.27
1114 | esbuild-freebsd-64: 0.14.27
1115 | esbuild-freebsd-arm64: 0.14.27
1116 | esbuild-linux-32: 0.14.27
1117 | esbuild-linux-64: 0.14.27
1118 | esbuild-linux-arm: 0.14.27
1119 | esbuild-linux-arm64: 0.14.27
1120 | esbuild-linux-mips64le: 0.14.27
1121 | esbuild-linux-ppc64le: 0.14.27
1122 | esbuild-linux-riscv64: 0.14.27
1123 | esbuild-linux-s390x: 0.14.27
1124 | esbuild-netbsd-64: 0.14.27
1125 | esbuild-openbsd-64: 0.14.27
1126 | esbuild-sunos-64: 0.14.27
1127 | esbuild-windows-32: 0.14.27
1128 | esbuild-windows-64: 0.14.27
1129 | esbuild-windows-arm64: 0.14.27
1130 | dev: true
1131 |
1132 | /escape-string-regexp/1.0.5:
1133 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
1134 | engines: {node: '>=0.8.0'}
1135 | dev: true
1136 |
1137 | /esprima/4.0.1:
1138 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1139 | engines: {node: '>=4'}
1140 | hasBin: true
1141 | dev: true
1142 |
1143 | /extendable-error/0.1.7:
1144 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
1145 | dev: true
1146 |
1147 | /external-editor/3.1.0:
1148 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
1149 | engines: {node: '>=4'}
1150 | dependencies:
1151 | chardet: 0.7.0
1152 | iconv-lite: 0.4.24
1153 | tmp: 0.0.33
1154 | dev: true
1155 |
1156 | /fast-glob/3.2.11:
1157 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
1158 | engines: {node: '>=8.6.0'}
1159 | dependencies:
1160 | '@nodelib/fs.stat': 2.0.5
1161 | '@nodelib/fs.walk': 1.2.8
1162 | glob-parent: 5.1.2
1163 | merge2: 1.4.1
1164 | micromatch: 4.0.4
1165 | dev: true
1166 |
1167 | /fastq/1.13.0:
1168 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
1169 | dependencies:
1170 | reusify: 1.0.4
1171 | dev: true
1172 |
1173 | /fill-range/7.0.1:
1174 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1175 | engines: {node: '>=8'}
1176 | dependencies:
1177 | to-regex-range: 5.0.1
1178 | dev: true
1179 |
1180 | /find-up/4.1.0:
1181 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
1182 | engines: {node: '>=8'}
1183 | dependencies:
1184 | locate-path: 5.0.0
1185 | path-exists: 4.0.0
1186 | dev: true
1187 |
1188 | /find-up/5.0.0:
1189 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1190 | engines: {node: '>=10'}
1191 | dependencies:
1192 | locate-path: 6.0.0
1193 | path-exists: 4.0.0
1194 | dev: true
1195 |
1196 | /find-yarn-workspace-root2/1.2.16:
1197 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
1198 | dependencies:
1199 | micromatch: 4.0.4
1200 | pkg-dir: 4.2.0
1201 | dev: true
1202 |
1203 | /fs-extra/7.0.1:
1204 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
1205 | engines: {node: '>=6 <7 || >=8'}
1206 | dependencies:
1207 | graceful-fs: 4.2.10
1208 | jsonfile: 4.0.0
1209 | universalify: 0.1.2
1210 | dev: true
1211 |
1212 | /fs-extra/8.1.0:
1213 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
1214 | engines: {node: '>=6 <7 || >=8'}
1215 | dependencies:
1216 | graceful-fs: 4.2.10
1217 | jsonfile: 4.0.0
1218 | universalify: 0.1.2
1219 | dev: true
1220 |
1221 | /fsevents/2.3.2:
1222 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1223 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1224 | os: [darwin]
1225 | requiresBuild: true
1226 | dev: true
1227 | optional: true
1228 |
1229 | /function-bind/1.1.1:
1230 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1231 | dev: true
1232 |
1233 | /get-caller-file/2.0.5:
1234 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
1235 | engines: {node: 6.* || 8.* || >= 10.*}
1236 | dev: true
1237 |
1238 | /get-func-name/2.0.0:
1239 | resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=}
1240 | dev: true
1241 |
1242 | /glob-parent/5.1.2:
1243 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1244 | engines: {node: '>= 6'}
1245 | dependencies:
1246 | is-glob: 4.0.3
1247 | dev: true
1248 |
1249 | /globby/11.1.0:
1250 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1251 | engines: {node: '>=10'}
1252 | dependencies:
1253 | array-union: 2.1.0
1254 | dir-glob: 3.0.1
1255 | fast-glob: 3.2.11
1256 | ignore: 5.2.0
1257 | merge2: 1.4.1
1258 | slash: 3.0.0
1259 | dev: true
1260 |
1261 | /graceful-fs/4.2.10:
1262 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
1263 | dev: true
1264 |
1265 | /grapheme-splitter/1.0.4:
1266 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1267 | dev: true
1268 |
1269 | /hard-rejection/2.1.0:
1270 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
1271 | engines: {node: '>=6'}
1272 | dev: true
1273 |
1274 | /has-flag/3.0.0:
1275 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
1276 | engines: {node: '>=4'}
1277 | dev: true
1278 |
1279 | /has-flag/4.0.0:
1280 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1281 | engines: {node: '>=8'}
1282 | dev: true
1283 |
1284 | /has/1.0.3:
1285 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1286 | engines: {node: '>= 0.4.0'}
1287 | dependencies:
1288 | function-bind: 1.1.1
1289 | dev: true
1290 |
1291 | /hosted-git-info/2.8.9:
1292 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
1293 | dev: true
1294 |
1295 | /human-id/1.0.2:
1296 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
1297 | dev: true
1298 |
1299 | /iconv-lite/0.4.24:
1300 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
1301 | engines: {node: '>=0.10.0'}
1302 | dependencies:
1303 | safer-buffer: 2.1.2
1304 | dev: true
1305 |
1306 | /ignore/5.2.0:
1307 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
1308 | engines: {node: '>= 4'}
1309 | dev: true
1310 |
1311 | /indent-string/4.0.0:
1312 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
1313 | engines: {node: '>=8'}
1314 | dev: true
1315 |
1316 | /is-arrayish/0.2.1:
1317 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=}
1318 | dev: true
1319 |
1320 | /is-ci/3.0.1:
1321 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
1322 | hasBin: true
1323 | dependencies:
1324 | ci-info: 3.3.0
1325 | dev: true
1326 |
1327 | /is-core-module/2.8.1:
1328 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
1329 | dependencies:
1330 | has: 1.0.3
1331 | dev: true
1332 |
1333 | /is-extglob/2.1.1:
1334 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
1335 | engines: {node: '>=0.10.0'}
1336 | dev: true
1337 |
1338 | /is-fullwidth-code-point/3.0.0:
1339 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1340 | engines: {node: '>=8'}
1341 | dev: true
1342 |
1343 | /is-glob/4.0.3:
1344 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1345 | engines: {node: '>=0.10.0'}
1346 | dependencies:
1347 | is-extglob: 2.1.1
1348 | dev: true
1349 |
1350 | /is-number/7.0.0:
1351 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1352 | engines: {node: '>=0.12.0'}
1353 | dev: true
1354 |
1355 | /is-plain-obj/1.1.0:
1356 | resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=}
1357 | engines: {node: '>=0.10.0'}
1358 | dev: true
1359 |
1360 | /is-subdir/1.2.0:
1361 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
1362 | engines: {node: '>=4'}
1363 | dependencies:
1364 | better-path-resolve: 1.0.0
1365 | dev: true
1366 |
1367 | /is-windows/1.0.2:
1368 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
1369 | engines: {node: '>=0.10.0'}
1370 | dev: true
1371 |
1372 | /isexe/2.0.0:
1373 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
1374 | dev: true
1375 |
1376 | /js-tokens/4.0.0:
1377 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1378 |
1379 | /js-yaml/3.14.1:
1380 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
1381 | hasBin: true
1382 | dependencies:
1383 | argparse: 1.0.10
1384 | esprima: 4.0.1
1385 | dev: true
1386 |
1387 | /json-parse-even-better-errors/2.3.1:
1388 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
1389 | dev: true
1390 |
1391 | /jsonfile/4.0.0:
1392 | resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=}
1393 | optionalDependencies:
1394 | graceful-fs: 4.2.10
1395 | dev: true
1396 |
1397 | /kind-of/6.0.3:
1398 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
1399 | engines: {node: '>=0.10.0'}
1400 | dev: true
1401 |
1402 | /lines-and-columns/1.2.4:
1403 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1404 | dev: true
1405 |
1406 | /load-yaml-file/0.2.0:
1407 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
1408 | engines: {node: '>=6'}
1409 | dependencies:
1410 | graceful-fs: 4.2.10
1411 | js-yaml: 3.14.1
1412 | pify: 4.0.1
1413 | strip-bom: 3.0.0
1414 | dev: true
1415 |
1416 | /local-pkg/0.4.1:
1417 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==}
1418 | engines: {node: '>=14'}
1419 | dev: true
1420 |
1421 | /locate-path/5.0.0:
1422 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
1423 | engines: {node: '>=8'}
1424 | dependencies:
1425 | p-locate: 4.1.0
1426 | dev: true
1427 |
1428 | /locate-path/6.0.0:
1429 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1430 | engines: {node: '>=10'}
1431 | dependencies:
1432 | p-locate: 5.0.0
1433 | dev: true
1434 |
1435 | /lodash.startcase/4.4.0:
1436 | resolution: {integrity: sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=}
1437 | dev: true
1438 |
1439 | /loose-envify/1.4.0:
1440 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1441 | hasBin: true
1442 | dependencies:
1443 | js-tokens: 4.0.0
1444 |
1445 | /loupe/2.3.4:
1446 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==}
1447 | dependencies:
1448 | get-func-name: 2.0.0
1449 | dev: true
1450 |
1451 | /lru-cache/4.1.5:
1452 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
1453 | dependencies:
1454 | pseudomap: 1.0.2
1455 | yallist: 2.1.2
1456 | dev: true
1457 |
1458 | /map-obj/1.0.1:
1459 | resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=}
1460 | engines: {node: '>=0.10.0'}
1461 | dev: true
1462 |
1463 | /map-obj/4.3.0:
1464 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
1465 | engines: {node: '>=8'}
1466 | dev: true
1467 |
1468 | /meow/6.1.1:
1469 | resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==}
1470 | engines: {node: '>=8'}
1471 | dependencies:
1472 | '@types/minimist': 1.2.2
1473 | camelcase-keys: 6.2.2
1474 | decamelize-keys: 1.1.0
1475 | hard-rejection: 2.1.0
1476 | minimist-options: 4.1.0
1477 | normalize-package-data: 2.5.0
1478 | read-pkg-up: 7.0.1
1479 | redent: 3.0.0
1480 | trim-newlines: 3.0.1
1481 | type-fest: 0.13.1
1482 | yargs-parser: 18.1.3
1483 | dev: true
1484 |
1485 | /merge2/1.4.1:
1486 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1487 | engines: {node: '>= 8'}
1488 | dev: true
1489 |
1490 | /micromatch/4.0.4:
1491 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==}
1492 | engines: {node: '>=8.6'}
1493 | dependencies:
1494 | braces: 3.0.2
1495 | picomatch: 2.3.1
1496 | dev: true
1497 |
1498 | /min-indent/1.0.1:
1499 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
1500 | engines: {node: '>=4'}
1501 | dev: true
1502 |
1503 | /minimist-options/4.1.0:
1504 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
1505 | engines: {node: '>= 6'}
1506 | dependencies:
1507 | arrify: 1.0.1
1508 | is-plain-obj: 1.1.0
1509 | kind-of: 6.0.3
1510 | dev: true
1511 |
1512 | /mixme/0.5.4:
1513 | resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==}
1514 | engines: {node: '>= 8.0.0'}
1515 | dev: true
1516 |
1517 | /ms/2.1.2:
1518 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1519 | dev: true
1520 |
1521 | /nanoid/3.3.1:
1522 | resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==}
1523 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1524 | hasBin: true
1525 | dev: true
1526 |
1527 | /next/12.1.0_react-dom@17.0.2+react@17.0.2:
1528 | resolution: {integrity: sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==}
1529 | engines: {node: '>=12.22.0'}
1530 | hasBin: true
1531 | peerDependencies:
1532 | fibers: '>= 3.1.0'
1533 | node-sass: ^6.0.0 || ^7.0.0
1534 | react: ^17.0.2 || ^18.0.0-0
1535 | react-dom: ^17.0.2 || ^18.0.0-0
1536 | sass: ^1.3.0
1537 | peerDependenciesMeta:
1538 | fibers:
1539 | optional: true
1540 | node-sass:
1541 | optional: true
1542 | sass:
1543 | optional: true
1544 | dependencies:
1545 | '@next/env': 12.1.0
1546 | caniuse-lite: 1.0.30001319
1547 | postcss: 8.4.5
1548 | react: 17.0.2
1549 | react-dom: 17.0.2_react@17.0.2
1550 | styled-jsx: 5.0.0_react@17.0.2
1551 | use-subscription: 1.5.1_react@17.0.2
1552 | optionalDependencies:
1553 | '@next/swc-android-arm64': 12.1.0
1554 | '@next/swc-darwin-arm64': 12.1.0
1555 | '@next/swc-darwin-x64': 12.1.0
1556 | '@next/swc-linux-arm-gnueabihf': 12.1.0
1557 | '@next/swc-linux-arm64-gnu': 12.1.0
1558 | '@next/swc-linux-arm64-musl': 12.1.0
1559 | '@next/swc-linux-x64-gnu': 12.1.0
1560 | '@next/swc-linux-x64-musl': 12.1.0
1561 | '@next/swc-win32-arm64-msvc': 12.1.0
1562 | '@next/swc-win32-ia32-msvc': 12.1.0
1563 | '@next/swc-win32-x64-msvc': 12.1.0
1564 | transitivePeerDependencies:
1565 | - '@babel/core'
1566 | - babel-plugin-macros
1567 | dev: true
1568 |
1569 | /normalize-package-data/2.5.0:
1570 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
1571 | dependencies:
1572 | hosted-git-info: 2.8.9
1573 | resolve: 1.22.0
1574 | semver: 5.7.1
1575 | validate-npm-package-license: 3.0.4
1576 | dev: true
1577 |
1578 | /object-assign/4.1.1:
1579 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
1580 | engines: {node: '>=0.10.0'}
1581 |
1582 | /os-tmpdir/1.0.2:
1583 | resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=}
1584 | engines: {node: '>=0.10.0'}
1585 | dev: true
1586 |
1587 | /outdent/0.5.0:
1588 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
1589 | dev: true
1590 |
1591 | /p-filter/2.1.0:
1592 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
1593 | engines: {node: '>=8'}
1594 | dependencies:
1595 | p-map: 2.1.0
1596 | dev: true
1597 |
1598 | /p-limit/2.3.0:
1599 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
1600 | engines: {node: '>=6'}
1601 | dependencies:
1602 | p-try: 2.2.0
1603 | dev: true
1604 |
1605 | /p-limit/3.1.0:
1606 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1607 | engines: {node: '>=10'}
1608 | dependencies:
1609 | yocto-queue: 0.1.0
1610 | dev: true
1611 |
1612 | /p-locate/4.1.0:
1613 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
1614 | engines: {node: '>=8'}
1615 | dependencies:
1616 | p-limit: 2.3.0
1617 | dev: true
1618 |
1619 | /p-locate/5.0.0:
1620 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1621 | engines: {node: '>=10'}
1622 | dependencies:
1623 | p-limit: 3.1.0
1624 | dev: true
1625 |
1626 | /p-map/2.1.0:
1627 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
1628 | engines: {node: '>=6'}
1629 | dev: true
1630 |
1631 | /p-try/2.2.0:
1632 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
1633 | engines: {node: '>=6'}
1634 | dev: true
1635 |
1636 | /parse-json/5.2.0:
1637 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
1638 | engines: {node: '>=8'}
1639 | dependencies:
1640 | '@babel/code-frame': 7.16.7
1641 | error-ex: 1.3.2
1642 | json-parse-even-better-errors: 2.3.1
1643 | lines-and-columns: 1.2.4
1644 | dev: true
1645 |
1646 | /path-exists/4.0.0:
1647 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1648 | engines: {node: '>=8'}
1649 | dev: true
1650 |
1651 | /path-parse/1.0.7:
1652 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1653 | dev: true
1654 |
1655 | /path-type/4.0.0:
1656 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1657 | engines: {node: '>=8'}
1658 | dev: true
1659 |
1660 | /pathval/1.1.1:
1661 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
1662 | dev: true
1663 |
1664 | /picocolors/1.0.0:
1665 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1666 | dev: true
1667 |
1668 | /picomatch/2.3.1:
1669 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1670 | engines: {node: '>=8.6'}
1671 | dev: true
1672 |
1673 | /pify/4.0.1:
1674 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
1675 | engines: {node: '>=6'}
1676 | dev: true
1677 |
1678 | /pirates/4.0.5:
1679 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
1680 | engines: {node: '>= 6'}
1681 | dev: true
1682 |
1683 | /pkg-dir/4.2.0:
1684 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
1685 | engines: {node: '>=8'}
1686 | dependencies:
1687 | find-up: 4.1.0
1688 | dev: true
1689 |
1690 | /postcss/8.4.12:
1691 | resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==}
1692 | engines: {node: ^10 || ^12 || >=14}
1693 | dependencies:
1694 | nanoid: 3.3.1
1695 | picocolors: 1.0.0
1696 | source-map-js: 1.0.2
1697 | dev: true
1698 |
1699 | /postcss/8.4.5:
1700 | resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==}
1701 | engines: {node: ^10 || ^12 || >=14}
1702 | dependencies:
1703 | nanoid: 3.3.1
1704 | picocolors: 1.0.0
1705 | source-map-js: 1.0.2
1706 | dev: true
1707 |
1708 | /preferred-pm/3.0.3:
1709 | resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==}
1710 | engines: {node: '>=10'}
1711 | dependencies:
1712 | find-up: 5.0.0
1713 | find-yarn-workspace-root2: 1.2.16
1714 | path-exists: 4.0.0
1715 | which-pm: 2.0.0
1716 | dev: true
1717 |
1718 | /prettier/1.19.1:
1719 | resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==}
1720 | engines: {node: '>=4'}
1721 | hasBin: true
1722 | dev: true
1723 |
1724 | /prettier/2.6.0:
1725 | resolution: {integrity: sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==}
1726 | engines: {node: '>=10.13.0'}
1727 | hasBin: true
1728 | dev: true
1729 |
1730 | /pseudomap/1.0.2:
1731 | resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=}
1732 | dev: true
1733 |
1734 | /queue-microtask/1.2.3:
1735 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1736 | dev: true
1737 |
1738 | /quick-lru/4.0.1:
1739 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
1740 | engines: {node: '>=8'}
1741 | dev: true
1742 |
1743 | /react-dom/17.0.2_react@17.0.2:
1744 | resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==}
1745 | peerDependencies:
1746 | react: 17.0.2
1747 | dependencies:
1748 | loose-envify: 1.4.0
1749 | object-assign: 4.1.1
1750 | react: 17.0.2
1751 | scheduler: 0.20.2
1752 |
1753 | /react/17.0.2:
1754 | resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==}
1755 | engines: {node: '>=0.10.0'}
1756 | dependencies:
1757 | loose-envify: 1.4.0
1758 | object-assign: 4.1.1
1759 |
1760 | /read-pkg-up/7.0.1:
1761 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
1762 | engines: {node: '>=8'}
1763 | dependencies:
1764 | find-up: 4.1.0
1765 | read-pkg: 5.2.0
1766 | type-fest: 0.8.1
1767 | dev: true
1768 |
1769 | /read-pkg/5.2.0:
1770 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
1771 | engines: {node: '>=8'}
1772 | dependencies:
1773 | '@types/normalize-package-data': 2.4.1
1774 | normalize-package-data: 2.5.0
1775 | parse-json: 5.2.0
1776 | type-fest: 0.6.0
1777 | dev: true
1778 |
1779 | /read-yaml-file/1.1.0:
1780 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
1781 | engines: {node: '>=6'}
1782 | dependencies:
1783 | graceful-fs: 4.2.10
1784 | js-yaml: 3.14.1
1785 | pify: 4.0.1
1786 | strip-bom: 3.0.0
1787 | dev: true
1788 |
1789 | /redent/3.0.0:
1790 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
1791 | engines: {node: '>=8'}
1792 | dependencies:
1793 | indent-string: 4.0.0
1794 | strip-indent: 3.0.0
1795 | dev: true
1796 |
1797 | /regenerator-runtime/0.13.9:
1798 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
1799 | dev: true
1800 |
1801 | /require-directory/2.1.1:
1802 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=}
1803 | engines: {node: '>=0.10.0'}
1804 | dev: true
1805 |
1806 | /require-main-filename/2.0.0:
1807 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
1808 | dev: true
1809 |
1810 | /resolve-from/5.0.0:
1811 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
1812 | engines: {node: '>=8'}
1813 | dev: true
1814 |
1815 | /resolve/1.22.0:
1816 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
1817 | hasBin: true
1818 | dependencies:
1819 | is-core-module: 2.8.1
1820 | path-parse: 1.0.7
1821 | supports-preserve-symlinks-flag: 1.0.0
1822 | dev: true
1823 |
1824 | /reusify/1.0.4:
1825 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1826 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1827 | dev: true
1828 |
1829 | /rollup/2.70.1:
1830 | resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==}
1831 | engines: {node: '>=10.0.0'}
1832 | hasBin: true
1833 | optionalDependencies:
1834 | fsevents: 2.3.2
1835 | dev: true
1836 |
1837 | /run-parallel/1.2.0:
1838 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1839 | dependencies:
1840 | queue-microtask: 1.2.3
1841 | dev: true
1842 |
1843 | /safer-buffer/2.1.2:
1844 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
1845 | dev: true
1846 |
1847 | /scheduler/0.20.2:
1848 | resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==}
1849 | dependencies:
1850 | loose-envify: 1.4.0
1851 | object-assign: 4.1.1
1852 |
1853 | /semver/5.7.1:
1854 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
1855 | hasBin: true
1856 | dev: true
1857 |
1858 | /set-blocking/2.0.0:
1859 | resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
1860 | dev: true
1861 |
1862 | /shebang-command/1.2.0:
1863 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=}
1864 | engines: {node: '>=0.10.0'}
1865 | dependencies:
1866 | shebang-regex: 1.0.0
1867 | dev: true
1868 |
1869 | /shebang-regex/1.0.0:
1870 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=}
1871 | engines: {node: '>=0.10.0'}
1872 | dev: true
1873 |
1874 | /signal-exit/3.0.7:
1875 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1876 | dev: true
1877 |
1878 | /slash/3.0.0:
1879 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1880 | engines: {node: '>=8'}
1881 | dev: true
1882 |
1883 | /smartwrap/1.2.5:
1884 | resolution: {integrity: sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==}
1885 | deprecated: Backported compatibility to node > 6
1886 | hasBin: true
1887 | dependencies:
1888 | breakword: 1.0.5
1889 | grapheme-splitter: 1.0.4
1890 | strip-ansi: 6.0.1
1891 | wcwidth: 1.0.1
1892 | yargs: 15.4.1
1893 | dev: true
1894 |
1895 | /source-map-js/1.0.2:
1896 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1897 | engines: {node: '>=0.10.0'}
1898 | dev: true
1899 |
1900 | /source-map-support/0.5.21:
1901 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
1902 | dependencies:
1903 | buffer-from: 1.1.2
1904 | source-map: 0.6.1
1905 | dev: true
1906 |
1907 | /source-map/0.6.1:
1908 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1909 | engines: {node: '>=0.10.0'}
1910 | dev: true
1911 |
1912 | /spawndamnit/2.0.0:
1913 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
1914 | dependencies:
1915 | cross-spawn: 5.1.0
1916 | signal-exit: 3.0.7
1917 | dev: true
1918 |
1919 | /spdx-correct/3.1.1:
1920 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
1921 | dependencies:
1922 | spdx-expression-parse: 3.0.1
1923 | spdx-license-ids: 3.0.11
1924 | dev: true
1925 |
1926 | /spdx-exceptions/2.3.0:
1927 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
1928 | dev: true
1929 |
1930 | /spdx-expression-parse/3.0.1:
1931 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
1932 | dependencies:
1933 | spdx-exceptions: 2.3.0
1934 | spdx-license-ids: 3.0.11
1935 | dev: true
1936 |
1937 | /spdx-license-ids/3.0.11:
1938 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}
1939 | dev: true
1940 |
1941 | /sprintf-js/1.0.3:
1942 | resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=}
1943 | dev: true
1944 |
1945 | /stream-transform/2.1.3:
1946 | resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
1947 | dependencies:
1948 | mixme: 0.5.4
1949 | dev: true
1950 |
1951 | /string-width/4.2.3:
1952 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1953 | engines: {node: '>=8'}
1954 | dependencies:
1955 | emoji-regex: 8.0.0
1956 | is-fullwidth-code-point: 3.0.0
1957 | strip-ansi: 6.0.1
1958 | dev: true
1959 |
1960 | /strip-ansi/6.0.1:
1961 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1962 | engines: {node: '>=8'}
1963 | dependencies:
1964 | ansi-regex: 5.0.1
1965 | dev: true
1966 |
1967 | /strip-bom/3.0.0:
1968 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=}
1969 | engines: {node: '>=4'}
1970 | dev: true
1971 |
1972 | /strip-indent/3.0.0:
1973 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
1974 | engines: {node: '>=8'}
1975 | dependencies:
1976 | min-indent: 1.0.1
1977 | dev: true
1978 |
1979 | /styled-jsx/5.0.0_react@17.0.2:
1980 | resolution: {integrity: sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==}
1981 | engines: {node: '>= 12.0.0'}
1982 | peerDependencies:
1983 | '@babel/core': '*'
1984 | babel-plugin-macros: '*'
1985 | react: '>= 16.8.0 || 17.x.x || 18.x.x'
1986 | peerDependenciesMeta:
1987 | '@babel/core':
1988 | optional: true
1989 | babel-plugin-macros:
1990 | optional: true
1991 | dependencies:
1992 | react: 17.0.2
1993 | dev: true
1994 |
1995 | /supports-color/5.5.0:
1996 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1997 | engines: {node: '>=4'}
1998 | dependencies:
1999 | has-flag: 3.0.0
2000 | dev: true
2001 |
2002 | /supports-color/7.2.0:
2003 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2004 | engines: {node: '>=8'}
2005 | dependencies:
2006 | has-flag: 4.0.0
2007 | dev: true
2008 |
2009 | /supports-preserve-symlinks-flag/1.0.0:
2010 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2011 | engines: {node: '>= 0.4'}
2012 | dev: true
2013 |
2014 | /term-size/2.2.1:
2015 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
2016 | engines: {node: '>=8'}
2017 | dev: true
2018 |
2019 | /tinypool/0.1.2:
2020 | resolution: {integrity: sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==}
2021 | engines: {node: '>=14.0.0'}
2022 | dev: true
2023 |
2024 | /tinyspy/0.3.0:
2025 | resolution: {integrity: sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==}
2026 | engines: {node: '>=14.0.0'}
2027 | dev: true
2028 |
2029 | /tmp/0.0.33:
2030 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
2031 | engines: {node: '>=0.6.0'}
2032 | dependencies:
2033 | os-tmpdir: 1.0.2
2034 | dev: true
2035 |
2036 | /to-regex-range/5.0.1:
2037 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2038 | engines: {node: '>=8.0'}
2039 | dependencies:
2040 | is-number: 7.0.0
2041 | dev: true
2042 |
2043 | /trim-newlines/3.0.1:
2044 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
2045 | engines: {node: '>=8'}
2046 | dev: true
2047 |
2048 | /tslib/2.3.1:
2049 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
2050 | dev: true
2051 |
2052 | /tty-table/2.8.13:
2053 | resolution: {integrity: sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==}
2054 | engines: {node: '>=8.16.0'}
2055 | hasBin: true
2056 | dependencies:
2057 | chalk: 3.0.0
2058 | csv: 5.5.3
2059 | smartwrap: 1.2.5
2060 | strip-ansi: 6.0.1
2061 | wcwidth: 1.0.1
2062 | yargs: 15.4.1
2063 | dev: true
2064 |
2065 | /turbo-darwin-64/1.2.9:
2066 | resolution: {integrity: sha512-rVwDQpi6p0GwTiqSsvtA1b3RvKl8l2y+ElZ3EKGiIIJYZt1D6wBMJoADaZ9uZ/LWkT+WKfAWNtKdwRmuBAOS6g==}
2067 | cpu: [x64]
2068 | os: [darwin]
2069 | requiresBuild: true
2070 | dev: true
2071 | optional: true
2072 |
2073 | /turbo-darwin-arm64/1.2.9:
2074 | resolution: {integrity: sha512-j7NgQHkQWWODw1I/saiqmjjD54uGAEq0qTTtLI3RoLaA+yI+awXmHwsiHRqsvGSyGJlBoKBcbxXkekLf21q3GA==}
2075 | cpu: [arm64]
2076 | os: [darwin]
2077 | requiresBuild: true
2078 | dev: true
2079 | optional: true
2080 |
2081 | /turbo-freebsd-64/1.2.9:
2082 | resolution: {integrity: sha512-+tLb3iCOrIeGrcOJZYey5mD9qgNgKYuwRRg6FeX/6TDITvZXcCS50A2uRbaD/PQzQKs1lHcshiCe/DRtbvJ63g==}
2083 | cpu: [x64]
2084 | os: [freebsd]
2085 | requiresBuild: true
2086 | dev: true
2087 | optional: true
2088 |
2089 | /turbo-freebsd-arm64/1.2.9:
2090 | resolution: {integrity: sha512-gwI8jocTf036kc9GI1BebzftxrkT5pewHPA2iqvAXAJpX01G1x1iGcl8/uIbkbL5hp038nu+l2Kb+lRI96sJuA==}
2091 | cpu: [arm64]
2092 | os: [freebsd]
2093 | requiresBuild: true
2094 | dev: true
2095 | optional: true
2096 |
2097 | /turbo-linux-32/1.2.9:
2098 | resolution: {integrity: sha512-Rm47bIsCHIae/DkXJ58YrWvdh8o4Ug9U4VnTDb9byXrz2B7624ol9XdfpXv429z7LXkQR1+WnwCMwFB4K6DyuQ==}
2099 | cpu: [ia32]
2100 | os: [linux]
2101 | requiresBuild: true
2102 | dev: true
2103 | optional: true
2104 |
2105 | /turbo-linux-64/1.2.9:
2106 | resolution: {integrity: sha512-8Gqi+TzEdmOmxxAukU0NO0JlIqdm98C97u9qEsxWrXTFL/xL21gKCixqsBTEO7JOISC4M8VjArxjSsITRbkD5g==}
2107 | cpu: [x64]
2108 | os: [linux]
2109 | requiresBuild: true
2110 | dev: true
2111 | optional: true
2112 |
2113 | /turbo-linux-arm/1.2.9:
2114 | resolution: {integrity: sha512-OS+XCWiGFbuM7UNBVQdVbIJqxhVu9Sr2WxQgDcGZpCYn32yLLPlWDDGL0Cl/EG006J9k+VS1e4OzyM6kfMxS9Q==}
2115 | cpu: [arm]
2116 | os: [linux]
2117 | requiresBuild: true
2118 | dev: true
2119 | optional: true
2120 |
2121 | /turbo-linux-arm64/1.2.9:
2122 | resolution: {integrity: sha512-FVIeM7koUtyu1cNAJhPYjb90kL/ICdWoJr4PoZZYnqty5sxLsBg75bVErEDQeDzKQvwXLlcax2lEzHvaSyn/wg==}
2123 | cpu: [arm64]
2124 | os: [linux]
2125 | requiresBuild: true
2126 | dev: true
2127 | optional: true
2128 |
2129 | /turbo-linux-mips64le/1.2.9:
2130 | resolution: {integrity: sha512-2zVBnOVivWGpl51qO/lycfw7euM4b04AXYUmhsWkUN3FygIwyNgjuiMU8rxQOlu9VGX8X+WXkX2gfbgTovTeFw==}
2131 | cpu: [mips64el]
2132 | os: [linux]
2133 | requiresBuild: true
2134 | dev: true
2135 | optional: true
2136 |
2137 | /turbo-linux-ppc64le/1.2.9:
2138 | resolution: {integrity: sha512-EGgKyzf8IhodOF32BvE3Zlgbr/dSGuUbemC9RGSuhF1F1PMnP1nYS/t3JWN5QKZU4O2uWiIyLdC/0ZjtcGAcZQ==}
2139 | cpu: [ppc64]
2140 | os: [linux]
2141 | requiresBuild: true
2142 | dev: true
2143 | optional: true
2144 |
2145 | /turbo-windows-32/1.2.9:
2146 | resolution: {integrity: sha512-XrMJMUtewlfksBUB0R7Tyw16IoqshVl6f/3R2ccMccddEMcvak0oW03FK9n+Y4F+wyIoJ22AVhu8jMv+HgEehA==}
2147 | cpu: [ia32]
2148 | os: [win32]
2149 | requiresBuild: true
2150 | dev: true
2151 | optional: true
2152 |
2153 | /turbo-windows-64/1.2.9:
2154 | resolution: {integrity: sha512-ewhj4MrqcMpW/keag4xG7YRLTJ7PzcqBc6Kc96OGD2qfK/uJV/r7H3Xt09WuYHRWwPgGEeNn8utpqdqbYfCVDw==}
2155 | cpu: [x64]
2156 | os: [win32]
2157 | requiresBuild: true
2158 | dev: true
2159 | optional: true
2160 |
2161 | /turbo-windows-arm64/1.2.9:
2162 | resolution: {integrity: sha512-B8BoNb/yZWAyKwQUbs2+UFzLmOu/WGv/+ADT6SQfI8jOaTenS7Od4bbMsGJT0iXcqv+v8TcWKX83KmQ6gxBQpg==}
2163 | cpu: [arm64]
2164 | os: [win32]
2165 | requiresBuild: true
2166 | dev: true
2167 | optional: true
2168 |
2169 | /turbo/1.2.9:
2170 | resolution: {integrity: sha512-aPGzZqmUHE9yx9TS7wcAJnDmXiuQSNXDwU5b1KrgNlFuID18TL443wna79p7k4awmf4Yuhu1cSZIvO+se72iVQ==}
2171 | hasBin: true
2172 | requiresBuild: true
2173 | optionalDependencies:
2174 | turbo-darwin-64: 1.2.9
2175 | turbo-darwin-arm64: 1.2.9
2176 | turbo-freebsd-64: 1.2.9
2177 | turbo-freebsd-arm64: 1.2.9
2178 | turbo-linux-32: 1.2.9
2179 | turbo-linux-64: 1.2.9
2180 | turbo-linux-arm: 1.2.9
2181 | turbo-linux-arm64: 1.2.9
2182 | turbo-linux-mips64le: 1.2.9
2183 | turbo-linux-ppc64le: 1.2.9
2184 | turbo-windows-32: 1.2.9
2185 | turbo-windows-64: 1.2.9
2186 | turbo-windows-arm64: 1.2.9
2187 | dev: true
2188 |
2189 | /type-detect/4.0.8:
2190 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
2191 | engines: {node: '>=4'}
2192 | dev: true
2193 |
2194 | /type-fest/0.13.1:
2195 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
2196 | engines: {node: '>=10'}
2197 | dev: true
2198 |
2199 | /type-fest/0.6.0:
2200 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
2201 | engines: {node: '>=8'}
2202 | dev: true
2203 |
2204 | /type-fest/0.8.1:
2205 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
2206 | engines: {node: '>=8'}
2207 | dev: true
2208 |
2209 | /typescript/4.6.2:
2210 | resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==}
2211 | engines: {node: '>=4.2.0'}
2212 | hasBin: true
2213 | dev: true
2214 |
2215 | /universalify/0.1.2:
2216 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
2217 | engines: {node: '>= 4.0.0'}
2218 | dev: true
2219 |
2220 | /use-subscription/1.5.1_react@17.0.2:
2221 | resolution: {integrity: sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==}
2222 | peerDependencies:
2223 | react: ^16.8.0 || ^17.0.0
2224 | dependencies:
2225 | object-assign: 4.1.1
2226 | react: 17.0.2
2227 | dev: true
2228 |
2229 | /validate-npm-package-license/3.0.4:
2230 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
2231 | dependencies:
2232 | spdx-correct: 3.1.1
2233 | spdx-expression-parse: 3.0.1
2234 | dev: true
2235 |
2236 | /vite/2.8.6:
2237 | resolution: {integrity: sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==}
2238 | engines: {node: '>=12.2.0'}
2239 | hasBin: true
2240 | peerDependencies:
2241 | less: '*'
2242 | sass: '*'
2243 | stylus: '*'
2244 | peerDependenciesMeta:
2245 | less:
2246 | optional: true
2247 | sass:
2248 | optional: true
2249 | stylus:
2250 | optional: true
2251 | dependencies:
2252 | esbuild: 0.14.27
2253 | postcss: 8.4.12
2254 | resolve: 1.22.0
2255 | rollup: 2.70.1
2256 | optionalDependencies:
2257 | fsevents: 2.3.2
2258 | dev: true
2259 |
2260 | /vitest/0.5.9:
2261 | resolution: {integrity: sha512-R8lRP9Q1yIbwr8pDf2gvw4PFe8H5YMyHhBcdyfnUh6toLfCR10jrdI/WkNxdo5I4H/9XrMX9t+SAavdJExNdKg==}
2262 | engines: {node: '>=14.14.0'}
2263 | hasBin: true
2264 | peerDependencies:
2265 | '@vitest/ui': '*'
2266 | c8: '*'
2267 | happy-dom: '*'
2268 | jsdom: '*'
2269 | peerDependenciesMeta:
2270 | '@vitest/ui':
2271 | optional: true
2272 | c8:
2273 | optional: true
2274 | happy-dom:
2275 | optional: true
2276 | jsdom:
2277 | optional: true
2278 | dependencies:
2279 | '@types/chai': 4.3.0
2280 | '@types/chai-subset': 1.3.3
2281 | chai: 4.3.6
2282 | local-pkg: 0.4.1
2283 | tinypool: 0.1.2
2284 | tinyspy: 0.3.0
2285 | vite: 2.8.6
2286 | transitivePeerDependencies:
2287 | - less
2288 | - sass
2289 | - stylus
2290 | dev: true
2291 |
2292 | /wcwidth/1.0.1:
2293 | resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=}
2294 | dependencies:
2295 | defaults: 1.0.3
2296 | dev: true
2297 |
2298 | /which-module/2.0.0:
2299 | resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=}
2300 | dev: true
2301 |
2302 | /which-pm/2.0.0:
2303 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
2304 | engines: {node: '>=8.15'}
2305 | dependencies:
2306 | load-yaml-file: 0.2.0
2307 | path-exists: 4.0.0
2308 | dev: true
2309 |
2310 | /which/1.3.1:
2311 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
2312 | hasBin: true
2313 | dependencies:
2314 | isexe: 2.0.0
2315 | dev: true
2316 |
2317 | /wrap-ansi/6.2.0:
2318 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
2319 | engines: {node: '>=8'}
2320 | dependencies:
2321 | ansi-styles: 4.3.0
2322 | string-width: 4.2.3
2323 | strip-ansi: 6.0.1
2324 | dev: true
2325 |
2326 | /y18n/4.0.3:
2327 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
2328 | dev: true
2329 |
2330 | /yallist/2.1.2:
2331 | resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=}
2332 | dev: true
2333 |
2334 | /yargs-parser/18.1.3:
2335 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
2336 | engines: {node: '>=6'}
2337 | dependencies:
2338 | camelcase: 5.3.1
2339 | decamelize: 1.2.0
2340 | dev: true
2341 |
2342 | /yargs/15.4.1:
2343 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
2344 | engines: {node: '>=8'}
2345 | dependencies:
2346 | cliui: 6.0.0
2347 | decamelize: 1.2.0
2348 | find-up: 4.1.0
2349 | get-caller-file: 2.0.5
2350 | require-directory: 2.1.1
2351 | require-main-filename: 2.0.0
2352 | set-blocking: 2.0.0
2353 | string-width: 4.2.3
2354 | which-module: 2.0.0
2355 | y18n: 4.0.3
2356 | yargs-parser: 18.1.3
2357 | dev: true
2358 |
2359 | /yocto-queue/0.1.0:
2360 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2361 | engines: {node: '>=10'}
2362 | dev: true
2363 |
--------------------------------------------------------------------------------