From 77cec156ef082ba1dfd959616a528f932798fb91 Mon Sep 17 00:00:00 2001 From: Damian Date: Wed, 20 Nov 2024 19:45:14 -0300 Subject: [PATCH 1/7] Add curated extensions list as source of truth --- package.json | 1 + rollup.config.js | 3 +- src/curated-extensions.ts | 45 +++++++++++--------------- src/extensions.json | 67 +++++++++++++++++++++++++++++++++++++++ src/types.ts | 4 +++ tsconfig.json | 9 ++++-- yarn.lock | 38 ++++++++++++++++++++++ 7 files changed, 137 insertions(+), 30 deletions(-) create mode 100644 src/extensions.json diff --git a/package.json b/package.json index 2b91fff79..2638e9de1 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "license": "MIT", "devDependencies": { "@eslint/js": "^9.3.0", + "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-typescript": "11.1.0", "@types/inquirer": "9.0.3", "@types/ncp": "2.0.5", diff --git a/rollup.config.js b/rollup.config.js index e4100aaf8..3d1b507b7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,5 +1,6 @@ import typescript from "@rollup/plugin-typescript"; import autoExternal from "rollup-plugin-auto-external"; +import json from "@rollup/plugin-json"; export default { input: "src/cli.ts", @@ -8,5 +9,5 @@ export default { format: "es", sourcemap: true, }, - plugins: [autoExternal(), typescript({ exclude: ["templates/**", "externalExtensions/**"] })], + plugins: [autoExternal(), typescript({ exclude: ["templates/**", "externalExtensions/**"] }), json()], }; diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index b79df94fa..2c9efbc68 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -1,30 +1,23 @@ import { ExternalExtension } from "./types"; +import extensions from "./extensions.json"; -const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = { - subgraph: { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "subgraph", - }, - "eip-712": { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "eip-712", - }, - ponder: { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "ponder", - }, - onchainkit: { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "onchainkit", - }, - "erc-20": { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "erc-20", - }, - "eip-5792": { - repository: "https://github.com/scaffold-eth/create-eth-extensions", - branch: "eip-5792", - }, -}; +interface ExternalExtensionWithName extends ExternalExtension { + name: string; +} + +const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions.map((extension: ExternalExtensionWithName) => { + return { + [extension.name]: { + repository: extension.repository, + branch: extension.branch, + description: extension.description, + installCommand: extension.installCommand, + builder: extension.builder, + coBuilders: extension.coBuilders, + }, + }; +}).reduce((acc, extension) => { + return { ...acc, ...extension }; +}); export { CURATED_EXTENSIONS }; diff --git a/src/extensions.json b/src/extensions.json new file mode 100644 index 000000000..40c148f94 --- /dev/null +++ b/src/extensions.json @@ -0,0 +1,67 @@ +[ + { + "name": "subgraph", + "description": "This Scaffold-ETH 2 extension helps you build and test subgraphs locally for your contracts. It also enables interaction with the front-end and facilitates easy deployment to Subgraph Studio.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "subgraph", + "installCommand": "npx create-eth@latest -e subgraph", + "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", + "coBuilders": [] + }, + { + "name": "eip-712", + "description": "An implementation of EIP-712, allowing you to send, sign, and verify typed messages in a user-friendly manner.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "eip-712", + "installCommand": "npx create-eth@latest -e eip-712", + "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", + "coBuilders": [] + }, + { + "name": "ponder", + "description": "This Scaffold-ETH 2 extension comes pre-configured with ponder.sh, providing an example to help you get started quickly.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "ponder", + "installCommand": "npx create-eth@latest -e ponder", + "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", + "coBuilders": [] + }, + { + "name": "onchainkit", + "description": "This Scaffold-ETH 2 extension comes pre-configured with onchainkit, providing an example to help you get started quickly.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "onchainkit", + "installCommand": "npx create-eth@latest -e onchainkit", + "builder": "0x45334F41aAA464528CD5bc0F582acadC49Eb0Cd1", + "coBuilders": [] + }, + { + "name": "erc-20", + "description": "This extension introduces an ERC-20 token contract and demonstrates how to interact with it, including getting a holder balance and transferring tokens.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "erc-20", + "installCommand": "npx create-eth@latest -e erc-20", + "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", + "coBuilders": [ + "0x60583563D5879C2E59973E5718c7DE2147971807" + ] + }, + { + "name": "eip-5792", + "description": "This extension demonstrates on how to use EIP-5792 wallet capabilities. This EIP introduces new JSON-RPC methods for sending multiple calls from the user wallet, and checking their status", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "eip-5792", + "installCommand": "npx create-eth@latest -e eip-5792", + "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", + "coBuilders": [] + }, + { + "name": "randao", + "description": "This extension shows how to use on-chain randomness using RANDAO for truly on-chain unpredictable random sources.", + "repository": "https://github.com/scaffold-eth/create-eth-extensions", + "branch": "randao", + "installCommand": "npx create-eth@latest -e randao", + "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", + "coBuilders": [] + } +] \ No newline at end of file diff --git a/src/types.ts b/src/types.ts index cb238a988..66802f0d9 100644 --- a/src/types.ts +++ b/src/types.ts @@ -5,6 +5,10 @@ export type ExternalExtensionNameDev = string; export type ExternalExtension = { repository: string; branch?: string | null; + description: string; + installCommand: string; + builder: string; + coBuilders: string[]; }; type BaseOptions = { diff --git a/tsconfig.json b/tsconfig.json index f866fe4cb..ee04a031b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,10 @@ "esModuleInterop": true, "sourceMap": true, "skipLibCheck": true, - "moduleResolution": "node" + "moduleResolution": "node", + "resolveJsonModule": true }, - "exclude": ["node_modules"] -} + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7d12195cc..801565de0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -439,6 +439,20 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-json@npm:^6.1.0": + version: 6.1.0 + resolution: "@rollup/plugin-json@npm:6.1.0" + dependencies: + "@rollup/pluginutils": ^5.1.0 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e + languageName: node + linkType: hard + "@rollup/plugin-typescript@npm:11.1.0": version: 11.1.0 resolution: "@rollup/plugin-typescript@npm:11.1.0" @@ -474,6 +488,22 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^5.1.0": + version: 5.1.3 + resolution: "@rollup/pluginutils@npm:5.1.3" + dependencies: + "@types/estree": ^1.0.0 + estree-walker: ^2.0.2 + picomatch: ^4.0.2 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: a6e9bac8ae94da39679dae390b53b43fe7a218f8fa2bfecf86e59be4da4ba02ac004f166daf55f03506e49108399394f13edeb62cce090f8cfc967b29f4738bf + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -1281,6 +1311,7 @@ __metadata: dependencies: "@changesets/cli": ^2.26.2 "@eslint/js": ^9.3.0 + "@rollup/plugin-json": ^6.1.0 "@rollup/plugin-typescript": 11.1.0 "@types/inquirer": 9.0.3 "@types/ncp": 2.0.5 @@ -3759,6 +3790,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pify@npm:^3.0.0": version: 3.0.0 resolution: "pify@npm:3.0.0" From f0e7d6c5bfe19100ad75b2252113ebabb1086024 Mon Sep 17 00:00:00 2001 From: Damian Date: Wed, 20 Nov 2024 19:53:33 -0300 Subject: [PATCH 2/7] Fix indentation --- src/curated-extensions.ts | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index 2c9efbc68..d4afbc55f 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -5,19 +5,21 @@ interface ExternalExtensionWithName extends ExternalExtension { name: string; } -const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions.map((extension: ExternalExtensionWithName) => { - return { - [extension.name]: { - repository: extension.repository, - branch: extension.branch, - description: extension.description, - installCommand: extension.installCommand, - builder: extension.builder, - coBuilders: extension.coBuilders, - }, - }; -}).reduce((acc, extension) => { - return { ...acc, ...extension }; -}); +const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions + .map((extension: ExternalExtensionWithName) => { + return { + [extension.name]: { + repository: extension.repository, + branch: extension.branch, + description: extension.description, + installCommand: extension.installCommand, + builder: extension.builder, + coBuilders: extension.coBuilders, + }, + }; + }) + .reduce((acc, extension) => { + return { ...acc, ...extension }; + }); export { CURATED_EXTENSIONS }; From b0eab8d1251ba58ac5c0e3fab07f5ee8af70776f Mon Sep 17 00:00:00 2001 From: Damian Date: Thu, 21 Nov 2024 10:17:39 -0300 Subject: [PATCH 3/7] Remove builder, coBuilders and installCommand --- src/curated-extensions.ts | 4 ---- src/extensions.json | 37 +++++++------------------------------ src/types.ts | 4 ---- 3 files changed, 7 insertions(+), 38 deletions(-) diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index d4afbc55f..e84dbaac8 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -11,10 +11,6 @@ const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions [extension.name]: { repository: extension.repository, branch: extension.branch, - description: extension.description, - installCommand: extension.installCommand, - builder: extension.builder, - coBuilders: extension.coBuilders, }, }; }) diff --git a/src/extensions.json b/src/extensions.json index 40c148f94..311442bc1 100644 --- a/src/extensions.json +++ b/src/extensions.json @@ -3,65 +3,42 @@ "name": "subgraph", "description": "This Scaffold-ETH 2 extension helps you build and test subgraphs locally for your contracts. It also enables interaction with the front-end and facilitates easy deployment to Subgraph Studio.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "subgraph", - "installCommand": "npx create-eth@latest -e subgraph", - "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", - "coBuilders": [] + "branch": "subgraph" }, { "name": "eip-712", "description": "An implementation of EIP-712, allowing you to send, sign, and verify typed messages in a user-friendly manner.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "eip-712", - "installCommand": "npx create-eth@latest -e eip-712", - "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", - "coBuilders": [] + "branch": "eip-712" }, { "name": "ponder", "description": "This Scaffold-ETH 2 extension comes pre-configured with ponder.sh, providing an example to help you get started quickly.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "ponder", - "installCommand": "npx create-eth@latest -e ponder", - "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", - "coBuilders": [] + "branch": "ponder" }, { "name": "onchainkit", "description": "This Scaffold-ETH 2 extension comes pre-configured with onchainkit, providing an example to help you get started quickly.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "onchainkit", - "installCommand": "npx create-eth@latest -e onchainkit", - "builder": "0x45334F41aAA464528CD5bc0F582acadC49Eb0Cd1", - "coBuilders": [] + "branch": "onchainkit" }, { "name": "erc-20", "description": "This extension introduces an ERC-20 token contract and demonstrates how to interact with it, including getting a holder balance and transferring tokens.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "erc-20", - "installCommand": "npx create-eth@latest -e erc-20", - "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", - "coBuilders": [ - "0x60583563D5879C2E59973E5718c7DE2147971807" - ] + "branch": "erc-20" }, { "name": "eip-5792", "description": "This extension demonstrates on how to use EIP-5792 wallet capabilities. This EIP introduces new JSON-RPC methods for sending multiple calls from the user wallet, and checking their status", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "eip-5792", - "installCommand": "npx create-eth@latest -e eip-5792", - "builder": "0x1A2d838c4bbd1e73d162d0777d142c1d783Cb831", - "coBuilders": [] + "branch": "eip-5792" }, { "name": "randao", "description": "This extension shows how to use on-chain randomness using RANDAO for truly on-chain unpredictable random sources.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", - "branch": "randao", - "installCommand": "npx create-eth@latest -e randao", - "builder": "0x5dCb5f4F39Caa6Ca25380cfc42280330b49d3c93", - "coBuilders": [] + "branch": "randao" } ] \ No newline at end of file diff --git a/src/types.ts b/src/types.ts index 66802f0d9..cb238a988 100644 --- a/src/types.ts +++ b/src/types.ts @@ -5,10 +5,6 @@ export type ExternalExtensionNameDev = string; export type ExternalExtension = { repository: string; branch?: string | null; - description: string; - installCommand: string; - builder: string; - coBuilders: string[]; }; type BaseOptions = { From 0e8d2eb918fa346e927f64ca7502a61a61a08f0c Mon Sep 17 00:00:00 2001 From: "Shiv Bhonde | shivbhonde.eth" Date: Fri, 22 Nov 2024 17:02:50 +0530 Subject: [PATCH 4/7] up eslint packages + type check and format in pre-commit (#156) --- .github/workflows/lint.yml | 3 + lefthook.yml | 9 + package.json | 13 +- src/extensions.json | 2 +- src/utils/parse-arguments-into-options.ts | 2 +- src/utils/system-validation.ts | 2 +- tsconfig.json | 6 +- yarn.lock | 438 ++++++++++++++-------- 8 files changed, 296 insertions(+), 179 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fd961b3a1..c62bd29d1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -32,3 +32,6 @@ jobs: - name: Run lint run: yarn lint --max-warnings=0 + + - name: Run type-check + run: yarn type-check diff --git a/lefthook.yml b/lefthook.yml index dbc47b4a7..ef35c07c9 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -1,5 +1,14 @@ pre-commit: + parallel: true commands: + type-check: + glob: "src/**/*.ts" + run: yarn type-check lint: glob: "*.{js,ts,md}" run: yarn eslint --fix {staged_files} + format: + glob: "*.{js,ts,md,json}" + run: | + yarn prettier --write {staged_files} + git add {staged_files} diff --git a/package.json b/package.json index 2638e9de1..d8a0e0b0d 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "lint": "eslint .", "format": "prettier --write .", "test": "echo \"Error: no test specified\" && exit 1", + "type-check": "tsc --noEmit", "changeset:release": "yarn build && changeset publish" }, "keywords": [ @@ -32,22 +33,22 @@ ], "license": "MIT", "devDependencies": { - "@eslint/js": "^9.3.0", + "@eslint/js": "^9.15.0", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-typescript": "11.1.0", "@types/inquirer": "9.0.3", "@types/ncp": "2.0.5", "@types/node": "18.16.0", - "eslint": "^9.3.0", + "eslint": "^9.15.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-prettier": "^5.2.1", "lefthook": "^1.6.16", - "prettier": "3.3.2", + "prettier": "^3.3.3", "rollup": "3.21.0", "rollup-plugin-auto-external": "2.0.0", "tslib": "2.5.0", - "typescript": "5.0.4", - "typescript-eslint": "^7.10.0" + "typescript": "^5.6.3", + "typescript-eslint": "^8.15.0" }, "dependencies": { "@changesets/cli": "^2.26.2", diff --git a/src/extensions.json b/src/extensions.json index 311442bc1..f91bbc731 100644 --- a/src/extensions.json +++ b/src/extensions.json @@ -41,4 +41,4 @@ "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "randao" } -] \ No newline at end of file +] diff --git a/src/utils/parse-arguments-into-options.ts b/src/utils/parse-arguments-into-options.ts index 4dc9c8454..aaabaef1d 100644 --- a/src/utils/parse-arguments-into-options.ts +++ b/src/utils/parse-arguments-into-options.ts @@ -117,7 +117,7 @@ export async function parseArgumentsIntoOptions( // if lengh is 1, we don't give user a choice and set it ourselves. const solidityFramework = - solidityFrameworkChoices.length === 1 ? solidityFrameworkChoices[0] : args["--solidity-framework"] ?? null; + solidityFrameworkChoices.length === 1 ? solidityFrameworkChoices[0] : (args["--solidity-framework"] ?? null); if (solidityFramework === SOLIDITY_FRAMEWORKS.FOUNDRY) { await validateFoundryUp(); diff --git a/src/utils/system-validation.ts b/src/utils/system-validation.ts index a755a93b4..95dc10eb5 100644 --- a/src/utils/system-validation.ts +++ b/src/utils/system-validation.ts @@ -4,7 +4,7 @@ import { execa } from "execa"; export const validateFoundryUp = async () => { try { await execa("foundryup", ["-h"]); - } catch (error) { + } catch { const message = ` ${chalk.bold.yellow("Attention: Foundryup is not installed in your system.")} ${chalk.bold.yellow("To use foundry, please install foundryup")} ${chalk.bold.yellow("Checkout: https://getfoundry.sh")} diff --git a/tsconfig.json b/tsconfig.json index ee04a031b..7731a4f2b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,5 @@ "moduleResolution": "node", "resolveJsonModule": true }, - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "exclude": ["node_modules", "templates", "externalExtensions", "**/*.test.ts"] +} diff --git a/yarn.lock b/yarn.lock index 801565de0..6155ceba7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -289,16 +289,41 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.1.0": - version: 3.1.0 - resolution: "@eslint/eslintrc@npm:3.1.0" +"@eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.19.0": + version: 0.19.0 + resolution: "@eslint/config-array@npm:0.19.0" + dependencies: + "@eslint/object-schema": ^2.1.4 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: ceeddd3733316cbc7f1e61fc2906fedeaefdf1b3cf363726714dea0e9dece378a2b233cb6429d7d87534707a1dd2e5efb0197749553834ee30aee817820a71aa + languageName: node + linkType: hard + +"@eslint/core@npm:^0.9.0": + version: 0.9.0 + resolution: "@eslint/core@npm:0.9.0" + checksum: ea8ded3eba82d9451eca7e989c4ebf1dca95bc705e70cd2f3e55cc576e851183778344632de410d8cd9f85e862fd88fb8fda510aad00698765aec3110533af82 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -309,14 +334,30 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4 + checksum: c898e4d12f4c9a79a61ee3c91e38eea5627a04e021cb749191e8537445858bfe32f810eca0cb2dc9902b8ad8b65ca07ef7221dc4bad52afe60cbbf50ec56c236 languageName: node linkType: hard -"@eslint/js@npm:9.3.0, @eslint/js@npm:^9.3.0": - version: 9.3.0 - resolution: "@eslint/js@npm:9.3.0" - checksum: 5af317c8bcfef660efc17624b825c71bac16770f8866bfdc2922e1fcc2010af96e4f896e91724b81550e5dba6db6983c221b5be9a1294c9e727dee9ada15c9f8 +"@eslint/js@npm:9.15.0, @eslint/js@npm:^9.15.0": + version: 9.15.0 + resolution: "@eslint/js@npm:9.15.0" + checksum: 8b2aa35b62c1969c5e3aa5e33b4e072cc450b95ee9bc08b5a84aa5cbed10a01a9a8f0463b8bb3768ceeb5abfaa82abfb95650061338c3b467835757b62ffc4ba + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.2.3": + version: 0.2.3 + resolution: "@eslint/plugin-kit@npm:0.2.3" + dependencies: + levn: ^0.4.1 + checksum: b93b9c3f5b1722d09cc4e609abd4510130f659f70f6417b68ac7c4ad9fbf9e3d4f0ef5b6f2bad106eb8c1c1b2146bd0391e0a1c00ddeae46c917f175b8c0da4b languageName: node linkType: hard @@ -327,14 +368,20 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanwhocodes/object-schema": ^2.0.3 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 + "@humanfs/core": ^0.19.1 + "@humanwhocodes/retry": ^0.3.0 + checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 languageName: node linkType: hard @@ -345,13 +392,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 - languageName: node - linkType: hard - "@humanwhocodes/retry@npm:^0.3.0": version: 0.3.0 resolution: "@humanwhocodes/retry@npm:0.3.0" @@ -359,6 +399,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: f11167c28e8266faba470fd273cbaafe2827523492bc18c5623015adb7ed66f46b2e542e3d756fed9ca614300249267814220c2f5f03a59e07fdfa64fc14ad52 + languageName: node + linkType: hard + "@manypkg/find-root@npm:^1.1.0": version: 1.1.0 resolution: "@manypkg/find-root@npm:1.1.0" @@ -402,7 +449,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": +"@nodelib/fs.walk@npm:^1.2.3": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -518,6 +565,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 + languageName: node + linkType: hard + "@types/glob@npm:^7.1.1": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" @@ -547,6 +601,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + "@types/minimatch@npm:*": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" @@ -607,89 +668,89 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.10.0" +"@typescript-eslint/eslint-plugin@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.15.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.10.0 - "@typescript-eslint/type-utils": 7.10.0 - "@typescript-eslint/utils": 7.10.0 - "@typescript-eslint/visitor-keys": 7.10.0 + "@typescript-eslint/scope-manager": 8.15.0 + "@typescript-eslint/type-utils": 8.15.0 + "@typescript-eslint/utils": 8.15.0 + "@typescript-eslint/visitor-keys": 8.15.0 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 ts-api-utils: ^1.3.0 peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 8cef558bb3e5a3f97289ae1cbfc7d65e2fa2a3ff77f5c08f250162790a5df1daff03d72f2cde75b8ef0bb3216376cc8377430a911dae1e3e62f1cba646e7b5a4 + checksum: 72e9726bf99f8c8c163c59fbbdaad1654f7c9e58d669e87befe84c1d32f11b372047d853f6eba8a56f4af3fc6beab070e89e8239c633ddd7334641c11b054905 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/parser@npm:7.10.0" +"@typescript-eslint/parser@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/parser@npm:8.15.0" dependencies: - "@typescript-eslint/scope-manager": 7.10.0 - "@typescript-eslint/types": 7.10.0 - "@typescript-eslint/typescript-estree": 7.10.0 - "@typescript-eslint/visitor-keys": 7.10.0 + "@typescript-eslint/scope-manager": 8.15.0 + "@typescript-eslint/types": 8.15.0 + "@typescript-eslint/typescript-estree": 8.15.0 + "@typescript-eslint/visitor-keys": 8.15.0 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 68a30e03f77e8cb58c6f7407d6b90befaa1c97cc3fc2d6b9b43f7003441f2c4ae50b14aaf9c2cb8b2c0e99175c5d753812b9d0a43fadaf8878cde92d82d86266 + checksum: 439b87d6042c3a3bb21e185b9b658c8a0f548ca67c263494e548c4b13b7367f3490126a934ea3a441f60cde909dede03fcc2938895a85b95400cf8c8af487984 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/scope-manager@npm:7.10.0" +"@typescript-eslint/scope-manager@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/scope-manager@npm:8.15.0" dependencies: - "@typescript-eslint/types": 7.10.0 - "@typescript-eslint/visitor-keys": 7.10.0 - checksum: 27a954c4655d649007103009d77a0c68038afa81b0199c1cb9f69632e29476a9c6ace2d4eb8ace64cc47d351d6dca8f497f99a71d9e0dc5d700986db57b28a65 + "@typescript-eslint/types": 8.15.0 + "@typescript-eslint/visitor-keys": 8.15.0 + checksum: a7f89a2ee39d0abeed5f18f675e152032d968110e7bfc3c08ed71ada1d9e7fd5addb8f3c4f6871da0016c859141a6c36f16a9c0ff85d63f94740f1d182123b06 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/type-utils@npm:7.10.0" +"@typescript-eslint/type-utils@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/type-utils@npm:8.15.0" dependencies: - "@typescript-eslint/typescript-estree": 7.10.0 - "@typescript-eslint/utils": 7.10.0 + "@typescript-eslint/typescript-estree": 8.15.0 + "@typescript-eslint/utils": 8.15.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 1669e62e9f5a529ba6e93f6008d8a764cbba0605a9dc5e528a0853bf8025afe339f716ad588255c11166400c2b2e3310b8f6c630b3ce48b224f4a40c63b4d02a + checksum: 42f150749caa5d6a517ff3d68845a238c296a6ac4cdcee55bd2ed2eaf089e423bded9ee0337cd43ebaab2ed648df93670624c39555b610023e61755c16cda827 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/types@npm:7.10.0" - checksum: 9a16c86e8ace5f38281d80895844e9a4d963887e1304d335ed4e66eefe6646f24d98485f242fe9ee592e870c675dcd92683918f536dd462e26eb45fa69f5e2a5 +"@typescript-eslint/types@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/types@npm:8.15.0" + checksum: e44b3bbb928dfa56a982a74fda463338520a31696665c38714d40c2c1fe92fdc6cae4eff3d90b8d28c5d2d814e492042282959c3cbe6c01a773990daa1a64712 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.10.0" +"@typescript-eslint/typescript-estree@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.15.0" dependencies: - "@typescript-eslint/types": 7.10.0 - "@typescript-eslint/visitor-keys": 7.10.0 + "@typescript-eslint/types": 8.15.0 + "@typescript-eslint/visitor-keys": 8.15.0 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 minimatch: ^9.0.4 semver: ^7.6.0 @@ -697,31 +758,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2d63d608dcc87aa96b6d1300eeb2eb94fb68b9168b3ce0a05b8256adb132fdd9217c8358d467fad3f5ec4dea25e266d161282da4d032d66e3ab6a62d7ece568d + checksum: 4adfa103ec28ccc5ad7783f0ead2de495fb3510a8fbc8779af83908124163ed07ecfd60bca8f53cde8f88420091b5bfde953ec39461f6560d6bf35e048c94ed2 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/utils@npm:7.10.0" +"@typescript-eslint/utils@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/utils@npm:8.15.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.10.0 - "@typescript-eslint/types": 7.10.0 - "@typescript-eslint/typescript-estree": 7.10.0 + "@typescript-eslint/scope-manager": 8.15.0 + "@typescript-eslint/types": 8.15.0 + "@typescript-eslint/typescript-estree": 8.15.0 peerDependencies: - eslint: ^8.56.0 - checksum: 5d0e9d8c06e3614c5001831813eb09d222c0160f77750f65c2d7fe39318f0586b4cb665734fb4b77c4179c082e109bb0ea6b399010be3f9a2d45a2e7f276a56b + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 0101e0a09e9e31b484650f51b5bd2673e16df552d6763cea183112ceb3283da602dbeff4c6de1c17d8b5b1591114a438a489bd52f80804e4721cb6308c6bf52f languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.10.0" +"@typescript-eslint/visitor-keys@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.15.0" dependencies: - "@typescript-eslint/types": 7.10.0 - eslint-visitor-keys: ^3.4.3 - checksum: 19218120d1295a93b6ce5163f517180eb779c0c578e0f8320887a5816576c8a1497032c25d2d1b2abea345f5929e91cda2aab15aafd3c4a52d1c3aef8744d55a + "@typescript-eslint/types": 8.15.0 + eslint-visitor-keys: ^4.2.0 + checksum: 393a5ff4e796224a8950c18ac7db9bfa1ca50bed4e0d5d6f521dc0f8c65d55c6ddca5da5926f61a4af3aa51f7f0eb195e27f4b414a1daf9b0fac88d4d69cf0f3 languageName: node linkType: hard @@ -759,6 +823,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 + languageName: node + linkType: hard + "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -1310,7 +1383,7 @@ __metadata: resolution: "create-eth@workspace:." dependencies: "@changesets/cli": ^2.26.2 - "@eslint/js": ^9.3.0 + "@eslint/js": ^9.15.0 "@rollup/plugin-json": ^6.1.0 "@rollup/plugin-typescript": 11.1.0 "@types/inquirer": 9.0.3 @@ -1318,21 +1391,21 @@ __metadata: "@types/node": 18.16.0 arg: 5.0.2 chalk: 5.2.0 - eslint: ^9.3.0 + eslint: ^9.15.0 eslint-config-prettier: ^9.1.0 - eslint-plugin-prettier: ^5.1.3 + eslint-plugin-prettier: ^5.2.1 execa: 7.1.1 inquirer: 9.2.0 lefthook: ^1.6.16 listr2: ^8.2.1 merge-packages: ^0.1.6 ncp: 2.0.0 - prettier: 3.3.2 + prettier: ^3.3.3 rollup: 3.21.0 rollup-plugin-auto-external: 2.0.0 tslib: 2.5.0 - typescript: 5.0.4 - typescript-eslint: ^7.10.0 + typescript: ^5.6.3 + typescript-eslint: ^8.15.0 bin: create-eth: bin/create-dapp-se2.js languageName: unknown @@ -1349,7 +1422,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -1360,6 +1433,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + "csv-generate@npm:^3.4.3": version: 3.4.3 resolution: "csv-generate@npm:3.4.3" @@ -1672,12 +1756,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" +"eslint-plugin-prettier@npm:^5.2.1": + version: 5.2.1 + resolution: "eslint-plugin-prettier@npm:5.2.1" dependencies: prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.6 + synckit: ^0.9.1 peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" @@ -1688,21 +1772,21 @@ __metadata: optional: true eslint-config-prettier: optional: true - checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 + checksum: 812f4d1596dcd3a55963212dfbd818a4b38f880741aac75f6869aa740dc5d934060674d3b85d10ff9fec424defa61967dbdef26b8a893a92c9b51880264ed0d9 languageName: node linkType: hard -"eslint-scope@npm:^8.0.1": - version: 8.0.1 - resolution: "eslint-scope@npm:8.0.1" +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 67a5a39312dadb8c9a677df0f2e8add8daf15280b08bfe07f898d5347ee2d7cd2a1f5c2760f34e46e8f5f13f7192f47c2c10abe676bfa4173ae5539365551940 + checksum: 750eff4672ca2bf274ec0d1bbeae08aadd53c1907d5c6aff5564d8e047a5f49afa8ae6eee333cab637fd3ebcab2141659d8f2f040f6fdc982b0f61f8bf03136f languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 @@ -1716,27 +1800,38 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.3.0": - version: 9.3.0 - resolution: "eslint@npm:9.3.0" +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 + languageName: node + linkType: hard + +"eslint@npm:^9.15.0": + version: 9.15.0 + resolution: "eslint@npm:9.15.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^3.1.0 - "@eslint/js": 9.3.0 - "@humanwhocodes/config-array": ^0.13.0 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.19.0 + "@eslint/core": ^0.9.0 + "@eslint/eslintrc": ^3.2.0 + "@eslint/js": 9.15.0 + "@eslint/plugin-kit": ^0.2.3 + "@humanfs/node": ^0.16.6 "@humanwhocodes/module-importer": ^1.0.1 - "@humanwhocodes/retry": ^0.3.0 - "@nodelib/fs.walk": ^1.2.8 + "@humanwhocodes/retry": ^0.4.1 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 ajv: ^6.12.4 chalk: ^4.0.0 - cross-spawn: ^7.0.2 + cross-spawn: ^7.0.5 debug: ^4.3.2 escape-string-regexp: ^4.0.0 - eslint-scope: ^8.0.1 - eslint-visitor-keys: ^4.0.0 - espree: ^10.0.1 - esquery: ^1.4.2 + eslint-scope: ^8.2.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^8.0.0 @@ -1745,18 +1840,19 @@ __metadata: ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - is-path-inside: ^3.0.3 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: c6d1eb8b4b064470a99f0d927b0d2b88f1947d7e871761b43b84e6c9b6464db4f6ebbb868f7196a45d2589978b09919a8807d200e3b1640d0a9cd245c9504707 + checksum: 50b7e1c4cb49662a54916877d47aeded2aac0cae428c8258ec9d181160ca893681a32c69df359404bfb81a9693480896adbcd8a18fa5acafd1c933dc1030f32e languageName: node linkType: hard @@ -1771,6 +1867,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" + dependencies: + acorn: ^8.14.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^4.2.0 + checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef + languageName: node + linkType: hard + "esprima@npm:^4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -1781,12 +1888,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -1902,6 +2009,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -2247,7 +2367,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.1.0": +"globby@npm:^11.0.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -2702,13 +2822,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - "is-plain-obj@npm:2.1.0": version: 2.1.0 resolution: "is-plain-obj@npm:2.1.0" @@ -3296,7 +3409,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -3848,15 +3961,6 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.3.2": - version: 3.3.2 - resolution: "prettier@npm:3.3.2" - bin: - prettier: bin/prettier.cjs - checksum: 5557d8caed0b182f68123c2e1e370ef105251d1dd75800fadaece3d061daf96b1389141634febf776050f9d732c7ae8fd444ff0b4a61b20535e7610552f32c69 - languageName: node - linkType: hard - "prettier@npm:^2.7.1": version: 2.8.8 resolution: "prettier@npm:2.8.8" @@ -3866,6 +3970,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" + bin: + prettier: bin/prettier.cjs + checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -4620,13 +4733,13 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" +"synckit@npm:^0.9.1": + version: 0.9.2 + resolution: "synckit@npm:0.9.2" dependencies: "@pkgr/core": ^0.1.0 tslib: ^2.6.2 - checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + checksum: 3a30e828efbdcf3b50fccab4da6e90ea7ca24d8c5c2ad3ffe98e07d7c492df121e0f75227c6e510f96f976aae76f1fa4710cb7b1d69db881caf66ef9de89360e languageName: node linkType: hard @@ -4651,13 +4764,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - "through@npm:^2.3.6": version: 2.3.8 resolution: "through@npm:2.3.8" @@ -4814,39 +4920,39 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^7.10.0": - version: 7.10.0 - resolution: "typescript-eslint@npm:7.10.0" +"typescript-eslint@npm:^8.15.0": + version: 8.15.0 + resolution: "typescript-eslint@npm:8.15.0" dependencies: - "@typescript-eslint/eslint-plugin": 7.10.0 - "@typescript-eslint/parser": 7.10.0 - "@typescript-eslint/utils": 7.10.0 + "@typescript-eslint/eslint-plugin": 8.15.0 + "@typescript-eslint/parser": 8.15.0 + "@typescript-eslint/utils": 8.15.0 peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: dfb94e89bc4e4117244509e212c719ff880331737ec682b47f63fa595627e695ed3d1d0121ccda70dc84a3bfed599655bf1cf26ada7620b30c970801c4526832 + checksum: f3e036e372e25ec4374203a399b6ef61158c2d92e92e43744ee5a7b1ed85e7739d0165fe4caec9576f1db459891c5399f1d23eea4c5e73b0947381a1e8946a90 languageName: node linkType: hard -"typescript@npm:5.0.4": - version: 5.0.4 - resolution: "typescript@npm:5.0.4" +"typescript@npm:^5.6.3": + version: 5.6.3 + resolution: "typescript@npm:5.6.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172 + checksum: ba302f8822777ebefb28b554105f3e074466b671e7444ec6b75dadc008a62f46f373d9e57ceced1c433756d06c8b7dc569a7eefdf3a9573122a49205ff99021a languageName: node linkType: hard -"typescript@patch:typescript@5.0.4#~builtin": - version: 5.0.4 - resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82" +"typescript@patch:typescript@^5.6.3#~builtin": + version: 5.6.3 + resolution: "typescript@patch:typescript@npm%3A5.6.3#~builtin::version=5.6.3&hash=85af82" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 + checksum: ade87bce2363ee963eed0e4ca8a312ea02c81873ebd53609bc3f6dc0a57f6e61ad7e3fb8cbb7f7ab8b5081cbee801b023f7c4823ee70b1c447eae050e6c7622b languageName: node linkType: hard From 89f44cc611c4dc64f66d8d57392100a553feab4f Mon Sep 17 00:00:00 2001 From: Damian Date: Fri, 22 Nov 2024 10:33:27 -0300 Subject: [PATCH 5/7] Removed name from extensions.json --- src/extensions.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/extensions.json b/src/extensions.json index f91bbc731..04fb70760 100644 --- a/src/extensions.json +++ b/src/extensions.json @@ -1,44 +1,37 @@ [ { - "name": "subgraph", "description": "This Scaffold-ETH 2 extension helps you build and test subgraphs locally for your contracts. It also enables interaction with the front-end and facilitates easy deployment to Subgraph Studio.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "subgraph" }, { - "name": "eip-712", "description": "An implementation of EIP-712, allowing you to send, sign, and verify typed messages in a user-friendly manner.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "eip-712" }, { - "name": "ponder", "description": "This Scaffold-ETH 2 extension comes pre-configured with ponder.sh, providing an example to help you get started quickly.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "ponder" }, { - "name": "onchainkit", "description": "This Scaffold-ETH 2 extension comes pre-configured with onchainkit, providing an example to help you get started quickly.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "onchainkit" }, { - "name": "erc-20", "description": "This extension introduces an ERC-20 token contract and demonstrates how to interact with it, including getting a holder balance and transferring tokens.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "erc-20" }, { - "name": "eip-5792", "description": "This extension demonstrates on how to use EIP-5792 wallet capabilities. This EIP introduces new JSON-RPC methods for sending multiple calls from the user wallet, and checking their status", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "eip-5792" }, { - "name": "randao", "description": "This extension shows how to use on-chain randomness using RANDAO for truly on-chain unpredictable random sources.", "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "randao" } -] +] \ No newline at end of file From b6b8b9906d5b053f07bc4bc613b7eab1062f562a Mon Sep 17 00:00:00 2001 From: Damian Date: Fri, 22 Nov 2024 10:42:20 -0300 Subject: [PATCH 6/7] Get name from branch on curated-extensions.ts --- src/curated-extensions.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index e84dbaac8..1c7273e4b 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -2,13 +2,20 @@ import { ExternalExtension } from "./types"; import extensions from "./extensions.json"; interface ExternalExtensionWithName extends ExternalExtension { - name: string; + name?: string; } const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions .map((extension: ExternalExtensionWithName) => { + let name = extension.name; + if (!name && extension.branch) { + name = extension.branch; + } + if (!name) { + throw new Error("Extension must have a name or branch"); + } return { - [extension.name]: { + [name]: { repository: extension.repository, branch: extension.branch, }, From fe162b38c0a6cfff9df1cb41ede6e9020857803f Mon Sep 17 00:00:00 2001 From: Shiv Bhonde Date: Fri, 22 Nov 2024 21:18:08 +0530 Subject: [PATCH 7/7] use branch as obj key always --- src/curated-extensions.ts | 32 ++++++++++---------------------- src/extensions.json | 2 +- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/curated-extensions.ts b/src/curated-extensions.ts index 1c7273e4b..86a822041 100644 --- a/src/curated-extensions.ts +++ b/src/curated-extensions.ts @@ -1,28 +1,16 @@ import { ExternalExtension } from "./types"; import extensions from "./extensions.json"; -interface ExternalExtensionWithName extends ExternalExtension { - name?: string; -} +const CURATED_EXTENSIONS = extensions.reduce>((acc, ext) => { + if (!ext.branch || !ext.repository || !ext.description) { + throw new Error(`Extension missing required fields: ${JSON.stringify(ext)}`); + } -const CURATED_EXTENSIONS: { [key: string]: ExternalExtension } = extensions - .map((extension: ExternalExtensionWithName) => { - let name = extension.name; - if (!name && extension.branch) { - name = extension.branch; - } - if (!name) { - throw new Error("Extension must have a name or branch"); - } - return { - [name]: { - repository: extension.repository, - branch: extension.branch, - }, - }; - }) - .reduce((acc, extension) => { - return { ...acc, ...extension }; - }); + acc[ext.branch] = { + repository: ext.repository, + branch: ext.branch, + }; + return acc; +}, {}); export { CURATED_EXTENSIONS }; diff --git a/src/extensions.json b/src/extensions.json index 04fb70760..018f03007 100644 --- a/src/extensions.json +++ b/src/extensions.json @@ -34,4 +34,4 @@ "repository": "https://github.com/scaffold-eth/create-eth-extensions", "branch": "randao" } -] \ No newline at end of file +]