From e85c1244bf63ccd0a287849dd33fa685d95ea081 Mon Sep 17 00:00:00 2001 From: Kevin Ingersoll Date: Fri, 10 Feb 2023 15:38:30 -0800 Subject: [PATCH] feat(create-mud): add create-mud package (#336) * feat(create-mud): add create-mud package yarn create create-app create-mud * feat(create-mud): add templates * feat(create-mud): publish template's gitignore files * chore(create-mud): bump mud packages to 1.34.0, add missing dep * feat(create-mud): move react template to use new react package * chore(create-mud): add self to codeowners * test(create-mud): add test entrypoint * chore(create-mud): remove dup license file * test(create-mud): fix test path for foundry * chore(create-mud): fix up package install, add shx dev dep --- .eslintignore | 2 +- CODEOWNERS | 1 + package.json | 5 +- packages/create-mud/.gitignore | 101 +++ packages/create-mud/README.md | 11 + packages/create-mud/package.json | 29 + packages/create-mud/src/cli.ts | 19 + packages/create-mud/templates/.npmignore | 2 + .../create-mud/templates/minimal/.gitignore | 1 + .../templates/minimal/.vscode/settings.json | 13 + .../create-mud/templates/minimal/package.json | 17 + .../minimal/packages/client/.eslintrc | 9 + .../minimal/packages/client/.gitignore | 3 + .../minimal/packages/client/index.html | 13 + .../minimal/packages/client/package.json | 34 + .../minimal/packages/client/src/config.ts | 22 + .../minimal/packages/client/src/index.ts | 37 ++ .../minimal/packages/client/tsconfig.json | 19 + .../minimal/packages/client/vite.config.ts | 29 + .../minimal/packages/contracts/.gitignore | 10 + .../minimal/packages/contracts/.prettierrc | 7 + .../minimal/packages/contracts/.solhint.json | 11 + .../minimal/packages/contracts/chainSpec.json | 5 + .../minimal/packages/contracts/deploy.json | 4 + .../minimal/packages/contracts/exports.sh | 22 + .../minimal/packages/contracts/foundry.toml | 10 + .../minimal/packages/contracts/package.json | 45 ++ .../minimal/packages/contracts/remappings.txt | 9 + .../src/components/CounterComponent.sol | 9 + .../contracts/src/libraries/LibMath.sol | 10 + .../contracts/src/systems/IncrementSystem.sol | 22 + .../packages/contracts/src/systems/README.md | 7 + .../packages/contracts/src/test/Deploy.sol | 19 + .../packages/contracts/src/test/Deploy.t.sol | 14 + .../packages/contracts/src/test/LibDeploy.sol | 22 + .../minimal/packages/contracts/tsconfig.json | 12 + .../create-mud/templates/react/.gitignore | 1 + .../templates/react/.vscode/settings.json | 13 + .../create-mud/templates/react/package.json | 17 + .../templates/react/packages/client/.eslintrc | 11 + .../react/packages/client/.gitignore | 3 + .../react/packages/client/index.html | 12 + .../react/packages/client/package.json | 41 ++ .../react/packages/client/src/App.tsx | 31 + .../react/packages/client/src/config.ts | 22 + .../react/packages/client/src/index.tsx | 41 ++ .../react/packages/client/tsconfig.json | 21 + .../react/packages/client/vite.config.ts | 32 + .../react/packages/contracts/.gitignore | 10 + .../react/packages/contracts/.prettierrc | 7 + .../react/packages/contracts/.solhint.json | 11 + .../react/packages/contracts/chainSpec.json | 5 + .../react/packages/contracts/deploy.json | 4 + .../react/packages/contracts/exports.sh | 22 + .../react/packages/contracts/foundry.toml | 9 + .../react/packages/contracts/package.json | 45 ++ .../react/packages/contracts/remappings.txt | 9 + .../src/components/CounterComponent.sol | 9 + .../contracts/src/libraries/LibMath.sol | 10 + .../contracts/src/systems/IncrementSystem.sol | 22 + .../packages/contracts/src/systems/README.md | 7 + .../packages/contracts/src/test/Deploy.sol | 19 + .../packages/contracts/src/test/Deploy.t.sol | 14 + .../packages/contracts/src/test/LibDeploy.sol | 22 + .../react/packages/contracts/tsconfig.json | 12 + packages/create-mud/tsconfig.json | 13 + yarn.lock | 626 +++++++++++++++++- 67 files changed, 1704 insertions(+), 22 deletions(-) create mode 100644 packages/create-mud/.gitignore create mode 100644 packages/create-mud/README.md create mode 100644 packages/create-mud/package.json create mode 100644 packages/create-mud/src/cli.ts create mode 100644 packages/create-mud/templates/.npmignore create mode 100644 packages/create-mud/templates/minimal/.gitignore create mode 100644 packages/create-mud/templates/minimal/.vscode/settings.json create mode 100644 packages/create-mud/templates/minimal/package.json create mode 100644 packages/create-mud/templates/minimal/packages/client/.eslintrc create mode 100644 packages/create-mud/templates/minimal/packages/client/.gitignore create mode 100644 packages/create-mud/templates/minimal/packages/client/index.html create mode 100644 packages/create-mud/templates/minimal/packages/client/package.json create mode 100644 packages/create-mud/templates/minimal/packages/client/src/config.ts create mode 100644 packages/create-mud/templates/minimal/packages/client/src/index.ts create mode 100644 packages/create-mud/templates/minimal/packages/client/tsconfig.json create mode 100644 packages/create-mud/templates/minimal/packages/client/vite.config.ts create mode 100644 packages/create-mud/templates/minimal/packages/contracts/.gitignore create mode 100644 packages/create-mud/templates/minimal/packages/contracts/.prettierrc create mode 100644 packages/create-mud/templates/minimal/packages/contracts/.solhint.json create mode 100644 packages/create-mud/templates/minimal/packages/contracts/chainSpec.json create mode 100644 packages/create-mud/templates/minimal/packages/contracts/deploy.json create mode 100644 packages/create-mud/templates/minimal/packages/contracts/exports.sh create mode 100644 packages/create-mud/templates/minimal/packages/contracts/foundry.toml create mode 100644 packages/create-mud/templates/minimal/packages/contracts/package.json create mode 100644 packages/create-mud/templates/minimal/packages/contracts/remappings.txt create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/components/CounterComponent.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/libraries/LibMath.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/systems/IncrementSystem.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/systems/README.md create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.t.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/src/test/LibDeploy.sol create mode 100644 packages/create-mud/templates/minimal/packages/contracts/tsconfig.json create mode 100644 packages/create-mud/templates/react/.gitignore create mode 100644 packages/create-mud/templates/react/.vscode/settings.json create mode 100644 packages/create-mud/templates/react/package.json create mode 100644 packages/create-mud/templates/react/packages/client/.eslintrc create mode 100644 packages/create-mud/templates/react/packages/client/.gitignore create mode 100644 packages/create-mud/templates/react/packages/client/index.html create mode 100644 packages/create-mud/templates/react/packages/client/package.json create mode 100644 packages/create-mud/templates/react/packages/client/src/App.tsx create mode 100644 packages/create-mud/templates/react/packages/client/src/config.ts create mode 100644 packages/create-mud/templates/react/packages/client/src/index.tsx create mode 100644 packages/create-mud/templates/react/packages/client/tsconfig.json create mode 100644 packages/create-mud/templates/react/packages/client/vite.config.ts create mode 100644 packages/create-mud/templates/react/packages/contracts/.gitignore create mode 100644 packages/create-mud/templates/react/packages/contracts/.prettierrc create mode 100644 packages/create-mud/templates/react/packages/contracts/.solhint.json create mode 100644 packages/create-mud/templates/react/packages/contracts/chainSpec.json create mode 100644 packages/create-mud/templates/react/packages/contracts/deploy.json create mode 100644 packages/create-mud/templates/react/packages/contracts/exports.sh create mode 100644 packages/create-mud/templates/react/packages/contracts/foundry.toml create mode 100644 packages/create-mud/templates/react/packages/contracts/package.json create mode 100644 packages/create-mud/templates/react/packages/contracts/remappings.txt create mode 100644 packages/create-mud/templates/react/packages/contracts/src/components/CounterComponent.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/src/libraries/LibMath.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/src/systems/IncrementSystem.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/src/systems/README.md create mode 100644 packages/create-mud/templates/react/packages/contracts/src/test/Deploy.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/src/test/Deploy.t.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/src/test/LibDeploy.sol create mode 100644 packages/create-mud/templates/react/packages/contracts/tsconfig.json create mode 100644 packages/create-mud/tsconfig.json diff --git a/.eslintignore b/.eslintignore index 76add878f8..f06235c460 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,2 @@ node_modules -dist \ No newline at end of file +dist diff --git a/CODEOWNERS b/CODEOWNERS index f6d03a54bc..855cdc4c72 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -11,3 +11,4 @@ /packages/services @authcall /packages/react @holic +/packages/create-mud @holic diff --git a/package.json b/package.json index 278a442505..9cf96ad050 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "packages/std-client", "packages/ecs-browser", "packages/services", - "packages/noise" + "packages/noise", + "packages/create-mud" ] }, "devDependencies": { @@ -61,7 +62,7 @@ "foundryup": "curl -L https://foundry.paradigm.xyz | bash && bash ~/.foundry/bin/foundryup", "link:packages": "yarn lerna run link", "docs": "yarn lerna run docs && yarn retype:updateversion && yarn retype build", - "docs:dev":"yarn retype watch .", + "docs:dev": "yarn retype watch .", "retype:updateversion": "sed \"s/label: .*/label: $(yarn list --pattern @latticexyz/solecs | grep -e @latticexyz | sed \"s/.*@//\")/\" retype.yml > retype.yml.tmp && mv retype.yml.tmp retype.yml", "test": "yarn workspaces run test", "yalc:release": "yarn entry:dist && yarn lerna exec yalc push", diff --git a/packages/create-mud/.gitignore b/packages/create-mud/.gitignore new file mode 100644 index 0000000000..c27b91ff59 --- /dev/null +++ b/packages/create-mud/.gitignore @@ -0,0 +1,101 @@ +/dist +package-lock.json +yarn.lock + +# Created by https://www.gitignore.io/api/node +# Edit at https://www.gitignore.io/?templates=node + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# react / gatsby +public/ + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# End of https://www.gitignore.io/api/node diff --git a/packages/create-mud/README.md b/packages/create-mud/README.md new file mode 100644 index 0000000000..4d3c451c39 --- /dev/null +++ b/packages/create-mud/README.md @@ -0,0 +1,11 @@ +# Create MUD + +Create a new MUD project + +> created by [create-create-app](https://github.com/uetchy/create-create-app). + +## Usage + +```bash +yarn create mud +``` diff --git a/packages/create-mud/package.json b/packages/create-mud/package.json new file mode 100644 index 0000000000..e00b2a4d70 --- /dev/null +++ b/packages/create-mud/package.json @@ -0,0 +1,29 @@ +{ + "name": "create-mud", + "description": "Create a new MUD project", + "version": "0.0.0", + "author": "Lattice ", + "license": "MIT", + "bin": "dist/cli.js", + "files": [ + "dist", + "templates" + ], + "scripts": { + "prepare": "cd ../../node_modules/create-create-app && npm run build", + "build": "tsup src/cli.ts --minify", + "clean": "shx rm -rf lib", + "dev": "tsup src/cli.ts --watch", + "prepublishOnly": "npm run clean && npm run build", + "test": "echo \"TODO\"" + }, + "dependencies": { + "create-create-app": "git+https://github.com/holic/create-create-app#41d44df2f1b2be760eaf53281a1d6a8102a76a3d" + }, + "devDependencies": { + "@types/node": "^17.0.29", + "shx": "^0.3.4", + "tsup": "^5.12.1", + "typescript": "^4.6.3" + } +} diff --git a/packages/create-mud/src/cli.ts b/packages/create-mud/src/cli.ts new file mode 100644 index 0000000000..33bbca5479 --- /dev/null +++ b/packages/create-mud/src/cli.ts @@ -0,0 +1,19 @@ +#!/usr/bin/env node + +import { create } from "create-create-app"; +import { resolve } from "path"; + +const templateRoot = resolve(__dirname, "..", "templates"); + +// See https://github.com/uetchy/create-create-app/blob/master/README.md for other options. + +create("create-mud", { + templateRoot, + defaultTemplate: "minimal", + promptForDescription: false, + promptForAuthor: false, + promptForEmail: false, + promptForLicense: false, + promptForTemplate: true, + caveat: ({ answers }) => `Done! Play in the MUD with \`cd ${answers.name}\` and \`yarn dev\``, +}); diff --git a/packages/create-mud/templates/.npmignore b/packages/create-mud/templates/.npmignore new file mode 100644 index 0000000000..81fa541009 --- /dev/null +++ b/packages/create-mud/templates/.npmignore @@ -0,0 +1,2 @@ +# make sure our npm package includes the template's gitignore +!.gitignore diff --git a/packages/create-mud/templates/minimal/.gitignore b/packages/create-mud/templates/minimal/.gitignore new file mode 100644 index 0000000000..b512c09d47 --- /dev/null +++ b/packages/create-mud/templates/minimal/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/packages/create-mud/templates/minimal/.vscode/settings.json b/packages/create-mud/templates/minimal/.vscode/settings.json new file mode 100644 index 0000000000..28e75e5e6d --- /dev/null +++ b/packages/create-mud/templates/minimal/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "solidity.remappings": [ + "components/=./packages/contracts/src/components", + "systems/=./packages/contracts/src/systems", + "libraries/=./packages/contracts/src/libraries", + "std-contracts/=./node_modules/@latticexyz/std-contracts/src/", + "solecs/=./node_modules/@latticexyz/solecs/src/", + "memmove/=./node_modules/memmove/src/", + "ds-test/=./node_modules/ds-test/src/", + "solmate/=./node_modules/@rari-capital/solmate/src/", + "forge-std/=./node_modules/forge-std/src/" + ] +} diff --git a/packages/create-mud/templates/minimal/package.json b/packages/create-mud/templates/minimal/package.json new file mode 100644 index 0000000000..00f0623a61 --- /dev/null +++ b/packages/create-mud/templates/minimal/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "{{kebab name}}", + "workspaces": [ + "packages/*" + ], + "scripts": { + "prepare": "yarn workspace contracts prepare", + "dev": "run-pty % yarn dev:node % yarn dev:client % yarn dev:contracts", + "dev:client": "yarn workspace client run dev", + "dev:node": "yarn workspace contracts run devnode", + "dev:contracts": "yarn workspace contracts run dev" + }, + "devDependencies": { + "run-pty": "^4.0.3" + } +} diff --git a/packages/create-mud/templates/minimal/packages/client/.eslintrc b/packages/create-mud/templates/minimal/packages/client/.eslintrc new file mode 100644 index 0000000000..674b494f83 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/.eslintrc @@ -0,0 +1,9 @@ +{ + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ] +} diff --git a/packages/create-mud/templates/minimal/packages/client/.gitignore b/packages/create-mud/templates/minimal/packages/client/.gitignore new file mode 100644 index 0000000000..0ca39c007c --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +.DS_Store diff --git a/packages/create-mud/templates/minimal/packages/client/index.html b/packages/create-mud/templates/minimal/packages/client/index.html new file mode 100644 index 0000000000..4345268f38 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/index.html @@ -0,0 +1,13 @@ + + + + + + a minimal MUD client + + + +
Counter: 0
+ + + diff --git a/packages/create-mud/templates/minimal/packages/client/package.json b/packages/create-mud/templates/minimal/packages/client/package.json new file mode 100644 index 0000000000..5ef121fb79 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/package.json @@ -0,0 +1,34 @@ +{ + "name": "client", + "license": "MIT", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", + "eslint": "^8.29.0", + "typescript": "^4.6.4", + "vite": "^3.2.3" + }, + "dependencies": { + "@improbable-eng/grpc-web": "^0.15.0", + "@latticexyz/network": "1.34.0", + "@latticexyz/recs": "1.34.0", + "@latticexyz/services": "1.34.0", + "@latticexyz/std-client": "1.34.0", + "async-mutex": "^0.4.0", + "ethers": "^5.7.2", + "mobx": "^6.7.0", + "nice-grpc": "^2.0.1", + "nice-grpc-web": "^2.0.1", + "proxy-deep": "^3.1.1", + "react": "^18.2.0", + "threads": "^1.7.0" + } +} diff --git a/packages/create-mud/templates/minimal/packages/client/src/config.ts b/packages/create-mud/templates/minimal/packages/client/src/config.ts new file mode 100644 index 0000000000..aeb1ac3f82 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/src/config.ts @@ -0,0 +1,22 @@ +import { SetupContractConfig } from "@latticexyz/std-client"; +import { Wallet } from "ethers"; +const params = new URLSearchParams(window.location.search); + +export const config: SetupContractConfig = { + clock: { + period: 1000, + initialTime: 0, + syncInterval: 5000, + }, + provider: { + jsonRpcUrl: params.get("rpc") ?? "http://localhost:8545", + wsRpcUrl: params.get("wsRpc") ?? "ws://localhost:8545", + chainId: Number(params.get("chainId")) || 31337, + }, + privateKey: Wallet.createRandom().privateKey, + chainId: Number(params.get("chainId")) || 31337, + snapshotServiceUrl: params.get("snapshot") ?? undefined, + initialBlockNumber: Number(params.get("initialBlockNumber")) || 0, + worldAddress: params.get("worldAddress")!, + devMode: params.get("dev") === "true", +}; diff --git a/packages/create-mud/templates/minimal/packages/client/src/index.ts b/packages/create-mud/templates/minimal/packages/client/src/index.ts new file mode 100644 index 0000000000..41daa05b3e --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/src/index.ts @@ -0,0 +1,37 @@ +import { setupMUDNetwork } from "@latticexyz/std-client"; +import { createWorld } from "@latticexyz/recs"; +import { SystemTypes } from "contracts/types/SystemTypes"; +import { SystemAbis } from "contracts/types/SystemAbis.mjs"; +import { defineNumberComponent } from "@latticexyz/std-client"; +import { config } from "./config"; + +// The world contains references to all entities, all components and disposers. +const world = createWorld(); + +// Components contain the application state. +// If a contractId is provided, MUD syncs the state with the corresponding +// component contract (in this case `CounterComponent.sol`) +const components = { + Counter: defineNumberComponent(world, { + metadata: { + contractId: "component.Counter", + }, + }), +}; + +// Components expose a stream that triggers when the component is updated. +components.Counter.update$.subscribe(({ value }) => { + document.getElementById("counter")!.innerHTML = String(value?.[0]?.value); +}); + +// This is where the magic happens +setupMUDNetwork(config, world, components, SystemAbis).then( + ({ startSync, systems }) => { + // After setting up the network, we can tell MUD to start the synchronization process. + startSync(); + + // Just for demonstration purposes: we create a global function that can be + // called to invoke the Increment system contract. (See IncrementSystem.sol.) + (window as any).increment = () => systems["system.Increment"].executeTyped("0x00"); + } +); diff --git a/packages/create-mud/templates/minimal/packages/client/tsconfig.json b/packages/create-mud/templates/minimal/packages/client/tsconfig.json new file mode 100644 index 0000000000..eac16d14a6 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "Node", + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true + }, + "include": ["src"] +} diff --git a/packages/create-mud/templates/minimal/packages/client/vite.config.ts b/packages/create-mud/templates/minimal/packages/client/vite.config.ts new file mode 100644 index 0000000000..74bf18a46d --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/client/vite.config.ts @@ -0,0 +1,29 @@ +import { defineConfig } from "vite"; +export default defineConfig({ + server: { + port: 3000, + fs: { + strict: false, + }, + }, + optimizeDeps: { + esbuildOptions: { + target: "es2020", + }, + exclude: ["@latticexyz/network"], + include: [ + "proxy-deep", + "ethers/lib/utils", + "bn.js", + "js-sha3", + "hash.js", + "bech32", + "long", + "protobufjs/minimal", + "debug", + "is-observable", + "nice-grpc-web", + "@improbable-eng/grpc-web", + ], + }, +}); diff --git a/packages/create-mud/templates/minimal/packages/contracts/.gitignore b/packages/create-mud/templates/minimal/packages/contracts/.gitignore new file mode 100644 index 0000000000..87fe468de2 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/.gitignore @@ -0,0 +1,10 @@ +out/ +cache/ +node_modules/ +bindings/ +artifacts/ +deployments +abi/ +types/ +broadcast/ +.env \ No newline at end of file diff --git a/packages/create-mud/templates/minimal/packages/contracts/.prettierrc b/packages/create-mud/templates/minimal/packages/contracts/.prettierrc new file mode 100644 index 0000000000..9a5a009900 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/.prettierrc @@ -0,0 +1,7 @@ +{ + "printWidth": 120, + "semi": true, + "tabWidth": 2, + "useTabs": false, + "bracketSpacing": true +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/.solhint.json b/packages/create-mud/templates/minimal/packages/contracts/.solhint.json new file mode 100644 index 0000000000..cb52819591 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/.solhint.json @@ -0,0 +1,11 @@ +{ + "extends": "solhint:recommended", + "rules": { + "compiler-version": ["error", ">=0.8.0"], + "avoid-low-level-calls": "off", + "no-inline-assembly": "off", + "func-visibility": ["warn", { "ignoreConstructors": true }], + "no-empty-blocks": "off", + "no-complex-fallback": "off" + } +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/chainSpec.json b/packages/create-mud/templates/minimal/packages/contracts/chainSpec.json new file mode 100644 index 0000000000..16a378f46a --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/chainSpec.json @@ -0,0 +1,5 @@ +{ + "chainId": 31337, + "rpc": "http://localhost:8545", + "wsRpc": "ws://localhost:8545" +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/deploy.json b/packages/create-mud/templates/minimal/packages/contracts/deploy.json new file mode 100644 index 0000000000..78d525ee02 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/deploy.json @@ -0,0 +1,4 @@ +{ + "components": ["CounterComponent"], + "systems": [{ "name": "IncrementSystem", "writeAccess": ["CounterComponent"] }] +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/exports.sh b/packages/create-mud/templates/minimal/packages/contracts/exports.sh new file mode 100644 index 0000000000..e879fcecce --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/exports.sh @@ -0,0 +1,22 @@ +#! usr/bin/bash +ABIS=( + # Add greps to export here + *Component + *System + World + LibQuery +) + +EXCLUDE=( + # Add files not to export here + Component + IComponent +) + +for file in ${ABIS[@]}; do + cp out/$file.sol/*.json abi/; +done + +for file in ${EXCLUDE[@]}; do + rm abi/$file.json; +done diff --git a/packages/create-mud/templates/minimal/packages/contracts/foundry.toml b/packages/create-mud/templates/minimal/packages/contracts/foundry.toml new file mode 100644 index 0000000000..1460f06f91 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/foundry.toml @@ -0,0 +1,10 @@ +[profile.default] +ffi = false +fuzz_runs = 256 +optimizer = true +optimizer_runs = 1000000 +verbosity = 1 +libs = ["../../node_modules", "../../../mud"] +src = "src" +test = "src/test" +out = "out" diff --git a/packages/create-mud/templates/minimal/packages/contracts/package.json b/packages/create-mud/templates/minimal/packages/contracts/package.json new file mode 100644 index 0000000000..7667f01a64 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/package.json @@ -0,0 +1,45 @@ +{ + "name": "contracts", + "license": "MIT", + "version": "0.0.0", + "private": true, + "scripts": { + "----- EXTERNAL -----": "---------------------------", + "prepare": "mud types", + "devnode": "mud devnode", + "test": "mud test", + "types": "mud types", + "dev": "mud deploy-contracts --dev --watch --openUrl http://localhost:3000?dev=true", + "deploy": "mud deploy-contracts", + "lint": "yarn prettier && yarn solhint", + "----- INTERNAL -----": "---------------------------", + "prettier": "prettier --write 'src/**/*.sol'", + "solhint": "solhint --config ./.solhint.json 'src/**/*.sol' --fix" + }, + "devDependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@latticexyz/cli": "1.34.0", + "@latticexyz/solecs": "1.34.0", + "@latticexyz/std-contracts": "1.34.0", + "@rari-capital/solmate": "https://github.com/rari-capital/solmate.git#851ea3baa4327f453da723df75b1093b58b964dc", + "@solidstate/contracts": "^0.0.52", + "@typechain/ethers-v5": "^10.1.1", + "@types/node": "^18.11.9", + "ds-test": "https://github.com/dapphub/ds-test.git#c7a36fb236f298e04edf28e2fee385b80f53945f", + "ethers": "^5.7.1", + "forge-std": "https://github.com/foundry-rs/forge-std.git#4d36e3f7e2168c8155c641eb0f80e85cd584bd1c", + "memmove": "https://github.com/brockelmore/memmove.git#d577ecd1bc43656f4032edf4daa9797f756a8ad2", + "prettier": "^2.6.2", + "prettier-plugin-solidity": "^1.0.0-beta.19", + "rimraf": "^3.0.2", + "run-pty": "^4.0.3", + "solhint": "^3.3.7", + "ts-node": "^10.7.0", + "typechain": "^8.1.1", + "typescript": "^4.6.2", + "wait-on": "^6.0.1" + }, + "dependencies": {} +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/remappings.txt b/packages/create-mud/templates/minimal/packages/contracts/remappings.txt new file mode 100644 index 0000000000..90e76682f8 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/remappings.txt @@ -0,0 +1,9 @@ +components/=./src/components +systems/=./src/systems +libraries/=./src/libraries +std-contracts/=../../node_modules/@latticexyz/std-contracts/src/ +solecs/=../../node_modules/@latticexyz/solecs/src/ +memmove/=../../node_modules/memmove/src/ +ds-test/=../../node_modules/ds-test/src/ +solmate/=../../node_modules/@rari-capital/solmate/src/ +forge-std/=../../node_modules/forge-std/src/ \ No newline at end of file diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/components/CounterComponent.sol b/packages/create-mud/templates/minimal/packages/contracts/src/components/CounterComponent.sol new file mode 100644 index 0000000000..792525c09b --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/components/CounterComponent.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import "std-contracts/components/Uint32Component.sol"; + +uint256 constant ID = uint256(keccak256("component.Counter")); + +contract CounterComponent is Uint32Component { + constructor(address world) Uint32Component(world, ID) {} +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/libraries/LibMath.sol b/packages/create-mud/templates/minimal/packages/contracts/src/libraries/LibMath.sol new file mode 100644 index 0000000000..02889d9cb2 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/libraries/LibMath.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import { Uint32Component } from "std-contracts/components/Uint32Component.sol"; + +library LibMath { + function increment(Uint32Component component, uint256 entity) internal { + uint32 current = component.has(entity) ? component.getValue(entity) : 0; + component.set(entity, current + 1); + } +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/systems/IncrementSystem.sol b/packages/create-mud/templates/minimal/packages/contracts/src/systems/IncrementSystem.sol new file mode 100644 index 0000000000..66dbec7bb8 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/systems/IncrementSystem.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import { System, IWorld } from "solecs/System.sol"; +import { getAddressById } from "solecs/utils.sol"; +import { CounterComponent, ID as CounterComponentID } from "components/CounterComponent.sol"; +import { LibMath } from "libraries/LibMath.sol"; + +uint256 constant ID = uint256(keccak256("system.Increment")); + +contract IncrementSystem is System { + constructor(IWorld _world, address _components) System(_world, _components) {} + + function execute(bytes memory arguments) public returns (bytes memory) { + uint256 entity = abi.decode(arguments, (uint256)); + CounterComponent c = CounterComponent(getAddressById(components, CounterComponentID)); + LibMath.increment(c, entity); + } + + function executeTyped(uint256 entity) public returns (bytes memory) { + return execute(abi.encode(entity)); + } +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/systems/README.md b/packages/create-mud/templates/minimal/packages/contracts/src/systems/README.md new file mode 100644 index 0000000000..c7d25e8fcc --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/systems/README.md @@ -0,0 +1,7 @@ +# Systems + +In order to automatically generate system abi and type maps (using `mud system-types`), systems must follow some rules: + +- Systems must implement the `ISystem` interface. +- Systems must declare an ID following this pattern: `uint256 constant ID = uint256(keccak256(""));` +- System contracts must be named exactly the same as the file containing them. diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.sol b/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.sol new file mode 100644 index 0000000000..3f773146e8 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { IDeploy } from "std-contracts/test/MudTest.t.sol"; +import { Vm } from "forge-std/Vm.sol"; +import { IWorld } from "solecs/interfaces/IWorld.sol"; +import { LibDeploy, DeployResult } from "./LibDeploy.sol"; + +contract Deploy is IDeploy { + address constant HEVM_ADDRESS = address(bytes20(uint160(uint256(keccak256("hevm cheat code"))))); + Vm internal immutable vm = Vm(HEVM_ADDRESS); + + function deploy(address deployer) external returns (IWorld world) { + vm.startPrank(deployer); + DeployResult memory result = LibDeploy.deploy(deployer, address(0), false); + world = result.world; + vm.stopPrank(); + } +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.t.sol b/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.t.sol new file mode 100644 index 0000000000..9e4f7441c1 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/test/Deploy.t.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { Deploy } from "./Deploy.sol"; +import "std-contracts/test/MudTest.t.sol"; + +contract DeployTest is MudTest { + constructor() MudTest(new Deploy()) {} + + function testDeploy() public view { + console.log("Deployer"); + console.log(deployer); + } +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/src/test/LibDeploy.sol b/packages/create-mud/templates/minimal/packages/contracts/src/test/LibDeploy.sol new file mode 100644 index 0000000000..86d91b6a2a --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/src/test/LibDeploy.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +// @NOTE: DO NOT EDIT! +// This file is a stub for LibDeploy.json to make imports work. +// The real LibDeploy.json is generated automatically when deploying +// via `mud deploy` or testing via `mud test` + +import { World } from "solecs/World.sol"; + +struct DeployResult { + World world; + address deployer; +} + +library LibDeploy { + function deploy( + address _deployer, + address _world, + bool _reuseComponents + ) internal returns (DeployResult memory result) {} +} diff --git a/packages/create-mud/templates/minimal/packages/contracts/tsconfig.json b/packages/create-mud/templates/minimal/packages/contracts/tsconfig.json new file mode 100644 index 0000000000..486685aee5 --- /dev/null +++ b/packages/create-mud/templates/minimal/packages/contracts/tsconfig.json @@ -0,0 +1,12 @@ +// Visit https://aka.ms/tsconfig.json for all config options +{ + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "strict": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} \ No newline at end of file diff --git a/packages/create-mud/templates/react/.gitignore b/packages/create-mud/templates/react/.gitignore new file mode 100644 index 0000000000..b512c09d47 --- /dev/null +++ b/packages/create-mud/templates/react/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/packages/create-mud/templates/react/.vscode/settings.json b/packages/create-mud/templates/react/.vscode/settings.json new file mode 100644 index 0000000000..28e75e5e6d --- /dev/null +++ b/packages/create-mud/templates/react/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "solidity.remappings": [ + "components/=./packages/contracts/src/components", + "systems/=./packages/contracts/src/systems", + "libraries/=./packages/contracts/src/libraries", + "std-contracts/=./node_modules/@latticexyz/std-contracts/src/", + "solecs/=./node_modules/@latticexyz/solecs/src/", + "memmove/=./node_modules/memmove/src/", + "ds-test/=./node_modules/ds-test/src/", + "solmate/=./node_modules/@rari-capital/solmate/src/", + "forge-std/=./node_modules/forge-std/src/" + ] +} diff --git a/packages/create-mud/templates/react/package.json b/packages/create-mud/templates/react/package.json new file mode 100644 index 0000000000..00f0623a61 --- /dev/null +++ b/packages/create-mud/templates/react/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "{{kebab name}}", + "workspaces": [ + "packages/*" + ], + "scripts": { + "prepare": "yarn workspace contracts prepare", + "dev": "run-pty % yarn dev:node % yarn dev:client % yarn dev:contracts", + "dev:client": "yarn workspace client run dev", + "dev:node": "yarn workspace contracts run devnode", + "dev:contracts": "yarn workspace contracts run dev" + }, + "devDependencies": { + "run-pty": "^4.0.3" + } +} diff --git a/packages/create-mud/templates/react/packages/client/.eslintrc b/packages/create-mud/templates/react/packages/client/.eslintrc new file mode 100644 index 0000000000..1c32057fa9 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/.eslintrc @@ -0,0 +1,11 @@ +{ + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint", "react", "react-hooks"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:react-hooks/recommended" + ] +} diff --git a/packages/create-mud/templates/react/packages/client/.gitignore b/packages/create-mud/templates/react/packages/client/.gitignore new file mode 100644 index 0000000000..0ca39c007c --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +.DS_Store diff --git a/packages/create-mud/templates/react/packages/client/index.html b/packages/create-mud/templates/react/packages/client/index.html new file mode 100644 index 0000000000..c3f06eb806 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/index.html @@ -0,0 +1,12 @@ + + + + + + a minimal MUD client + + +
+ + + diff --git a/packages/create-mud/templates/react/packages/client/package.json b/packages/create-mud/templates/react/packages/client/package.json new file mode 100644 index 0000000000..c49f242b6a --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/package.json @@ -0,0 +1,41 @@ +{ + "name": "client", + "license": "MIT", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", + "@vitejs/plugin-react": "^3.0.0", + "eslint": "^8.29.0", + "eslint-plugin-react": "^7.31.11", + "eslint-plugin-react-hooks": "^4.6.0", + "typescript": "^4.6.4", + "vite": "^3.2.3" + }, + "dependencies": { + "@improbable-eng/grpc-web": "^0.15.0", + "@latticexyz/network": "1.34.0", + "@latticexyz/react": "1.34.0", + "@latticexyz/recs": "1.34.0", + "@latticexyz/services": "1.34.0", + "@latticexyz/std-client": "1.34.0", + "async-mutex": "^0.4.0", + "ethers": "^5.7.2", + "mobx": "^6.7.0", + "nice-grpc": "^2.0.1", + "nice-grpc-web": "^2.0.1", + "proxy-deep": "^3.1.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "threads": "^1.7.0" + } +} diff --git a/packages/create-mud/templates/react/packages/client/src/App.tsx b/packages/create-mud/templates/react/packages/client/src/App.tsx new file mode 100644 index 0000000000..9a0949749c --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/src/App.tsx @@ -0,0 +1,31 @@ +import { GodID as SingletonID, TxQueue } from "@latticexyz/network"; +import { World } from "@latticexyz/recs"; +import { SystemTypes } from "contracts/types/SystemTypes"; +import { useComponentValue } from "@latticexyz/react"; +import { components, singletonIndex } from "."; + +type Props = { + world: World; + systems: TxQueue; + components: typeof components; +}; + +export const App = ({ systems, components }: Props) => { + const counter = useComponentValue(components.Counter, singletonIndex); + return ( + <> +
+ Counter: {counter?.value ?? "??"} +
+ + + ); +}; diff --git a/packages/create-mud/templates/react/packages/client/src/config.ts b/packages/create-mud/templates/react/packages/client/src/config.ts new file mode 100644 index 0000000000..aeb1ac3f82 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/src/config.ts @@ -0,0 +1,22 @@ +import { SetupContractConfig } from "@latticexyz/std-client"; +import { Wallet } from "ethers"; +const params = new URLSearchParams(window.location.search); + +export const config: SetupContractConfig = { + clock: { + period: 1000, + initialTime: 0, + syncInterval: 5000, + }, + provider: { + jsonRpcUrl: params.get("rpc") ?? "http://localhost:8545", + wsRpcUrl: params.get("wsRpc") ?? "ws://localhost:8545", + chainId: Number(params.get("chainId")) || 31337, + }, + privateKey: Wallet.createRandom().privateKey, + chainId: Number(params.get("chainId")) || 31337, + snapshotServiceUrl: params.get("snapshot") ?? undefined, + initialBlockNumber: Number(params.get("initialBlockNumber")) || 0, + worldAddress: params.get("worldAddress")!, + devMode: params.get("dev") === "true", +}; diff --git a/packages/create-mud/templates/react/packages/client/src/index.tsx b/packages/create-mud/templates/react/packages/client/src/index.tsx new file mode 100644 index 0000000000..8660576678 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/src/index.tsx @@ -0,0 +1,41 @@ +import ReactDOM from "react-dom/client"; +import { setupMUDNetwork } from "@latticexyz/std-client"; +import { createWorld } from "@latticexyz/recs"; +import { SystemTypes } from "contracts/types/SystemTypes"; +import { SystemAbis } from "contracts/types/SystemAbis.mjs"; +import { defineNumberComponent } from "@latticexyz/std-client"; +import { config } from "./config"; +import { App } from "./App"; +import { GodID as SingletonID } from "@latticexyz/network"; + +const rootElement = document.getElementById("react-root"); +if (!rootElement) throw new Error("React root not found"); +const root = ReactDOM.createRoot(rootElement); + +// The world contains references to all entities, all components and disposers. +const world = createWorld(); +export const singletonIndex = world.registerEntity({ id: SingletonID }); + +// Components contain the application state. +// If a contractId is provided, MUD syncs the state with the corresponding +// component contract (in this case `CounterComponent.sol`) +export const components = { + Counter: defineNumberComponent(world, { + metadata: { + contractId: "component.Counter", + }, + }), +}; + +// This is where the magic happens +setupMUDNetwork( + config, + world, + components, + SystemAbis +).then(({ startSync, systems }) => { + // After setting up the network, we can tell MUD to start the synchronization process. + startSync(); + + root.render(); +}); diff --git a/packages/create-mud/templates/react/packages/client/tsconfig.json b/packages/create-mud/templates/react/packages/client/tsconfig.json new file mode 100644 index 0000000000..7fc6de68b0 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "Node", + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "skipLibCheck": true, + "jsx": "react-jsx", + "jsxImportSource": "react" + }, + "include": ["src"] +} diff --git a/packages/create-mud/templates/react/packages/client/vite.config.ts b/packages/create-mud/templates/react/packages/client/vite.config.ts new file mode 100644 index 0000000000..e1e1e18342 --- /dev/null +++ b/packages/create-mud/templates/react/packages/client/vite.config.ts @@ -0,0 +1,32 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + plugins: [react()], + server: { + port: 3000, + fs: { + strict: false, + }, + }, + optimizeDeps: { + esbuildOptions: { + target: "es2020", + }, + exclude: ["@latticexyz/network"], + include: [ + "proxy-deep", + "ethers/lib/utils", + "bn.js", + "js-sha3", + "hash.js", + "bech32", + "long", + "protobufjs/minimal", + "debug", + "is-observable", + "nice-grpc-web", + "@improbable-eng/grpc-web", + ], + }, +}); diff --git a/packages/create-mud/templates/react/packages/contracts/.gitignore b/packages/create-mud/templates/react/packages/contracts/.gitignore new file mode 100644 index 0000000000..87fe468de2 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/.gitignore @@ -0,0 +1,10 @@ +out/ +cache/ +node_modules/ +bindings/ +artifacts/ +deployments +abi/ +types/ +broadcast/ +.env \ No newline at end of file diff --git a/packages/create-mud/templates/react/packages/contracts/.prettierrc b/packages/create-mud/templates/react/packages/contracts/.prettierrc new file mode 100644 index 0000000000..9a5a009900 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/.prettierrc @@ -0,0 +1,7 @@ +{ + "printWidth": 120, + "semi": true, + "tabWidth": 2, + "useTabs": false, + "bracketSpacing": true +} diff --git a/packages/create-mud/templates/react/packages/contracts/.solhint.json b/packages/create-mud/templates/react/packages/contracts/.solhint.json new file mode 100644 index 0000000000..cb52819591 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/.solhint.json @@ -0,0 +1,11 @@ +{ + "extends": "solhint:recommended", + "rules": { + "compiler-version": ["error", ">=0.8.0"], + "avoid-low-level-calls": "off", + "no-inline-assembly": "off", + "func-visibility": ["warn", { "ignoreConstructors": true }], + "no-empty-blocks": "off", + "no-complex-fallback": "off" + } +} diff --git a/packages/create-mud/templates/react/packages/contracts/chainSpec.json b/packages/create-mud/templates/react/packages/contracts/chainSpec.json new file mode 100644 index 0000000000..16a378f46a --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/chainSpec.json @@ -0,0 +1,5 @@ +{ + "chainId": 31337, + "rpc": "http://localhost:8545", + "wsRpc": "ws://localhost:8545" +} diff --git a/packages/create-mud/templates/react/packages/contracts/deploy.json b/packages/create-mud/templates/react/packages/contracts/deploy.json new file mode 100644 index 0000000000..78d525ee02 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/deploy.json @@ -0,0 +1,4 @@ +{ + "components": ["CounterComponent"], + "systems": [{ "name": "IncrementSystem", "writeAccess": ["CounterComponent"] }] +} diff --git a/packages/create-mud/templates/react/packages/contracts/exports.sh b/packages/create-mud/templates/react/packages/contracts/exports.sh new file mode 100644 index 0000000000..e879fcecce --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/exports.sh @@ -0,0 +1,22 @@ +#! usr/bin/bash +ABIS=( + # Add greps to export here + *Component + *System + World + LibQuery +) + +EXCLUDE=( + # Add files not to export here + Component + IComponent +) + +for file in ${ABIS[@]}; do + cp out/$file.sol/*.json abi/; +done + +for file in ${EXCLUDE[@]}; do + rm abi/$file.json; +done diff --git a/packages/create-mud/templates/react/packages/contracts/foundry.toml b/packages/create-mud/templates/react/packages/contracts/foundry.toml new file mode 100644 index 0000000000..86a7d45f76 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/foundry.toml @@ -0,0 +1,9 @@ +[profile.default] +ffi = false +fuzz_runs = 256 +optimizer = true +optimizer_runs = 1000000 +verbosity = 1 +libs = ["../../node_modules", "../../../mud"] +src = "src" +out = "out" \ No newline at end of file diff --git a/packages/create-mud/templates/react/packages/contracts/package.json b/packages/create-mud/templates/react/packages/contracts/package.json new file mode 100644 index 0000000000..7667f01a64 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/package.json @@ -0,0 +1,45 @@ +{ + "name": "contracts", + "license": "MIT", + "version": "0.0.0", + "private": true, + "scripts": { + "----- EXTERNAL -----": "---------------------------", + "prepare": "mud types", + "devnode": "mud devnode", + "test": "mud test", + "types": "mud types", + "dev": "mud deploy-contracts --dev --watch --openUrl http://localhost:3000?dev=true", + "deploy": "mud deploy-contracts", + "lint": "yarn prettier && yarn solhint", + "----- INTERNAL -----": "---------------------------", + "prettier": "prettier --write 'src/**/*.sol'", + "solhint": "solhint --config ./.solhint.json 'src/**/*.sol' --fix" + }, + "devDependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@latticexyz/cli": "1.34.0", + "@latticexyz/solecs": "1.34.0", + "@latticexyz/std-contracts": "1.34.0", + "@rari-capital/solmate": "https://github.com/rari-capital/solmate.git#851ea3baa4327f453da723df75b1093b58b964dc", + "@solidstate/contracts": "^0.0.52", + "@typechain/ethers-v5": "^10.1.1", + "@types/node": "^18.11.9", + "ds-test": "https://github.com/dapphub/ds-test.git#c7a36fb236f298e04edf28e2fee385b80f53945f", + "ethers": "^5.7.1", + "forge-std": "https://github.com/foundry-rs/forge-std.git#4d36e3f7e2168c8155c641eb0f80e85cd584bd1c", + "memmove": "https://github.com/brockelmore/memmove.git#d577ecd1bc43656f4032edf4daa9797f756a8ad2", + "prettier": "^2.6.2", + "prettier-plugin-solidity": "^1.0.0-beta.19", + "rimraf": "^3.0.2", + "run-pty": "^4.0.3", + "solhint": "^3.3.7", + "ts-node": "^10.7.0", + "typechain": "^8.1.1", + "typescript": "^4.6.2", + "wait-on": "^6.0.1" + }, + "dependencies": {} +} diff --git a/packages/create-mud/templates/react/packages/contracts/remappings.txt b/packages/create-mud/templates/react/packages/contracts/remappings.txt new file mode 100644 index 0000000000..90e76682f8 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/remappings.txt @@ -0,0 +1,9 @@ +components/=./src/components +systems/=./src/systems +libraries/=./src/libraries +std-contracts/=../../node_modules/@latticexyz/std-contracts/src/ +solecs/=../../node_modules/@latticexyz/solecs/src/ +memmove/=../../node_modules/memmove/src/ +ds-test/=../../node_modules/ds-test/src/ +solmate/=../../node_modules/@rari-capital/solmate/src/ +forge-std/=../../node_modules/forge-std/src/ \ No newline at end of file diff --git a/packages/create-mud/templates/react/packages/contracts/src/components/CounterComponent.sol b/packages/create-mud/templates/react/packages/contracts/src/components/CounterComponent.sol new file mode 100644 index 0000000000..792525c09b --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/components/CounterComponent.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import "std-contracts/components/Uint32Component.sol"; + +uint256 constant ID = uint256(keccak256("component.Counter")); + +contract CounterComponent is Uint32Component { + constructor(address world) Uint32Component(world, ID) {} +} diff --git a/packages/create-mud/templates/react/packages/contracts/src/libraries/LibMath.sol b/packages/create-mud/templates/react/packages/contracts/src/libraries/LibMath.sol new file mode 100644 index 0000000000..02889d9cb2 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/libraries/LibMath.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import { Uint32Component } from "std-contracts/components/Uint32Component.sol"; + +library LibMath { + function increment(Uint32Component component, uint256 entity) internal { + uint32 current = component.has(entity) ? component.getValue(entity) : 0; + component.set(entity, current + 1); + } +} diff --git a/packages/create-mud/templates/react/packages/contracts/src/systems/IncrementSystem.sol b/packages/create-mud/templates/react/packages/contracts/src/systems/IncrementSystem.sol new file mode 100644 index 0000000000..66dbec7bb8 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/systems/IncrementSystem.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; +import { System, IWorld } from "solecs/System.sol"; +import { getAddressById } from "solecs/utils.sol"; +import { CounterComponent, ID as CounterComponentID } from "components/CounterComponent.sol"; +import { LibMath } from "libraries/LibMath.sol"; + +uint256 constant ID = uint256(keccak256("system.Increment")); + +contract IncrementSystem is System { + constructor(IWorld _world, address _components) System(_world, _components) {} + + function execute(bytes memory arguments) public returns (bytes memory) { + uint256 entity = abi.decode(arguments, (uint256)); + CounterComponent c = CounterComponent(getAddressById(components, CounterComponentID)); + LibMath.increment(c, entity); + } + + function executeTyped(uint256 entity) public returns (bytes memory) { + return execute(abi.encode(entity)); + } +} diff --git a/packages/create-mud/templates/react/packages/contracts/src/systems/README.md b/packages/create-mud/templates/react/packages/contracts/src/systems/README.md new file mode 100644 index 0000000000..c7d25e8fcc --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/systems/README.md @@ -0,0 +1,7 @@ +# Systems + +In order to automatically generate system abi and type maps (using `mud system-types`), systems must follow some rules: + +- Systems must implement the `ISystem` interface. +- Systems must declare an ID following this pattern: `uint256 constant ID = uint256(keccak256(""));` +- System contracts must be named exactly the same as the file containing them. diff --git a/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.sol b/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.sol new file mode 100644 index 0000000000..3f773146e8 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { IDeploy } from "std-contracts/test/MudTest.t.sol"; +import { Vm } from "forge-std/Vm.sol"; +import { IWorld } from "solecs/interfaces/IWorld.sol"; +import { LibDeploy, DeployResult } from "./LibDeploy.sol"; + +contract Deploy is IDeploy { + address constant HEVM_ADDRESS = address(bytes20(uint160(uint256(keccak256("hevm cheat code"))))); + Vm internal immutable vm = Vm(HEVM_ADDRESS); + + function deploy(address deployer) external returns (IWorld world) { + vm.startPrank(deployer); + DeployResult memory result = LibDeploy.deploy(deployer, address(0), false); + world = result.world; + vm.stopPrank(); + } +} diff --git a/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.t.sol b/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.t.sol new file mode 100644 index 0000000000..9e4f7441c1 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/test/Deploy.t.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { Deploy } from "./Deploy.sol"; +import "std-contracts/test/MudTest.t.sol"; + +contract DeployTest is MudTest { + constructor() MudTest(new Deploy()) {} + + function testDeploy() public view { + console.log("Deployer"); + console.log(deployer); + } +} diff --git a/packages/create-mud/templates/react/packages/contracts/src/test/LibDeploy.sol b/packages/create-mud/templates/react/packages/contracts/src/test/LibDeploy.sol new file mode 100644 index 0000000000..86d91b6a2a --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/src/test/LibDeploy.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +// @NOTE: DO NOT EDIT! +// This file is a stub for LibDeploy.json to make imports work. +// The real LibDeploy.json is generated automatically when deploying +// via `mud deploy` or testing via `mud test` + +import { World } from "solecs/World.sol"; + +struct DeployResult { + World world; + address deployer; +} + +library LibDeploy { + function deploy( + address _deployer, + address _world, + bool _reuseComponents + ) internal returns (DeployResult memory result) {} +} diff --git a/packages/create-mud/templates/react/packages/contracts/tsconfig.json b/packages/create-mud/templates/react/packages/contracts/tsconfig.json new file mode 100644 index 0000000000..486685aee5 --- /dev/null +++ b/packages/create-mud/templates/react/packages/contracts/tsconfig.json @@ -0,0 +1,12 @@ +// Visit https://aka.ms/tsconfig.json for all config options +{ + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "strict": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} \ No newline at end of file diff --git a/packages/create-mud/tsconfig.json b/packages/create-mud/tsconfig.json new file mode 100644 index 0000000000..fb459d9e59 --- /dev/null +++ b/packages/create-mud/tsconfig.json @@ -0,0 +1,13 @@ +{ + "exclude": ["dist"], + "compilerOptions": { + "target": "es2018" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "declaration": true /* Generates corresponding '.d.ts' file. */, + // "sourceMap": true, /* Generates corresponding '.map' file. */ + "outDir": "./dist" /* Redirect output structure to the directory. */, + "rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + "strict": true /* Enable all strict type-checking options. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies */ + } +} diff --git a/yarn.lock b/yarn.lock index 43251beb58..6999212494 100644 --- a/yarn.lock +++ b/yarn.lock @@ -689,6 +689,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + "@esbuild/linux-loong64@0.15.16": version "0.15.16" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz#284522de76abe951e4ed2bd24a467e8d49c67933" @@ -3909,7 +3914,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.8.0.tgz#b8ee8d83a99470c0661bd899417fcd77060682fe" integrity sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA== -"@types/node@^17.0.21", "@types/node@^17.0.34": +"@types/node@^17.0.21", "@types/node@^17.0.29", "@types/node@^17.0.34": version "17.0.45" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== @@ -4010,11 +4015,25 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== +"@types/yargs-interactive@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@types/yargs-interactive/-/yargs-interactive-2.1.3.tgz#64d873480bdb6238f7d841f05532e47f788b99c9" + integrity sha512-bYB8ah0JPR6/lpHlxUzeHsrb3RK5OW7N8Hnth2nefnr6zQ5KFoDQ6wM5x58dTLEDYrwikFy3EPTf/O0HKLNaIg== + dependencies: + "@types/yargs" "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== +"@types/yargs@*": + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" + integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + dependencies: + "@types/yargs-parser" "*" + "@types/yargs@^16.0.0": version "16.0.4" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" @@ -4149,6 +4168,11 @@ abdk-libraries-solidity@^3.0.0: resolved "https://registry.yarnpkg.com/abdk-libraries-solidity/-/abdk-libraries-solidity-3.0.0.tgz#9085437262110f3f81abc067b3d24a6727cf7984" integrity sha512-oKBj/1wK6hIXxYjX7b2vCzJPHs9GDu49EBpNfUOw2FpA/nu1oV7V598MgAbB1+R1u7vuUhL6DYqolV+GMWaLvA== +abind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/abind/-/abind-1.0.5.tgz#9fa11e51ebf0fe8a60a316b28a2a85a0bc08495e" + integrity sha512-dbaEZphdPje0ihqSdWg36Sb8S20TuqQomiz2593oIx+enQ9Q4vDZRjIzhnkWltGRKVKqC28kTribkgRLBexWVQ== + abort-controller-x@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/abort-controller-x/-/abort-controller-x-0.4.1.tgz#b2eefab8503897e0bbdf3dd7a4d33e05ea1ffce9" @@ -4324,7 +4348,7 @@ ansi-gray@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-regex@^2.0.0: +ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== @@ -4448,6 +4472,20 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +argx@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/argx/-/argx-3.0.2.tgz#1baa88d160ab6f546b6ece0e07596cc2bb3424a9" + integrity sha512-PUyi1r14HG1AH6raqPEW8+vKNWfvHrmerdBXnf5iz7JOnO1hRaG1cGsH9eay/y8dUIreN7NxSEfK208UCGd0wQ== + dependencies: + iftype "^3.0.0" + +argx@^4.0.0, argx@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/argx/-/argx-4.0.4.tgz#eac913df14181328a2d33fe4897a56e70dbbcdb8" + integrity sha512-XLWeRTNBJRzQkbMweLIxdtnvpE7iYUBraPwrIJX57FjL4D1RHLMJRM1AyEP6KZHgvjW7TSnxF8MpGic7YdTGOA== + dependencies: + iftype "^4.0.9" + arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -4548,6 +4586,11 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" +arrayreduce@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arrayreduce/-/arrayreduce-2.1.0.tgz#ea5836e3086b6b54b7a562b479ecf8069c94d10a" + integrity sha512-I5MwrsPJ4faMuuPXM8+EgEy83G16i+FqegFhhHX3geDJbyaqPDWNrVjkrRg9SZq5mepEZdNg36SDPOhiKPWTLA== + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -4563,6 +4606,15 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +askconfig@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/askconfig/-/askconfig-4.0.4.tgz#d541f755848e83417c423efd139599eaff9ed762" + integrity sha512-fjB/vmAlUKxGVqcz4mLub3xF8m9rkazhqcXRvrDzeey0iaLhcAg2K8bhJL7pKjE2dFP9qDGv3+yXovYMV9XBJQ== + dependencies: + argx "^4.0.2" + cli-color "^1.4.0" + objnest "^5.0.6" + asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -4637,6 +4689,11 @@ async@^3.2.3: resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +async@~1.5: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -4749,6 +4806,14 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +babel-runtime@^6.11.6: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -5082,7 +5147,7 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -bundle-require@^3.1.2: +bundle-require@^3.0.2, bundle-require@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-3.1.2.tgz#1374a7bdcb8b330a7ccc862ccbf7c137cc43ad27" integrity sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA== @@ -5192,7 +5257,7 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -5272,7 +5337,7 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -5368,6 +5433,18 @@ clear@^0.1.0: resolved "https://registry.yarnpkg.com/clear/-/clear-0.1.0.tgz#b81b1e03437a716984fd7ac97c87d73bdfe7048a" integrity sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw== +cli-color@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" + integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w== + dependencies: + ansi-regex "^2.1.1" + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + memoizee "^0.4.14" + timers-ext "^0.1.5" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -5413,6 +5490,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -5785,6 +5871,11 @@ core-js-pure@^3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.24.1.tgz#8839dde5da545521bf282feb7dc6d0b425f39fd3" integrity sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg== +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -5829,6 +5920,25 @@ crc-32@^1.2.0: resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== +"create-create-app@git+https://github.com/holic/create-create-app#41d44df2f1b2be760eaf53281a1d6a8102a76a3d": + version "7.3.0" + resolved "git+https://github.com/holic/create-create-app#41d44df2f1b2be760eaf53281a1d6a8102a76a3d" + dependencies: + "@types/yargs-interactive" "^2.1.3" + chalk "^4" + cross-spawn "^7.0.3" + detect-package-manager "^2.0.1" + epicfail "^3.0.0" + execa "^5" + gitconfig "^2.0.8" + globby "^11" + handlebars "^4.7.7" + is-utf8 "^0.2.1" + license.js "^3.1.2" + slash "^3" + uuid "^8.3.2" + yargs-interactive "^3.0.1" + create-error-class@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" @@ -5958,6 +6068,14 @@ cz-conventional-changelog@3.3.0: optionalDependencies: "@commitlint/load" ">6.1.1" +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -6033,7 +6151,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.2: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== @@ -6232,6 +6350,13 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +detect-package-manager@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8" + integrity sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A== + dependencies: + execa "^5.1.1" + dezalgo@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -6537,11 +6662,21 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@^7.7.4: +envinfo@^7.7.4, envinfo@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +epicfail@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/epicfail/-/epicfail-3.0.0.tgz#b8a38172275549bfa68e933fd3f2325001944f40" + integrity sha512-zf7vvWZ2tI2+P1674dmcyPWopD/0FC2BrAi0DvDY0uKGmrB66rwpRVlOYKFlGwRO4Q6bpkoCTPhjqvi5hMOavQ== + dependencies: + chalk "^4.1.2" + envinfo "^7.8.1" + node-fetch "^2.6.1" + pkg-up "^3.1.0" + err-code@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" @@ -6642,6 +6777,47 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + esbuild-android-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz#0d6a16fa1bea441d5183976f1633183c25a764d5" @@ -6652,6 +6828,11 @@ esbuild-android-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + esbuild-android-arm64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz#78643bbbf396d26d20ba1f2fcdff3618c7c033e9" @@ -6662,6 +6843,11 @@ esbuild-android-arm64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + esbuild-darwin-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz#de3e91809dcd1ffb64409e2f990bb86e33e4ffd8" @@ -6672,6 +6858,11 @@ esbuild-darwin-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + esbuild-darwin-arm64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz#bc9cc8d51109d8e9db4ffe2c064dd53d1eb5a2a6" @@ -6682,6 +6873,11 @@ esbuild-darwin-arm64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + esbuild-freebsd-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz#f8c54c679c16e9b20a1bf860ca91ba700d6c9c5d" @@ -6692,6 +6888,11 @@ esbuild-freebsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + esbuild-freebsd-arm64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz#dd28a55df0f062e2c1628266008434c32ddc7adf" @@ -6702,6 +6903,11 @@ esbuild-freebsd-arm64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + esbuild-linux-32@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz#41eb0b9b49b3430b9cc4577f1ad3d414ef70f806" @@ -6712,6 +6918,11 @@ esbuild-linux-32@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + esbuild-linux-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz#b2fb0c7d49b7a579b2de26fbf4c7afb1835f2073" @@ -6722,6 +6933,11 @@ esbuild-linux-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + esbuild-linux-arm64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz#78fed3745b20251fc3bdc8db35ea0781e9b0e7c6" @@ -6732,6 +6948,11 @@ esbuild-linux-arm64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + esbuild-linux-arm@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz#6963f061a2b778aad7df2bfb6fa32d1904313f7f" @@ -6742,6 +6963,11 @@ esbuild-linux-arm@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + esbuild-linux-mips64le@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz#e2aed3527e551f8182c6b0fc8a045726fd98ad87" @@ -6752,6 +6978,11 @@ esbuild-linux-mips64le@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + esbuild-linux-ppc64le@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz#fa3095b24950f63408f46f34b6d9a073ed88d53f" @@ -6762,6 +6993,11 @@ esbuild-linux-ppc64le@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + esbuild-linux-riscv64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz#19c012dcc55c9d6d2a3855aa77c2c5217182cd1e" @@ -6772,6 +7008,11 @@ esbuild-linux-riscv64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + esbuild-linux-s390x@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz#aa61f64740e5b983cc3ebb4183a03df4b435a873" @@ -6782,6 +7023,11 @@ esbuild-linux-s390x@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + esbuild-netbsd-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz#dffdc104c1f2bafc42be3faa21376c0a092f5702" @@ -6792,6 +7038,11 @@ esbuild-netbsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + esbuild-openbsd-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz#e5987f8eda55ea5f6ef6258afb1a838158f890bb" @@ -6802,6 +7053,11 @@ esbuild-openbsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + esbuild-sunos-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz#60a085aa4b74d900e4de8c00a9fce207937320a2" @@ -6812,6 +7068,11 @@ esbuild-sunos-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + esbuild-windows-32@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz#24f94e5fb243d211c7db9a12985fd2880ba98ca3" @@ -6822,6 +7083,11 @@ esbuild-windows-32@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + esbuild-windows-64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz#71d24d68d8b652bf5a93a6c7453c334584fa2211" @@ -6832,6 +7098,11 @@ esbuild-windows-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + esbuild-windows-arm64@0.15.16: version "0.15.16" resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz#77e804d60dec0390fe8f21401e39b435d5d1b863" @@ -6842,6 +7113,33 @@ esbuild-windows-arm64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== +esbuild@^0.14.25: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== + optionalDependencies: + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + esbuild@^0.15.1: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" @@ -7362,6 +7660,14 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -7380,7 +7686,7 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0: +execa@^5, execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -7410,6 +7716,17 @@ execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +execcli@^5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/execcli/-/execcli-5.0.6.tgz#e46cd121743663e46254037fc1112b176b7462df" + integrity sha512-du+uy/Ew2P90PKjSHI89u/XuqVaBDzvaJ6ePn40JaOy7owFQNsYDbd5AoR5A559HEAb1i5HO22rJxtgVonf5Bg== + dependencies: + argx "^4.0.0" + arrayreduce "^2.1.0" + findout "^3.0.2" + hasbin "^1.2.3" + stringcase "^4.3.0" + executable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" @@ -7469,6 +7786,13 @@ expect@^29.3.1: jest-message-util "^29.3.1" jest-util "^29.3.1" +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -7476,7 +7800,7 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend@^3.0.0, extend@~3.0.2: +extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -7723,6 +8047,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -7741,6 +8072,11 @@ find-versions@^1.0.0: meow "^3.5.0" semver-regex "^1.0.0" +findout@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/findout/-/findout-3.0.2.tgz#02ca7b8eb07b5ccaf3df9255a781b209c86ef5ec" + integrity sha512-eatRX+s8jm8ml/S9Y5NBBjR4W8i7IeEmyddB3Lidak/nPZNfDxGzLEIaMKgeNj5/LHA1i0dC4Gwsb13H1bx+AA== + findup-sync@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" @@ -7969,7 +8305,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -8096,6 +8432,19 @@ git-url-parse@^11.4.4: dependencies: git-up "^4.0.0" +gitconfig@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/gitconfig/-/gitconfig-2.0.8.tgz#01b01063eac040c8c339aceb62ebfa903b37336d" + integrity sha512-qOB1QswIHFNKAOPN0pEu7U1iyajLBv3Tz5X630UlkAtKM904I4dO7XIjH84wmR2SUVAgaVR99UC9U4ABJujAJQ== + dependencies: + argx "^3.0.0" + arrayreduce "^2.1.0" + askconfig "^4.0.2" + co "^4.6.0" + execcli "^5.0.2" + lodash.get "^4.4.2" + objnest "^5.0.3" + gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -8195,7 +8544,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.2.3, glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -8268,7 +8617,7 @@ globals@^13.15.0, globals@^13.2.0: dependencies: type-fest "^0.20.2" -globby@^11.0.2, globby@^11.0.3, globby@^11.1.0: +globby@^11, globby@^11.0.2, globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -8536,6 +8885,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasbin@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0" + integrity sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg== + dependencies: + async "~1.5" + hash-base@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" @@ -8700,6 +9056,18 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +iftype@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/iftype/-/iftype-3.0.2.tgz#5771261e64fb35a680d320d3668c7529f925ab74" + integrity sha512-vA/NSyCG3E7XXWC1hmbEDj8WvsduSzLblmj4m2Idywx8YC6CKqGTYzrnoxbMrC+qBcHz85P7uwBwYEY2rX1jvQ== + dependencies: + babel-runtime "^6.11.6" + +iftype@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/iftype/-/iftype-4.0.9.tgz#3803c91d518a699720cfba7a9e47c0268664f106" + integrity sha512-01Klo+04dkDzY193D1GVfOdQzmpqaYFJTAlZKRztkT/BOaU7sSnvxGimSln+7DMqLUP4tpDTNFgxqVPLYZVypA== + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -8886,7 +9254,7 @@ inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -inquirer@^7.3.3: +inquirer@^7.0.0, inquirer@^7.3.3: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -8914,6 +9282,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + into-stream@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" @@ -9224,6 +9597,11 @@ is-primitive@^2.0.0: resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q== +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" @@ -10582,6 +10960,13 @@ libnpmpublish@^4.0.0: semver "^7.1.3" ssri "^8.0.1" +license.js@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/license.js/-/license.js-3.1.2.tgz#a76f77c7a10635c8db56967af0ca5fb2f6cf7072" + integrity sha512-anbqciJ9HfQVMRicsegiZOJ6nrP93ly24alImDOO7KndNLs3Um861fSEpXpWqGPMOv7PfZTJZL1p4cPq+Au4BQ== + dependencies: + pify "^3.0.0" + lilconfig@2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" @@ -10692,6 +11077,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -10763,6 +11156,11 @@ lodash.escape@^3.0.0: dependencies: lodash._root "^3.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -10939,6 +11337,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -11086,6 +11491,20 @@ memdown@^5.0.0: version "0.1.0" resolved "https://github.com/dk1a/memmove.git#ffd71cd77b1708574ef46a667b23ca3a5cc9fa27" +memoizee@^0.4.14: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -11567,6 +11986,11 @@ netlify@^11.0.1: p-wait-for "^4.0.0" qs "^6.9.6" +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + nice-grpc-common@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/nice-grpc-common/-/nice-grpc-common-2.0.0.tgz#36c9b9cdc38d3b4aa8ad7abf120fd4737eff70ea" @@ -12022,6 +12446,15 @@ object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" +objnest@^5.0.3, objnest@^5.0.6: + version "5.1.1" + resolved "https://registry.yarnpkg.com/objnest/-/objnest-5.1.1.tgz#e1f3bc15ee87609b831434097b3f2356e26856de" + integrity sha512-C4fjNlHhUQbHiiFpgzvZse3/WUHq356Da3P8NZazg9JpPHFiQP2Y9lmYvpLU06midap0YpNz/MuA8GGSL8G0YQ== + dependencies: + "@babel/runtime" "^7.12.5" + abind "^1.0.5" + extend "^3.0.2" + obliterator@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" @@ -12172,7 +12605,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -12193,6 +12626,13 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -12582,6 +13022,13 @@ pkg-fetch@3.4.2: tar-fs "^2.1.1" yargs "^16.2.0" +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + pkg@^5.7.0: version "5.8.0" resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.8.0.tgz#a77644aeff0b94a1656d7f76558837f7c754a4c0" @@ -13177,6 +13624,13 @@ realistic-structured-clone@^3.0.0: typeson "^6.1.0" typeson-registry "^1.0.0-alpha.20" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -13198,6 +13652,11 @@ reduce-flatten@^2.0.0: resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" @@ -13297,6 +13756,11 @@ require-from-string@^2.0.0, require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -13346,7 +13810,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@>=1.9.0, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: +resolve@>=1.9.0, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -13466,6 +13930,13 @@ rollup@^2.69.0, rollup@^2.70.0: optionalDependencies: fsevents "~2.3.2" +rollup@^2.74.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + rollup@^3.2.5: version "3.6.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.6.0.tgz#2bff14b8680747fbb0228d102607d6a6e21859d7" @@ -13629,7 +14100,7 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -set-blocking@~2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== @@ -13688,6 +14159,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + shiki@^0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.11.1.tgz#df0f719e7ab592c484d8b73ec10e215a503ab8cc" @@ -13697,6 +14177,14 @@ shiki@^0.11.1: vscode-oniguruma "^1.6.1" vscode-textmate "^6.0.0" +shx@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" + integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g== + dependencies: + minimist "^1.2.3" + shelljs "^0.8.5" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -13737,7 +14225,7 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^3.0.0: +slash@^3, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== @@ -14099,7 +14587,7 @@ string-width@^2.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: +string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -14186,6 +14674,11 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringcase@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/stringcase/-/stringcase-4.3.1.tgz#54279c9dd7379ff50f4e47d50d036b2ac888d34b" + integrity sha512-Ov7McNX1sFaEX9NWijD1hIOVDDhKdnFzN9tvoa1N8xgrclouhsO4kBPVrTPhjO/zP5mn1Ww03uZ2SThNMXS7zg== + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -14200,7 +14693,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -14629,6 +15122,14 @@ timed-out@^3.0.0: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" integrity sha512-3RB4qgvPkxF/FGPnrzaWLhW1rxNK2sdH0mFjbhxkfTR6QXvcM3EtYm9L44UrhODZrZ+yhDXeMncLqi8QXn2MJg== +timers-ext@^0.1.5, timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -14904,6 +15405,26 @@ tsort@0.0.1: resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== +tsup@^5.12.1: + version "5.12.9" + resolved "https://registry.yarnpkg.com/tsup/-/tsup-5.12.9.tgz#8cdd9b4bc6493317cb92edf5f3476920dddcdb18" + integrity sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg== + dependencies: + bundle-require "^3.0.2" + cac "^6.7.12" + chokidar "^3.5.1" + debug "^4.3.1" + esbuild "^0.14.25" + execa "^5.0.0" + globby "^11.0.3" + joycon "^3.0.1" + postcss-load-config "^3.0.1" + resolve-from "^5.0.0" + rollup "^2.74.1" + source-map "0.8.0-beta.0" + sucrase "^3.20.3" + tree-kill "^1.2.2" + tsup@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/tsup/-/tsup-6.5.0.tgz#1be97481b7a56385b7c40d01bdabb4196f3649cf" @@ -15024,6 +15545,16 @@ type-fest@^2.14.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.18.1.tgz#a94f068c60b5a2d6beccccffa711210d7dd99b38" integrity sha512-UKCINsd4qiATXD6OIlnQw9t1ux/n2ld+Nl0kzPbCONhCaUIS/BhJbNw14w6584HCQWf3frBK8vmWnGZq/sbPHQ== +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + typechain@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.1.1.tgz#9c2e8012c2c4c586536fc18402dcd7034c4ff0bd" @@ -15079,6 +15610,11 @@ typescript@^4.4.3, typescript@^4.5.5, typescript@^4.6.2, typescript@^4.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +typescript@^4.6.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + typescript@^4.8.2: version "4.8.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" @@ -15533,6 +16069,11 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -15577,6 +16118,15 @@ workerpool@6.2.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -15704,6 +16254,11 @@ xxhash-wasm@^0.4.2: resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -15729,6 +16284,14 @@ yaml@^2.1.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== +yargs-interactive@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/yargs-interactive/-/yargs-interactive-3.0.1.tgz#1c141872d60b29e924c6e7b079bdab1e953d1183" + integrity sha512-Jnp88uiuz+ZRpM10Lwvs0nRetWPog+6lcgQrhwKsyEanAe3wgTlaPPzcYlZWp53aOMTzOcR5wEpEsFOMOPmLlw== + dependencies: + inquirer "^7.0.0" + yargs "^14.0.0" + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" @@ -15739,6 +16302,14 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^15.0.1: + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^21.0.0, yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" @@ -15767,6 +16338,23 @@ yargs@16.2.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^14.0.0: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + yargs@^17.0.0, yargs@^17.5.1: version "17.5.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e"