diff --git a/examples/with-prisma/.env.example b/examples/with-prisma/.env.example new file mode 100644 index 0000000000000..97aec05fc227a --- /dev/null +++ b/examples/with-prisma/.env.example @@ -0,0 +1,9 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB (Preview) and CockroachDB (Preview). +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +# Defaults to the local database deployed from the `docker-compose.yml` stack + +DATABASE_URL="mysql://root@127.0.0.1:3306/turborepo" diff --git a/examples/with-prisma/.eslintrc.js b/examples/with-prisma/.eslintrc.js new file mode 100644 index 0000000000000..5f7efa45760fb --- /dev/null +++ b/examples/with-prisma/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require("./packages/config/eslint-preset.js"); diff --git a/examples/with-prisma/.gitignore b/examples/with-prisma/.gitignore new file mode 100644 index 0000000000000..f8b72e8687b86 --- /dev/null +++ b/examples/with-prisma/.gitignore @@ -0,0 +1,33 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +.pnp +.pnp.js + +# testing +coverage + +# next.js +.next/ +out/ +build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local +!packages/database/.env + +# turbo +.turbo diff --git a/examples/with-prisma/README.md b/examples/with-prisma/README.md new file mode 100644 index 0000000000000..31037c9094bdd --- /dev/null +++ b/examples/with-prisma/README.md @@ -0,0 +1,104 @@ +# Turborepo starter + +This is an official starter turborepo. + +## What's inside? + +This turborepo includes the following packages/apps: + +### Apps and Packages + +- `web`: another [Next.js](https://nextjs.org) app +- `config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) +- `database`: [Prisma](https://prisma.io/) ORM wrapper to manage & access your database +- `tsconfig`: `tsconfig.json`s used throughout the monorepo + +Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). + +### Utilities + +This turborepo has some additional tools already setup for you: + +- [TypeScript](https://www.typescriptlang.org/) for static type checking +- [ESLint](https://eslint.org/) for code linting +- [Prettier](https://prettier.io) for code formatting +- [Prisma](https://prisma.io/) for database ORM +- [Docker Compose](https://docs.docker.com/compose/) for local database + +### Database + +We use [Prisma](https://prisma.io/) to manage & access our database. As such you will need a database for this project, either locally or hosted in the cloud. + +To make this process easier, we offer a [`docker-compose.yml`](https://docs.docker.com/compose/) file to deploy a MySQL server locally with a new database named `turborepo` (To change this update the `MYSQL_DATABASE` environment variable in the `docker-compose.yml` file): + +```bash +cd my-turborepo +docker-compose up -d +``` + +Once deployed you will need to copy the `.env.example` file to `.env` in order for Prisma to have a `DATABASE_URL` environment variable to access. + +```bash +cp .env.example .env +``` + +If you added a custom database name, or use a cloud based database, you will need to update the `DATABASE_URL` in your `.env` accordingly. + +Once deployed & up & running, you will need to create & deploy migrations to your database to add the necessary tables. This can be done using [Prisma Migrate](https://www.prisma.io/migrate): + +```bash +npx prisma migrate dev +``` + +If you need to push any existing migrations to the database, you can use either the Prisma db push or the Prisma migrate deploy command(s): + +```bash +yarn run db:push + +# OR + +yarn run db:migrate:deploy +``` + +There is slight difference between the two commands & [Prisma offers a breakdown on which command is best to use](https://www.prisma.io/docs/concepts/components/prisma-migrate/db-push#choosing-db-push-or-prisma-migrate). + +An optional additional step is to seed some initial or fake data to your database using [Prisma's seeding functionality](https://www.prisma.io/docs/guides/database/seed-database). + +To do this update check the seed script located in `packages/database/src/seed.ts` & add or update any users you wish to seed to the database. + +Once edited run the following command to run tell Prisma to run the seed script defined in the Prisma configuration: + +```bash +yarn run db:seed +``` + +For further more information on migrations, seeding & more, we recommend reading through the [Prisma Documentation](https://www.prisma.io/docs/). + +### Build + +To build all apps and packages, run the following command: + +```bash +cd my-turborepo +yarn run build +``` + +### Develop + +To develop all apps and packages, run the following command: + +```bash +cd my-turborepo +yarn run dev +``` + +## Useful Links + +Learn more about the power of Turborepo: + +- [Pipelines](https://turborepo.org/docs/features/pipelines) +- [Caching](https://turborepo.org/docs/features/caching) +- [Remote Caching (Beta)](https://turborepo.org/docs/features/remote-caching) +- [Scoped Tasks](https://turborepo.org/docs/features/scopes) +- [Configuration Options](https://turborepo.org/docs/reference/configuration) +- [CLI Usage](https://turborepo.org/docs/reference/command-line-reference) diff --git a/examples/with-prisma/apps/web/.gitignore b/examples/with-prisma/apps/web/.gitignore new file mode 100644 index 0000000000000..1437c53f70bc2 --- /dev/null +++ b/examples/with-prisma/apps/web/.gitignore @@ -0,0 +1,34 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/examples/with-prisma/apps/web/README.md b/examples/with-prisma/apps/web/README.md new file mode 100644 index 0000000000000..1d67ece731bd0 --- /dev/null +++ b/examples/with-prisma/apps/web/README.md @@ -0,0 +1,30 @@ +## Getting Started + +First, run the development server: + +```bash +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/with-prisma/apps/web/next-env.d.ts b/examples/with-prisma/apps/web/next-env.d.ts new file mode 100644 index 0000000000000..4f11a03dc6cc3 --- /dev/null +++ b/examples/with-prisma/apps/web/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/with-prisma/apps/web/next.config.js b/examples/with-prisma/apps/web/next.config.js new file mode 100644 index 0000000000000..27b528b86045e --- /dev/null +++ b/examples/with-prisma/apps/web/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +module.exports = { + reactStrictMode: true, +}; diff --git a/examples/with-prisma/apps/web/package.json b/examples/with-prisma/apps/web/package.json new file mode 100644 index 0000000000000..cf54008f69347 --- /dev/null +++ b/examples/with-prisma/apps/web/package.json @@ -0,0 +1,26 @@ +{ + "private": true, + "name": "web", + "version": "1.0.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "next": "^12.1.3", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "devDependencies": { + "@types/node": "^17.0.12", + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "config": "*", + "database": "*", + "eslint": "^7.32.0", + "tsconfig": "*", + "typescript": "^4.5.3" + } +} diff --git a/examples/with-prisma/apps/web/pages/api/users.ts b/examples/with-prisma/apps/web/pages/api/users.ts new file mode 100644 index 0000000000000..3f7b3f0eb0edb --- /dev/null +++ b/examples/with-prisma/apps/web/pages/api/users.ts @@ -0,0 +1,34 @@ +import { prisma } from "database"; + +import type { NextApiRequest, NextApiResponse } from "next"; + +/** + * Users + * + * @description A basic API endpoint to retrieve all the users in the database + */ +export default async function handler( + req: NextApiRequest, + res: NextApiResponse +) { + if (req.method !== "GET") { + res.setHeader("Allow", ["GET"]); + return res.status(405).end(`Method ${req.method} Not Allowed`); + } + + try { + const users = await prisma.user.findMany(); + if (!users) + throw { + message: "Failed to retrieve users", + status: 500, + }; + + return res.status(200).json({ + users, + }); + } catch ({ message = "An unknown error occured", status = 500 }) { + console.error({ message, status }); + return res.status(status).end(message); + } +} diff --git a/examples/with-prisma/apps/web/pages/index.tsx b/examples/with-prisma/apps/web/pages/index.tsx new file mode 100644 index 0000000000000..6e254b792c457 --- /dev/null +++ b/examples/with-prisma/apps/web/pages/index.tsx @@ -0,0 +1,8 @@ +export default function IndexPage() { + return ( +
+

Hello World

+ View Users +
+ ); +} diff --git a/examples/with-prisma/apps/web/tsconfig.json b/examples/with-prisma/apps/web/tsconfig.json new file mode 100644 index 0000000000000..a355365ba6525 --- /dev/null +++ b/examples/with-prisma/apps/web/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "tsconfig/nextjs.json", + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/examples/with-prisma/docker-compose.yml b/examples/with-prisma/docker-compose.yml new file mode 100644 index 0000000000000..526f2c923a5e5 --- /dev/null +++ b/examples/with-prisma/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3" + +volumes: + database: + driver: local + +services: + mysql: + platform: linux/amd64 + image: mysql:8.0.28 + container_name: turborepo_mysql + restart: always + ports: + - 3306:3306 + environment: + MYSQL_DATABASE: turborepo + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - database:/var/lib/mysql diff --git a/examples/with-prisma/package.json b/examples/with-prisma/package.json new file mode 100644 index 0000000000000..ccc619d41ca78 --- /dev/null +++ b/examples/with-prisma/package.json @@ -0,0 +1,27 @@ +{ + "private": true, + "packageManager": "pnpm@7", + "workspaces": [ + "apps/*", + "packages/*" + ], + "prisma": { + "schema": "packages/database/prisma/schema.prisma", + "seed": "tsx packages/database/src/seed.ts" + }, + "scripts": { + "build": "turbo run build", + "db:migrate:deploy": "turbo run db:migrate:deploy", + "db:push": "turbo run db:push", + "db:seed": "turbo run db:seed", + "dev": "turbo run dev --parallel", + "format": "prettier --write \"**/*.{ts,tsx,md}\"", + "generate": "turbo run generate", + "lint": "turbo run lint" + }, + "devDependencies": { + "prettier": "^2.5.1", + "tsx": "^3.7.1", + "turbo": "latest" + } +} diff --git a/examples/with-prisma/packages/config/eslint-preset.js b/examples/with-prisma/packages/config/eslint-preset.js new file mode 100644 index 0000000000000..cedc38df2ccfc --- /dev/null +++ b/examples/with-prisma/packages/config/eslint-preset.js @@ -0,0 +1,12 @@ +module.exports = { + extends: ["next", "prettier"], + settings: { + next: { + rootDir: ["apps/*/", "packages/*/"], + }, + }, + rules: { + "@next/next/no-html-link-for-pages": "off", + "react/jsx-key": "off", + }, +}; diff --git a/examples/with-prisma/packages/config/package.json b/examples/with-prisma/packages/config/package.json new file mode 100644 index 0000000000000..8e96aa4af8770 --- /dev/null +++ b/examples/with-prisma/packages/config/package.json @@ -0,0 +1,17 @@ +{ + "name": "config", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "files": [ + "eslint-preset.js" + ], + "dependencies": { + "eslint-config-next": "^12.0.8", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-react": "7.28.0" + }, + "devDependencies": { + "typescript": "^4.5.3" + } +} diff --git a/examples/with-prisma/packages/database/.env b/examples/with-prisma/packages/database/.env new file mode 120000 index 0000000000000..c7360fb82d204 --- /dev/null +++ b/examples/with-prisma/packages/database/.env @@ -0,0 +1 @@ +../../.env \ No newline at end of file diff --git a/examples/with-prisma/packages/database/.eslintrc.js b/examples/with-prisma/packages/database/.eslintrc.js new file mode 100644 index 0000000000000..dc369e9a8482f --- /dev/null +++ b/examples/with-prisma/packages/database/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require("config/eslint-preset"); diff --git a/examples/with-prisma/packages/database/package.json b/examples/with-prisma/packages/database/package.json new file mode 100644 index 0000000000000..cd563ad8b5068 --- /dev/null +++ b/examples/with-prisma/packages/database/package.json @@ -0,0 +1,39 @@ +{ + "name": "database", + "version": "1.0.0", + "license": "MIT", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist/**" + ], + "scripts": { + "build": "tsup", + "clean": "rimraf .turbo node_modules dist", + "db:migrate:deploy": "prisma migrate deploy", + "db:migrate:dev": "prisma migrate dev", + "db:push": "prisma db push", + "db:seed": "tsx src/seed.ts", + "dev": "tsup --watch", + "format": "prisma format", + "generate": "prisma generate", + "lint": "eslint ./src --fix", + "prebuild": "npm run generate", + "predev": "npm run generate", + "studio": "prisma studio" + }, + "dependencies": { + "@prisma/client": "^3.10.0" + }, + "devDependencies": { + "config": "*", + "eslint": "^8.12.0", + "prisma": "^3.10.0", + "rimraf": "^3.0.2", + "tsconfig": "*", + "tsup": "^5.11.13", + "tsx": "^3.7.1", + "typescript": "^4.5.5" + } +} diff --git a/examples/with-prisma/packages/database/prisma/schema.prisma b/examples/with-prisma/packages/database/prisma/schema.prisma new file mode 100644 index 0000000000000..b2fb730ec137a --- /dev/null +++ b/examples/with-prisma/packages/database/prisma/schema.prisma @@ -0,0 +1,20 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +datasource db { + provider = "mysql" + url = env("DATABASE_URL") + referentialIntegrity = "prisma" +} + +generator client { + provider = "prisma-client-js" + previewFeatures = ["referentialIntegrity"] +} + +model User { + id String @id @default(cuid()) + name String? + email String? @unique + emailVerified DateTime? +} diff --git a/examples/with-prisma/packages/database/src/client.ts b/examples/with-prisma/packages/database/src/client.ts new file mode 100644 index 0000000000000..55acf8da9ccba --- /dev/null +++ b/examples/with-prisma/packages/database/src/client.ts @@ -0,0 +1,9 @@ +import { PrismaClient } from "@prisma/client"; + +declare global { + var prisma: PrismaClient | undefined; +} + +export const prisma = global.prisma || new PrismaClient(); + +if (process.env.NODE_ENV !== "production") global.prisma = prisma; diff --git a/examples/with-prisma/packages/database/src/index.ts b/examples/with-prisma/packages/database/src/index.ts new file mode 100644 index 0000000000000..5ec76921e18eb --- /dev/null +++ b/examples/with-prisma/packages/database/src/index.ts @@ -0,0 +1 @@ +export * from "./client"; diff --git a/examples/with-prisma/packages/database/src/seed.ts b/examples/with-prisma/packages/database/src/seed.ts new file mode 100644 index 0000000000000..a5d7752cd5e08 --- /dev/null +++ b/examples/with-prisma/packages/database/src/seed.ts @@ -0,0 +1,36 @@ +import { prisma } from "."; + +import type { User } from "@prisma/client"; + +const DEFAULT_USERS = [ + // Add your own user to pre-populate the database with + { + name: "Tim Apple", + email: "tim@apple.com", + }, +] as Array>; + +(async () => { + try { + await Promise.all( + DEFAULT_USERS.map((user) => + prisma.user.upsert({ + where: { + email: user.email!, + }, + update: { + ...user, + }, + create: { + ...user, + }, + }) + ) + ); + } catch (error) { + console.error(error); + process.exit(1); + } finally { + await prisma.$disconnect(); + } +})(); diff --git a/examples/with-prisma/packages/database/tsconfig.json b/examples/with-prisma/packages/database/tsconfig.json new file mode 100644 index 0000000000000..cbf6061ef535f --- /dev/null +++ b/examples/with-prisma/packages/database/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "tsconfig/node16.json", + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "tsup.config.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/with-prisma/packages/database/tsup.config.ts b/examples/with-prisma/packages/database/tsup.config.ts new file mode 100644 index 0000000000000..27be5a773ffba --- /dev/null +++ b/examples/with-prisma/packages/database/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +const isProduction = process.env.NODE_ENV === "production"; + +export default defineConfig({ + clean: true, + dts: true, + entry: ["src/index.ts"], + format: ["cjs", "esm"], + minify: isProduction, + sourcemap: true, +}); diff --git a/examples/with-prisma/packages/tsconfig/base.json b/examples/with-prisma/packages/tsconfig/base.json new file mode 100644 index 0000000000000..d72a9f3a27835 --- /dev/null +++ b/examples/with-prisma/packages/tsconfig/base.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "node", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true + }, + "exclude": ["node_modules"] +} diff --git a/examples/with-prisma/packages/tsconfig/nextjs.json b/examples/with-prisma/packages/tsconfig/nextjs.json new file mode 100644 index 0000000000000..91cd404f775d6 --- /dev/null +++ b/examples/with-prisma/packages/tsconfig/nextjs.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Next.js", + "extends": "./base.json", + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve" + }, + "include": ["src", "next-env.d.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/with-prisma/packages/tsconfig/node16.json b/examples/with-prisma/packages/tsconfig/node16.json new file mode 100644 index 0000000000000..bf7fb492b2ba8 --- /dev/null +++ b/examples/with-prisma/packages/tsconfig/node16.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Node 16", + "extends": "./base.json", + "compilerOptions": { + "lib": ["ES2021"], + "module": "commonjs", + "target": "ES2021", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/examples/with-prisma/packages/tsconfig/package.json b/examples/with-prisma/packages/tsconfig/package.json new file mode 100644 index 0000000000000..77988b612cc08 --- /dev/null +++ b/examples/with-prisma/packages/tsconfig/package.json @@ -0,0 +1,11 @@ +{ + "name": "tsconfig", + "version": "0.0.0", + "private": true, + "main": "index.js", + "files": [ + "base.json", + "nextjs.json", + "node16.json" + ] +} diff --git a/examples/with-prisma/turbo.json b/examples/with-prisma/turbo.json new file mode 100644 index 0000000000000..f74bf67f5338e --- /dev/null +++ b/examples/with-prisma/turbo.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**", ".next/**"] + }, + "db:migrate:deploy": { + "outputs": [] + }, + "db:push": { + "outputs": [] + }, + "db:seed": { + "outputs": [] + }, + "dev": { + "cache": false + }, + "generate": { + "dependsOn": ["^generate"] + }, + "lint": { + "outputs": [] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e4991985ec72..24c1d35db4f1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2202,7 +2202,7 @@ packages: dev: true /any-promise/1.3.0: - resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true /anymatch/3.1.2: @@ -2243,7 +2243,7 @@ packages: dev: true /arr-diff/4.0.0: - resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=} + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} dev: true @@ -2253,7 +2253,7 @@ packages: dev: true /arr-union/3.1.0: - resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=} + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} dev: true @@ -2301,7 +2301,7 @@ packages: dev: false /array-unique/0.3.2: - resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} dev: true @@ -2330,7 +2330,7 @@ packages: dev: false /assign-symbols/1.0.0: - resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} dev: true @@ -2838,7 +2838,7 @@ packages: dev: false /co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true @@ -2847,7 +2847,7 @@ packages: dev: true /collection-visit/1.0.0: - resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=} + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} dependencies: map-visit: 1.0.0 @@ -2921,7 +2921,7 @@ packages: safe-buffer: 5.1.2 /copy-descriptor/0.1.1: - resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=} + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} dev: true @@ -3086,7 +3086,7 @@ packages: dev: false /decode-uri-component/0.2.0: - resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} engines: {node: '>=0.10'} dev: true @@ -3130,14 +3130,14 @@ packages: dev: true /define-property/0.2.5: - resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=} + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} dependencies: is-descriptor: 0.1.6 dev: true /define-property/1.0.0: - resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=} + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: is-descriptor: 1.0.2 @@ -4250,7 +4250,7 @@ packages: dev: true /expand-brackets/2.1.4: - resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} dependencies: debug: 2.6.9 @@ -4281,7 +4281,7 @@ packages: is-extendable: 0.1.1 /extend-shallow/3.0.2: - resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=} + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} engines: {node: '>=0.10.0'} dependencies: assign-symbols: 1.0.0 @@ -4333,14 +4333,14 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fastq/1.13.0: @@ -4369,7 +4369,7 @@ packages: dev: true /fill-range/4.0.0: - resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} dependencies: extend-shallow: 2.0.1 @@ -4429,7 +4429,7 @@ packages: dev: false /for-in/1.0.2: - resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} dev: true @@ -4447,7 +4447,7 @@ packages: dev: true /fragment-cache/0.2.1: - resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=} + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} dependencies: map-cache: 0.2.2 @@ -4506,7 +4506,7 @@ packages: dev: true /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true /functions-have-names/1.2.3: @@ -4553,7 +4553,7 @@ packages: dev: true /get-value/2.0.6: - resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=} + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} dev: true @@ -4706,7 +4706,7 @@ packages: dev: true /has-value/0.3.1: - resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=} + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} dependencies: get-value: 2.0.6 @@ -4715,7 +4715,7 @@ packages: dev: true /has-value/1.0.0: - resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=} + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} engines: {node: '>=0.10.0'} dependencies: get-value: 2.0.6 @@ -4724,12 +4724,12 @@ packages: dev: true /has-values/0.1.4: - resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=} + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} engines: {node: '>=0.10.0'} dev: true /has-values/1.0.0: - resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=} + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} engines: {node: '>=0.10.0'} dependencies: is-number: 3.0.0 @@ -4922,7 +4922,7 @@ packages: dev: false /is-accessor-descriptor/0.1.6: - resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=} + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 @@ -4990,7 +4990,7 @@ packages: has: 1.0.3 /is-data-descriptor/0.1.4: - resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 @@ -5098,7 +5098,7 @@ packages: dev: true /is-number/3.0.0: - resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=} + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 @@ -5207,21 +5207,21 @@ packages: dev: true /isarray/1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} /isobject/2.1.0: - resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=} + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} engines: {node: '>=0.10.0'} dependencies: isarray: 1.0.0 dev: true /isobject/3.0.1: - resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} dev: true @@ -5827,7 +5827,7 @@ packages: dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /json5/1.0.1: @@ -5842,7 +5842,7 @@ packages: engines: {node: '>=6'} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 dev: true /json5/2.2.1: @@ -5876,14 +5876,14 @@ packages: dev: true /kind-of/3.2.2: - resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 dev: true /kind-of/4.0.0: - resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=} + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 @@ -6098,7 +6098,7 @@ packages: dev: true /map-cache/0.2.2: - resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} dev: true @@ -6113,7 +6113,7 @@ packages: dev: false /map-visit/1.0.0: - resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=} + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} dependencies: object-visit: 1.0.1 @@ -6696,6 +6696,7 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 + dev: true /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -6703,7 +6704,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db/1.51.0: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} @@ -6745,10 +6745,6 @@ packages: kind-of: 6.0.3 dev: false - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true - /minimist/1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} @@ -6764,7 +6760,7 @@ packages: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 dev: true /mri/1.2.0: @@ -6772,7 +6768,7 @@ packages: engines: {node: '>=4'} /ms/2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} dev: true /ms/2.1.2: @@ -6835,7 +6831,7 @@ packages: dev: true /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /neo-async/2.6.2: @@ -7031,7 +7027,7 @@ packages: engines: {node: '>=0.10.0'} /object-copy/0.1.0: - resolution: {integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=} + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} engines: {node: '>=0.10.0'} dependencies: copy-descriptor: 0.1.1 @@ -7054,7 +7050,7 @@ packages: dev: true /object-visit/1.0.1: - resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=} + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 @@ -7096,7 +7092,7 @@ packages: dev: true /object.pick/1.3.0: - resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=} + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 @@ -7283,7 +7279,7 @@ packages: dev: true /pascalcase/0.1.1: - resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=} + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} dev: true @@ -7364,7 +7360,7 @@ packages: dev: true /posix-character-classes/0.1.1: - resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=} + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} dev: true @@ -7675,7 +7671,7 @@ packages: dev: true /rechoir/0.6.2: - resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=} + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: resolve: 1.22.0 @@ -7730,7 +7726,7 @@ packages: dev: false /registry-url/3.1.0: - resolution: {integrity: sha1-PU74cPc93h138M+aOBQyRE4XSUI=} + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} engines: {node: '>=0.10.0'} dependencies: rc: 1.2.8 @@ -7793,7 +7789,7 @@ packages: dev: true /repeat-string/1.6.1: - resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} dev: true @@ -7825,7 +7821,7 @@ packages: dev: true /resolve-url/0.2.1: - resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=} + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated dev: true @@ -7925,7 +7921,7 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} /safe-regex/1.1.0: - resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=} + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: ret: 0.1.15 dev: true @@ -8170,7 +8166,7 @@ packages: dev: true /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} dev: true @@ -8224,7 +8220,7 @@ packages: dev: true /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} /stack-utils/2.0.5: resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} @@ -8234,7 +8230,7 @@ packages: dev: true /static-extend/0.1.2: - resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=} + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} dependencies: define-property: 0.2.5 @@ -8578,11 +8574,11 @@ packages: dev: true /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /thenify-all/1.6.0: - resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 @@ -8654,14 +8650,14 @@ packages: engines: {node: '>=4'} /to-object-path/0.3.0: - resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=} + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: true /to-regex-range/2.1.1: - resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=} + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} engines: {node: '>=0.10.0'} dependencies: is-number: 3.0.0 @@ -9040,7 +9036,7 @@ packages: engines: {node: '>= 10.0.0'} /unset-value/1.0.0: - resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} dependencies: has-value: 0.3.1 @@ -9071,7 +9067,7 @@ packages: dev: true /urix/0.1.0: - resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated dev: true @@ -9081,7 +9077,7 @@ packages: dev: true /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /uvu/0.5.3: resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==}