@account-kit/plugingen 4.34.1 → 4.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/commands/generate/index.js.map +1 -1
- package/dist/esm/commands/generate/phases/contract-abi-gen.js.map +1 -1
- package/dist/esm/commands/generate/phases/contract-addresses-gen.js.map +1 -1
- package/dist/esm/commands/generate/phases/execution-abi-gen.js.map +1 -1
- package/dist/esm/commands/generate/phases/plugin-actions/index.js.map +1 -1
- package/dist/esm/commands/generate/phases/plugin-actions/management-actions.js.map +1 -1
- package/dist/esm/commands/generate/phases/plugin-actions/read-actions.js.map +1 -1
- package/dist/esm/commands/generate/phases/plugin-generator/index.js.map +1 -1
- package/dist/esm/commands/generate/types.js.map +1 -1
- package/dist/esm/commands/generate/utils.js.map +1 -1
- package/dist/esm/commands/init.js.map +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/errors.d.ts +2 -2
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/utils/isUsingTypescript.js.map +1 -1
- package/dist/esm/utils/loadEnv.js.map +1 -1
- package/dist/esm/utils/resolveConfig.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/commands/generate/utils.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/errors.d.ts +2 -2
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +5 -7
- package/src/cli.ts +1 -1
- package/src/commands/generate/index.ts +5 -5
- package/src/commands/generate/phases/contract-abi-gen.ts +2 -2
- package/src/commands/generate/phases/contract-addresses-gen.ts +2 -2
- package/src/commands/generate/phases/execution-abi-gen.ts +3 -3
- package/src/commands/generate/phases/plugin-actions/index.ts +9 -9
- package/src/commands/generate/phases/plugin-actions/management-actions.ts +8 -8
- package/src/commands/generate/phases/plugin-actions/read-actions.ts +4 -4
- package/src/commands/generate/phases/plugin-generator/index.ts +2 -2
- package/src/commands/generate/types.ts +1 -1
- package/src/commands/generate/utils.ts +2 -2
- package/src/commands/init.ts +2 -2
- package/src/config.ts +2 -2
- package/src/errors.ts +6 -6
- package/src/utils/isUsingTypescript.ts +1 -1
- package/src/utils/loadEnv.ts +5 -5
- package/src/utils/resolveConfig.ts +1 -1
- package/src/version.ts +1 -1
package/dist/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAwB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAoB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAE7B,GAAG;KACA,OAAO,CAAC,MAAM,EAAE,mCAAmC,CAAC;KACpD,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC;KACjC,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzD,GAAG;KACA,OAAO,CACN,UAAU,EACV,6EAA6E,CAC9E;KACA,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,WAAW,CAAC;KACrC,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjE,GAAG,CAAC,IAAI,EAAE,CAAC;AACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAErB,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACH,yCAAyC;QACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;oBAAE,GAAG,CAAC,UAAU,EAAE,CAAC;YAClE,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { cac } from \"cac\";\nimport { generate, type GenerateOptions } from \"./commands/generate/index.js\";\nimport { init, type InitOptions } from \"./commands/init.js\";\nimport * as logger from \"./logger.js\";\nimport { VERSION } from \"./version.js\";\n\nconst cli = cac(\"plugingen\");\n\ncli\n .command(\"init\", \"Initialize a new plugingen config\")\n .option(\"-c, --config <path>\", \"[string] path to config file\")\n .option(\"-r, --root <path>\", \"[string] root path to resolve config from\")\n .example((name) => `${name} init`)\n .action(async (options: InitOptions) => init(options));\n\ncli\n .command(\n \"generate\",\n \"Generate code for all of the plugins configured within the plugingen config\"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAwB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAoB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAE7B,GAAG;KACA,OAAO,CAAC,MAAM,EAAE,mCAAmC,CAAC;KACpD,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC;KACjC,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzD,GAAG;KACA,OAAO,CACN,UAAU,EACV,6EAA6E,CAC9E;KACA,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,WAAW,CAAC;KACrC,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjE,GAAG,CAAC,IAAI,EAAE,CAAC;AACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAErB,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACH,yCAAyC;QACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;oBAAE,GAAG,CAAC,UAAU,EAAE,CAAC;YAClE,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { cac } from \"cac\";\nimport { generate, type GenerateOptions } from \"./commands/generate/index.js\";\nimport { init, type InitOptions } from \"./commands/init.js\";\nimport * as logger from \"./logger.js\";\nimport { VERSION } from \"./version.js\";\n\nconst cli = cac(\"plugingen\");\n\ncli\n .command(\"init\", \"Initialize a new plugingen config\")\n .option(\"-c, --config <path>\", \"[string] path to config file\")\n .option(\"-r, --root <path>\", \"[string] root path to resolve config from\")\n .example((name) => `${name} init`)\n .action(async (options: InitOptions) => init(options));\n\ncli\n .command(\n \"generate\",\n \"Generate code for all of the plugins configured within the plugingen config\",\n )\n .option(\"-c, --config <path>\", \"[string] path to config file\")\n .option(\"-r, --root <path>\", \"[string] root path to resolve config from\")\n .example((name) => `${name} generate`)\n .action(async (options: GenerateOptions) => generate(options));\n\ncli.help();\ncli.version(VERSION);\n\nvoid (async () => {\n try {\n // Parse CLI args without running command\n cli.parse(process.argv, { run: false });\n if (!cli.matchedCommand) {\n if (cli.args.length === 0) {\n if (!cli.options.help && !cli.options.version) cli.outputHelp();\n } else throw new Error(`Unknown command: ${cli.args.join(\" \")}`);\n }\n await cli.runMatchedCommand();\n } catch (error) {\n logger.error(`\\n${(error as Error).message}`);\n process.exit(1);\n }\n})();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { asyncPipe } from \"@aa-sdk/core\";\nimport { kebabCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport { default as fs } from \"fs-extra\";\nimport { basename, dirname, resolve } from \"pathe\";\nimport pc from \"picocolors\";\nimport {\n createPublicClient,\n getContract,\n http,\n type GetContractReturnType,\n type PublicClient,\n} from \"viem\";\nimport z from \"zod\";\nimport type { Config, PluginConfig } from \"../../config.js\";\nimport { IPluginAbi } from \"../../IPlugin.js\";\nimport * as logger from \"../../logger.js\";\nimport { findConfig } from \"../../utils/findConfig.js\";\nimport { format } from \"../../utils/format.js\";\nimport { getIsUsingTypeScript } from \"../../utils/isUsingTypescript.js\";\nimport { resolveConfig } from \"../../utils/resolveConfig.js\";\nimport { ContractAbiGenPhase } from \"./phases/contract-abi-gen.js\";\nimport { ContractAddressesGenPhase } from \"./phases/contract-addresses-gen.js\";\nimport { ExecutionAbiGenPhase } from \"./phases/execution-abi-gen.js\";\nimport { PluginActionsGenPhase } from \"./phases/plugin-actions/index.js\";\nimport { PluginGeneratorPhase } from \"./phases/plugin-generator/index.js\";\nimport type { Phase, PhaseInput } from \"./types.js\";\n\nconst GenerateSchema = z.object({\n /** Path to config file */\n config: z.string().optional(),\n /** Directory to search for config file */\n root: z.string().optional(),\n});\n\nexport type GenerateOptions = z.infer<typeof GenerateSchema>;\n\nexport async function generate(options: GenerateOptions = {}) {\n try {\n options = await GenerateSchema.parseAsync(options);\n } catch (error) {\n if (error instanceof z.ZodError) throw error;\n throw error;\n }\n\n // Get cli config file\n const configPath = await findConfig(options);\n if (!configPath) {\n if (options.config) {\n throw new Error(`Config not found at ${pc.gray(options.config)}`);\n }\n\n throw new Error(\"Config not found\");\n }\n\n const resolvedConfigs = await resolveConfig({ configPath });\n // TODO: need to use this in the phases below and add support for JS within the generated code\n // To support that we will likely need to:\n // 1. generate a types.ts file instead of appending the types to the top of the generated code\n // 2. in generated plugin.(ts|js) files we will either import the types or use the type reference comment\n // 3. in generated plugin files we need to check if TS when specifying the types of methods\n const isTypeScript = await getIsUsingTypeScript();\n if (!isTypeScript) {\n throw new Error(\"Only typescript is supported at the moment.\");\n }\n\n const outNames = new Set<string>();\n const isArrayConfig = Array.isArray(resolvedConfigs);\n const configs = isArrayConfig ? resolvedConfigs : [resolvedConfigs];\n\n for (const config of configs) {\n if (isArrayConfig)\n logger.log(`Using config ${pc.gray(basename(configPath))}`);\n\n // group configs by out dir\n if (!config.outDir) throw new Error(\"outDir is required.\");\n if (outNames.has(config.outDir))\n throw new Error(`outDir \"${config.outDir}\" must be unique.`);\n outNames.add(config.outDir);\n const spinner = logger.spinner();\n const pluginConfigs = config.plugins;\n\n // Get contracts from config\n spinner.start(\"Resolving plugin contracts\");\n if (!pluginConfigs || !pluginConfigs.length) {\n logger.warn(\"no plugins found in config\");\n spinner.fail();\n return;\n }\n\n // TODO: check that plugins are unique\n const plugins = pluginConfigs.map((plugin) => {\n const chain = plugin.chain ?? config.chain;\n const transport = http(plugin.rpcUrl ?? config.rpcUrl);\n\n const client = createPublicClient({\n chain,\n transport,\n });\n\n if (!(chain.id in plugin.addresses)) {\n spinner.fail();\n throw new Error(\n `contract address missing for the reference chain ${chain.id}`\n );\n }\n\n return {\n contract: getContract({\n address: plugin.addresses[chain.id],\n abi: IPluginAbi,\n client,\n }),\n pluginConfig: plugin,\n };\n });\n spinner.succeed();\n\n // Generate plugin files\n await Promise.all(\n plugins.map((plugin) =>\n generatePlugin({\n pluginConfig: plugin.pluginConfig,\n contract: plugin.contract,\n config,\n })\n )\n );\n }\n}\n\n// Add more phases here if needed\nconst phases: Phase[] = [\n ContractAddressesGenPhase,\n PluginGeneratorPhase,\n PluginActionsGenPhase,\n ExecutionAbiGenPhase,\n ContractAbiGenPhase,\n];\n\nconst generatePlugin = async ({\n pluginConfig,\n contract,\n config,\n}: {\n pluginConfig: PluginConfig;\n contract: GetContractReturnType<typeof IPluginAbi, PublicClient>;\n config: Config;\n}) => {\n const spinner = logger.spinner();\n spinner.start(`Generating plugin ${pc.gray(pluginConfig.name)}`);\n // Setup plugin generator\n const imports: Map<\n string,\n {\n types: Set<string>;\n members: Set<string>;\n }\n > = new Map();\n const addImport: PhaseInput[\"addImport\"] = (moduleName, member) => {\n if (!imports.has(moduleName)) {\n imports.set(moduleName, {\n types: new Set(),\n members: new Set(),\n });\n }\n\n const module = imports.get(moduleName)!;\n if (member.isType) {\n module.types.add(member.name);\n } else {\n module.members.add(member.name);\n }\n };\n const content: string[] = [];\n const types: Map<string, { definition: string; isPublic: boolean }> =\n new Map();\n const addType: PhaseInput[\"addType\"] = (typeName, typeDef, isPublic) => {\n if (types.has(typeName)) {\n throw new Error(`Type ${typeName} already exists`);\n }\n\n types.set(typeName, {\n definition: typeDef.replace(\";\", \"\"),\n isPublic: isPublic ?? false,\n });\n };\n\n // TODO: we need to handle the case where this isn't typescript because right now we generate types in here\n const result = await asyncPipe(...phases)({\n addImport,\n addType,\n content,\n config,\n contract,\n pluginConfig,\n });\n\n // Aggregate Result of phase\n const finalContent = dedent`\n ${Array.from(types.entries())\n .map(\n ([name, type]) =>\n `${type.isPublic ? \"export\" : \"\"} type ${name} = ${type.definition};`\n )\n .join(\"\\n\\n\")}\n\n ${result.content.join(\"\\n\\n\")}\n`;\n\n const finalImports = Array.from(imports.entries())\n .map(([moduleName, { members, types }]) => {\n return dedent`\n import { ${Array.from(members.values()).join(\",\")} ${\n members.size > 0 ? \",\" : \"\"\n } ${Array.from(types.values())\n .map((x) => `type ${x}`)\n .join(\",\")} } from \"${moduleName}\";\n `;\n })\n .join(\"\\n\");\n spinner.succeed();\n await writePlugin({\n config,\n content: finalContent,\n imports: finalImports,\n pluginConfig,\n });\n};\n\nconst writePlugin = async ({\n config,\n content,\n imports,\n pluginConfig,\n}: {\n pluginConfig: PluginConfig;\n config: Config;\n content: string;\n imports: string;\n}) => {\n const isTypeScript = await getIsUsingTypeScript();\n\n const pluginRegEx: RegExp = /[pP]lugin/g;\n // TODO: because we are now generating these ourselves, we have a lot more flexibility\n // We could:\n // 1. generate a types.ts file containing the type defs intead of merging them with content\n // 2. generate an extensions.ts file which doesn't get overwritten on each generation\n // 3. generate an index.ts file which correctly exports all of the types + exports the output of extensions.ts\n // so that it's easier to extend and import without conflicts\n const pluginPath = `${config.outDir}/${kebabCase(\n pluginConfig.name.replaceAll(pluginRegEx, \"\")\n )}/plugin.${isTypeScript ? \"ts\" : \"js\"}`;\n\n const code = dedent`\n ${imports}\n\n ${content}\n`;\n\n const spinner = logger.spinner();\n spinner.start(`Writing plugin to ${pc.gray(pluginPath)}`);\n // Format and write output\n const cwd = process.cwd();\n const outPath = resolve(cwd, pluginPath);\n await fs.ensureDir(dirname(outPath));\n const formatted = await format(code);\n await fs.writeFile(outPath, formatted);\n spinner.succeed();\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/generate/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { asyncPipe } from \"@aa-sdk/core\";\nimport { kebabCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport { default as fs } from \"fs-extra\";\nimport { basename, dirname, resolve } from \"pathe\";\nimport pc from \"picocolors\";\nimport {\n createPublicClient,\n getContract,\n http,\n type GetContractReturnType,\n type PublicClient,\n} from \"viem\";\nimport z from \"zod\";\nimport type { Config, PluginConfig } from \"../../config.js\";\nimport { IPluginAbi } from \"../../IPlugin.js\";\nimport * as logger from \"../../logger.js\";\nimport { findConfig } from \"../../utils/findConfig.js\";\nimport { format } from \"../../utils/format.js\";\nimport { getIsUsingTypeScript } from \"../../utils/isUsingTypescript.js\";\nimport { resolveConfig } from \"../../utils/resolveConfig.js\";\nimport { ContractAbiGenPhase } from \"./phases/contract-abi-gen.js\";\nimport { ContractAddressesGenPhase } from \"./phases/contract-addresses-gen.js\";\nimport { ExecutionAbiGenPhase } from \"./phases/execution-abi-gen.js\";\nimport { PluginActionsGenPhase } from \"./phases/plugin-actions/index.js\";\nimport { PluginGeneratorPhase } from \"./phases/plugin-generator/index.js\";\nimport type { Phase, PhaseInput } from \"./types.js\";\n\nconst GenerateSchema = z.object({\n /** Path to config file */\n config: z.string().optional(),\n /** Directory to search for config file */\n root: z.string().optional(),\n});\n\nexport type GenerateOptions = z.infer<typeof GenerateSchema>;\n\nexport async function generate(options: GenerateOptions = {}) {\n try {\n options = await GenerateSchema.parseAsync(options);\n } catch (error) {\n if (error instanceof z.ZodError) throw error;\n throw error;\n }\n\n // Get cli config file\n const configPath = await findConfig(options);\n if (!configPath) {\n if (options.config) {\n throw new Error(`Config not found at ${pc.gray(options.config)}`);\n }\n\n throw new Error(\"Config not found\");\n }\n\n const resolvedConfigs = await resolveConfig({ configPath });\n // TODO: need to use this in the phases below and add support for JS within the generated code\n // To support that we will likely need to:\n // 1. generate a types.ts file instead of appending the types to the top of the generated code\n // 2. in generated plugin.(ts|js) files we will either import the types or use the type reference comment\n // 3. in generated plugin files we need to check if TS when specifying the types of methods\n const isTypeScript = await getIsUsingTypeScript();\n if (!isTypeScript) {\n throw new Error(\"Only typescript is supported at the moment.\");\n }\n\n const outNames = new Set<string>();\n const isArrayConfig = Array.isArray(resolvedConfigs);\n const configs = isArrayConfig ? resolvedConfigs : [resolvedConfigs];\n\n for (const config of configs) {\n if (isArrayConfig)\n logger.log(`Using config ${pc.gray(basename(configPath))}`);\n\n // group configs by out dir\n if (!config.outDir) throw new Error(\"outDir is required.\");\n if (outNames.has(config.outDir))\n throw new Error(`outDir \"${config.outDir}\" must be unique.`);\n outNames.add(config.outDir);\n const spinner = logger.spinner();\n const pluginConfigs = config.plugins;\n\n // Get contracts from config\n spinner.start(\"Resolving plugin contracts\");\n if (!pluginConfigs || !pluginConfigs.length) {\n logger.warn(\"no plugins found in config\");\n spinner.fail();\n return;\n }\n\n // TODO: check that plugins are unique\n const plugins = pluginConfigs.map((plugin) => {\n const chain = plugin.chain ?? config.chain;\n const transport = http(plugin.rpcUrl ?? config.rpcUrl);\n\n const client = createPublicClient({\n chain,\n transport,\n });\n\n if (!(chain.id in plugin.addresses)) {\n spinner.fail();\n throw new Error(\n `contract address missing for the reference chain ${chain.id}`,\n );\n }\n\n return {\n contract: getContract({\n address: plugin.addresses[chain.id],\n abi: IPluginAbi,\n client,\n }),\n pluginConfig: plugin,\n };\n });\n spinner.succeed();\n\n // Generate plugin files\n await Promise.all(\n plugins.map((plugin) =>\n generatePlugin({\n pluginConfig: plugin.pluginConfig,\n contract: plugin.contract,\n config,\n }),\n ),\n );\n }\n}\n\n// Add more phases here if needed\nconst phases: Phase[] = [\n ContractAddressesGenPhase,\n PluginGeneratorPhase,\n PluginActionsGenPhase,\n ExecutionAbiGenPhase,\n ContractAbiGenPhase,\n];\n\nconst generatePlugin = async ({\n pluginConfig,\n contract,\n config,\n}: {\n pluginConfig: PluginConfig;\n contract: GetContractReturnType<typeof IPluginAbi, PublicClient>;\n config: Config;\n}) => {\n const spinner = logger.spinner();\n spinner.start(`Generating plugin ${pc.gray(pluginConfig.name)}`);\n // Setup plugin generator\n const imports: Map<\n string,\n {\n types: Set<string>;\n members: Set<string>;\n }\n > = new Map();\n const addImport: PhaseInput[\"addImport\"] = (moduleName, member) => {\n if (!imports.has(moduleName)) {\n imports.set(moduleName, {\n types: new Set(),\n members: new Set(),\n });\n }\n\n const module = imports.get(moduleName)!;\n if (member.isType) {\n module.types.add(member.name);\n } else {\n module.members.add(member.name);\n }\n };\n const content: string[] = [];\n const types: Map<string, { definition: string; isPublic: boolean }> =\n new Map();\n const addType: PhaseInput[\"addType\"] = (typeName, typeDef, isPublic) => {\n if (types.has(typeName)) {\n throw new Error(`Type ${typeName} already exists`);\n }\n\n types.set(typeName, {\n definition: typeDef.replace(\";\", \"\"),\n isPublic: isPublic ?? false,\n });\n };\n\n // TODO: we need to handle the case where this isn't typescript because right now we generate types in here\n const result = await asyncPipe(...phases)({\n addImport,\n addType,\n content,\n config,\n contract,\n pluginConfig,\n });\n\n // Aggregate Result of phase\n const finalContent = dedent`\n ${Array.from(types.entries())\n .map(\n ([name, type]) =>\n `${type.isPublic ? \"export\" : \"\"} type ${name} = ${type.definition};`,\n )\n .join(\"\\n\\n\")}\n\n ${result.content.join(\"\\n\\n\")}\n`;\n\n const finalImports = Array.from(imports.entries())\n .map(([moduleName, { members, types }]) => {\n return dedent`\n import { ${Array.from(members.values()).join(\",\")} ${\n members.size > 0 ? \",\" : \"\"\n } ${Array.from(types.values())\n .map((x) => `type ${x}`)\n .join(\",\")} } from \"${moduleName}\";\n `;\n })\n .join(\"\\n\");\n spinner.succeed();\n await writePlugin({\n config,\n content: finalContent,\n imports: finalImports,\n pluginConfig,\n });\n};\n\nconst writePlugin = async ({\n config,\n content,\n imports,\n pluginConfig,\n}: {\n pluginConfig: PluginConfig;\n config: Config;\n content: string;\n imports: string;\n}) => {\n const isTypeScript = await getIsUsingTypeScript();\n\n const pluginRegEx: RegExp = /[pP]lugin/g;\n // TODO: because we are now generating these ourselves, we have a lot more flexibility\n // We could:\n // 1. generate a types.ts file containing the type defs intead of merging them with content\n // 2. generate an extensions.ts file which doesn't get overwritten on each generation\n // 3. generate an index.ts file which correctly exports all of the types + exports the output of extensions.ts\n // so that it's easier to extend and import without conflicts\n const pluginPath = `${config.outDir}/${kebabCase(\n pluginConfig.name.replaceAll(pluginRegEx, \"\"),\n )}/plugin.${isTypeScript ? \"ts\" : \"js\"}`;\n\n const code = dedent`\n ${imports}\n\n ${content}\n`;\n\n const spinner = logger.spinner();\n spinner.start(`Writing plugin to ${pc.gray(pluginPath)}`);\n // Format and write output\n const cwd = process.cwd();\n const outPath = resolve(cwd, pluginPath);\n await fs.ensureDir(dirname(outPath));\n const formatted = await format(code);\n await fs.writeFile(outPath, formatted);\n spinner.succeed();\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-abi-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/contract-abi-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,CAAC,MAAM,mBAAmB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACxD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACF,YAAY,CAAC,IAAI,SAAS,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"contract-abi-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/contract-abi-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,CAAC,MAAM,mBAAmB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACxD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACF,YAAY,CAAC,IAAI,SAAS,IAAI,CAAC,SAAS,CACrD,YAAY,CAAC,GAAG,CACjB;GACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Phase } from \"../types\";\n\nexport const ContractAbiGenPhase: Phase = async (input) => {\n const { content, pluginConfig } = input;\n content.push(dedent`\n export const ${pluginConfig.name}Abi = ${JSON.stringify(\n pluginConfig.abi,\n )} as const;\n `);\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-addresses-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/contract-addresses-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,CAAC,MAAM,yBAAyB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IAC9D,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEnD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;yBACI,MAAM,CAAC,OAAO,CACjC,YAAY,CAAC,SAAoC,CAClD,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,OAAO,MAAM,IAAI,gBAAgB,CAAC,EACzE,EAAE,CACH;GACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Address } from \"viem\";\nimport type { Phase } from \"../types\";\n\nexport const ContractAddressesGenPhase: Phase = async (input) => {\n const { pluginConfig, content, addImport } = input;\n\n addImport(\"viem\", { name: \"Address\", isType: true });\n content.push(dedent`\n const addresses = {${Object.entries(\n pluginConfig.addresses as Record<number, Address
|
|
1
|
+
{"version":3,"file":"contract-addresses-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/contract-addresses-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,CAAC,MAAM,yBAAyB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IAC9D,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEnD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;yBACI,MAAM,CAAC,OAAO,CACjC,YAAY,CAAC,SAAoC,CAClD,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,OAAO,MAAM,IAAI,gBAAgB,CAAC,EACzE,EAAE,CACH;GACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Address } from \"viem\";\nimport type { Phase } from \"../types\";\n\nexport const ContractAddressesGenPhase: Phase = async (input) => {\n const { pluginConfig, content, addImport } = input;\n\n addImport(\"viem\", { name: \"Address\", isType: true });\n content.push(dedent`\n const addresses = {${Object.entries(\n pluginConfig.addresses as Record<number, Address>,\n ).reduce(\n (prev, [chainId, addr]) => (prev += `${chainId}: \"${addr}\" as Address, `),\n \"\",\n )}} as Record<number, Address>;\n `);\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-abi-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/execution-abi-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAElD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IACpE,MAAM,YAAY,GAAG,mBAAmB,CACtC,kBAAkB,EAClB,YAAY,CAAC,GAAG,CACjB,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACF,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"execution-abi-gen.js","sourceRoot":"","sources":["../../../../../src/commands/generate/phases/execution-abi-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAElD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IACpE,MAAM,YAAY,GAAG,mBAAmB,CACtC,kBAAkB,EAClB,YAAY,CAAC,GAAG,CACjB,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACF,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CACrE,YAAY,CACb;GACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Phase } from \"../types\";\nimport { executionAbiConst, extractExecutionAbi } from \"../utils.js\";\n\nexport const ExecutionAbiGenPhase: Phase = async (input) => {\n const { contract, content, pluginConfig } = input;\n\n const { executionFunctions } = await contract.read.pluginManifest();\n const executionAbi = extractExecutionAbi(\n executionFunctions,\n pluginConfig.abi,\n );\n\n content.push(dedent`\n export const ${executionAbiConst(pluginConfig.name)} = ${JSON.stringify(\n executionAbi,\n )} as const;\n `);\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { asyncPipe } from \"@aa-sdk/core\";\nimport { camelCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\nimport { extractExecutionAbi } from \"../../utils.js\";\nimport { ManagementActionsGenPhase } from \"./management-actions.js\";\nimport { AccountReadActionsGenPhase } from \"./read-actions.js\";\n\nexport const PluginActionsGenPhase: Phase = async (input) => {\n const { pluginConfig, contract, addImport, addType } = input;\n const { executionFunctions } = await contract.read.pluginManifest();\n const executionAbiConst = `${pluginConfig.name}ExecutionFunctionAbi`;\n const executionAbi = extractExecutionAbi(\n executionFunctions,\n pluginConfig.abi,\n );\n\n addImport(\"viem\", { name: \"EncodeFunctionDataParameters\", isType: true });\n addImport(\"viem\", { name: \"Transport\", isType: true });\n addImport(\"viem\", { name: \"Chain\", isType: true });\n addImport(\"viem\", { name: \"Client\", isType: true });\n addImport(\"@aa-sdk/core\", {\n name: \"SmartContractAccount\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"GetAccountParameter\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"SendUserOperationResult\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"GetEntryPointFromAccount\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"UserOperationOverridesParameter\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"UserOperationContext\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", { name: \"AccountNotFoundError\" });\n addImport(\"@aa-sdk/core\", { name: \"isSmartAccountClient\" });\n addImport(\"@aa-sdk/core\", { name: \"IncompatibleClientError\" });\n addImport(\"@aa-sdk/core\", { name: \"GetContextParameter\", isType: true });\n\n const providerFunctionDefs: string[] = [];\n const providerFunctions = executionAbi\n .filter((n) => n.stateMutability !== \"view\")\n .map((n) => {\n const argsParamString =\n n.inputs.length > 0\n ? dedent`{\n args,\n overrides,\n context,\n account = client.account\n }`\n : dedent`{\n overrides,\n context,\n account = client.account\n }`;\n const argsEncodeString = n.inputs.length > 0 ? \"args,\" : \"\";\n\n providerFunctionDefs.push(dedent`\n ${camelCase(\n n.name,\n )}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, \"${\n n.name\n }\">, \"args\"> & UserOperationOverridesParameter<TEntryPointVersion> &\n GetAccountParameter<TAccount> & GetContextParameter<TContext>) =>\n Promise<SendUserOperationResult<TEntryPointVersion>>\n `);\n const methodName = camelCase(n.name);\n return dedent`\n ${methodName}(${argsParamString}) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\"SmartAccountClient\", \"${methodName}\", client);\n }\n\n const uo = encodeFunctionData({\n abi: ${executionAbiConst},\n functionName: \"${n.name}\",\n ${argsEncodeString}\n });\n\n return client.sendUserOperation({ uo, overrides, account, context });\n }\n `;\n });\n\n addType(\n `ExecutionActions<\n TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined,\n TContext extends UserOperationContext | undefined = UserOperationContext | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n >`,\n dedent`{\n ${providerFunctionDefs.join(\";\\n\\n\")}\n }`,\n );\n\n const { hasReadMethods } = await asyncPipe(\n ManagementActionsGenPhase,\n AccountReadActionsGenPhase,\n )({\n ...input,\n content: providerFunctions,\n });\n\n addType(\n `${pluginConfig.name}Actions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined = UserOperationContext | undefined>`,\n dedent`\n ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions${\n hasReadMethods ? \"<TAccount>\" : \"\"\n }\n `,\n true,\n );\n\n input.content.push(dedent`\n export const ${camelCase(pluginConfig.name)}Actions: <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined = UserOperationContext | undefined\n >(\n client: Client<TTransport, TChain, TAccount>\n ) => ${\n pluginConfig.name\n }Actions<TAccount, TContext> = (client) => ({ ${providerFunctions.join(\n \",\\n\",\n )} });\n `);\n\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"management-actions.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/management-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { kebabCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport type { PluginConfig } from \"../../../../config\";\nimport type { Phase, PhaseInput } from \"../../types\";\n\nexport const ManagementActionsGenPhase: Phase = async (input) => {\n const { addImport, pluginConfig, addType } = input;\n if (pluginConfig.installConfig != null) {\n addImports(\n addImport,\n pluginConfig.installConfig.dependencies?.map((x) => x.plugin) ?? []
|
|
1
|
+
{"version":3,"file":"management-actions.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/management-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { kebabCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport type { PluginConfig } from \"../../../../config\";\nimport type { Phase, PhaseInput } from \"../../types\";\n\nexport const ManagementActionsGenPhase: Phase = async (input) => {\n const { addImport, pluginConfig, addType } = input;\n if (pluginConfig.installConfig != null) {\n addImports(\n addImport,\n pluginConfig.installConfig.dependencies?.map((x) => x.plugin) ?? [],\n );\n\n const initArgs = pluginConfig.installConfig.initAbiParams ?? [];\n\n addType(\"InstallArgs\", JSON.stringify(initArgs));\n addType(\n `Install${pluginConfig.name}Params`,\n dedent`{\n args: Parameters<typeof encodeAbiParameters<InstallArgs>>[1];\n pluginAddress?: Address;\n dependencyOverrides?: FunctionReference[];\n }`,\n true,\n );\n addType(\n `ManagementActions<\n TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined,\n TContext extends UserOperationContext | undefined = Record<string,any> | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n >`,\n dedent`{\n install${pluginConfig.name}: (args:\n UserOperationOverridesParameter<TEntryPointVersion> &\n Install${pluginConfig.name}Params & GetAccountParameter<TAccount> & GetContextParameter<TContext>) =>\n Promise<SendUserOperationResult<TEntryPointVersion>>\n }`,\n );\n\n const dependencies = (pluginConfig.installConfig.dependencies ?? []).map(\n (x) => dedent`\n (() => {\n const pluginAddress = ${x.plugin.name}.meta.addresses[chain.id];\n if (!pluginAddress) {\n throw new Error(\"missing ${x.plugin.name} address for chain \" + chain.name);\n }\n\n return encodePacked(\n [\"address\", \"uint8\"],\n [pluginAddress, ${x.functionId}]\n );\n })()\n `,\n );\n\n const installMethodName = `install${pluginConfig.name}`;\n\n input.content.push(dedent`\n ${installMethodName}({account = client.account, overrides, context, ...params}) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\"SmartAccountClient\", \"${installMethodName}\", client);\n }\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const dependencies = params.dependencyOverrides ?? [${dependencies.join(\n \",\\n\\n\",\n )}];\n const pluginAddress = params.pluginAddress ?? ${\n pluginConfig.name\n }.meta.addresses[chain.id] as Address | undefined;\n\n if (!pluginAddress) {\n throw new Error(\"missing ${\n pluginConfig.name\n } address for chain \" + chain.name);\n }\n\n return installPlugin_(client, {\n pluginAddress,\n pluginInitData: encodeAbiParameters(${JSON.stringify(\n initArgs,\n )}, params.args),\n dependencies,\n overrides,\n account,\n context,\n });\n }\n `);\n }\n\n return input;\n};\n\nconst addImports = (\n addImport: PhaseInput[\"addImport\"],\n deps?: PluginConfig[],\n) => {\n if (deps != null && deps.length > 0) {\n addImport(\"viem\", { name: \"encodePacked\" });\n deps.forEach((x) => {\n addImport(\n `../${kebabCase(x.name.replaceAll(/[pP]lugin/g, \"\"))}/plugin.js`,\n {\n name: x.name,\n },\n );\n });\n }\n\n addImport(\"@aa-sdk/core\", { name: \"ChainNotFoundError\" });\n addImport(\"viem\", { name: \"encodeAbiParameters\" });\n addImport(\"@account-kit/smart-contracts\", {\n name: \"installPlugin as installPlugin_\",\n });\n addImport(\"@aa-sdk/core\", {\n name: \"GetAccountParameter\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"GetEntryPointFromAccount\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", {\n name: \"UserOperationContext\",\n isType: true,\n });\n addImport(\"@account-kit/smart-contracts\", {\n name: \"FunctionReference\",\n isType: true,\n });\n addImport(\"@aa-sdk/core\", { name: \"GetContextParameter\", isType: true });\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-actions.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/read-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { pascalCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\nimport { extractExecutionAbi } from \"../../utils.js\";\n\nexport const AccountReadActionsGenPhase: Phase = async (input) => {\n const { pluginConfig, contract, addImport, addType } = input;\n const { executionFunctions } = await contract.read.pluginManifest();\n const executionAbiConst = `${pluginConfig.name}ExecutionFunctionAbi`;\n const executionAbi = extractExecutionAbi(\n executionFunctions,\n pluginConfig.abi
|
|
1
|
+
{"version":3,"file":"read-actions.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-actions/read-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { pascalCase } from \"change-case\";\nimport dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\nimport { extractExecutionAbi } from \"../../utils.js\";\n\nexport const AccountReadActionsGenPhase: Phase = async (input) => {\n const { pluginConfig, contract, addImport, addType } = input;\n const { executionFunctions } = await contract.read.pluginManifest();\n const executionAbiConst = `${pluginConfig.name}ExecutionFunctionAbi`;\n const executionAbi = extractExecutionAbi(\n executionFunctions,\n pluginConfig.abi,\n );\n\n addImport(\"viem\", { name: \"EncodeFunctionDataParameters\", isType: true });\n addImport(\"viem\", { name: \"encodeFunctionData\" });\n addImport(\"viem\", { name: \"Hex\", isType: true });\n\n const accountFunctionActionDefs: string[] = [];\n\n const accountFunctions = executionAbi.map((n) => {\n const methodContent: string[] = [];\n const argsParamString = n.inputs.length > 0 ? `{ args }` : \"\";\n const argsEncodeString = n.inputs.length > 0 ? \"args,\" : \"\";\n const isViewFunction = n.stateMutability === \"view\";\n\n const encodeMethodName = `encode${pascalCase(n.name)}`;\n accountFunctionActionDefs.push(\n dedent`${encodeMethodName}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, \"${n.name}\">, \"args\">) => Hex`,\n );\n methodContent.push(dedent`\n ${encodeMethodName}(${argsParamString}) {\n return encodeFunctionData({\n abi: ${executionAbiConst},\n functionName: \"${n.name}\",\n ${argsEncodeString}\n });\n }\n `);\n\n const readArgsParamString =\n n.inputs.length > 0\n ? `{ args, account = client.account }`\n : \"{ account = client.account }\";\n if (isViewFunction) {\n addImport(\"viem\", { name: \"ReadContractReturnType\", isType: true });\n input.hasReadMethods = true;\n const readMethodName = `read${pascalCase(n.name)}`;\n accountFunctionActionDefs.push(\n n.inputs.length > 0\n ? dedent`${readMethodName}: (\n args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, \"${n.name}\">, \"args\"> &\n GetAccountParameter<TAccount>\n ) => Promise<ReadContractReturnType<typeof ${executionAbiConst}, \"${n.name}\">>`\n : dedent`${readMethodName}: (args: GetAccountParameter<TAccount>) =>\n Promise<ReadContractReturnType<typeof ${executionAbiConst}, \"${n.name}\">>`,\n );\n\n methodContent.push(dedent`\n async ${readMethodName} (${readArgsParamString}) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\"SmartAccountClient\", \"${readMethodName}\", client);\n }\n\n return client.readContract({\n address: account.address,\n abi: ${executionAbiConst},\n functionName: \"${n.name}\",\n ${argsEncodeString}\n });\n }\n `);\n }\n\n return methodContent.join(\",\\n\\n\");\n });\n\n const typeName = input.hasReadMethods\n ? `ReadAndEncodeActions<\n TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined,\n >`\n : \"ReadAndEncodeActions\";\n\n addType(\n typeName,\n dedent`{\n ${accountFunctionActionDefs.join(\";\\n\\n\")}\n }`,\n );\n input.content.push(...accountFunctions);\n\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACzD,MAAM,YAAY,GAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,KAAK;QACR,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACR,YAAY,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACzD,MAAM,YAAY,GAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,KAAK;QACR,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,SAAS,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;mBACR,YAAY,CAAC,IAAI,mBAC9B,YAAY,CAAC,IACf;UACM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;GAEjC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import { asyncPipe } from \"@aa-sdk/core\";\nimport dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\nimport { GetContractGenPhase } from \"./get-contract-gen.js\";\nimport { MetaGenPhase } from \"./meta-gen.js\";\n\nexport const PluginGeneratorPhase: Phase = async (input) => {\n const pluginPhases: Phase[] = [MetaGenPhase, GetContractGenPhase];\n const { pluginConfig, addImport } = input;\n\n const result = await asyncPipe(...pluginPhases)({\n ...input,\n content: [],\n });\n\n addImport(\"@account-kit/smart-contracts\", { name: \"Plugin\", isType: true });\n\n input.content.push(dedent`\n export const ${pluginConfig.name}: Plugin<typeof ${\n pluginConfig.name\n }Abi> = {\n ${result.content.join(\",\\n\")}\n };\n `);\n\n return input;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/generate/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { GetContractReturnType, PublicClient } from \"viem\";\nimport type { Config, PluginConfig } from \"../../config.js\";\nimport type { IPluginAbi } from \"../../IPlugin.js\";\n\nexport type PhaseInput = {\n content: string[];\n addImport: (\n moduleName: string,\n member: { name: string; isType?: boolean }
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/generate/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { GetContractReturnType, PublicClient } from \"viem\";\nimport type { Config, PluginConfig } from \"../../config.js\";\nimport type { IPluginAbi } from \"../../IPlugin.js\";\n\nexport type PhaseInput = {\n content: string[];\n addImport: (\n moduleName: string,\n member: { name: string; isType?: boolean },\n ) => void;\n addType: (typeName: string, typeDef: string, isPublic?: boolean) => void;\n pluginConfig: PluginConfig;\n config: Config;\n contract: GetContractReturnType<typeof IPluginAbi, PublicClient>;\n hasReadMethods?: boolean;\n};\n\nexport type Phase = (input: PhaseInput) => Promise<PhaseInput>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAwC,MAAM,MAAM,CAAC;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CAChD,GAAG,IAAI,sBAAsB,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,kBAAsC,EACtC,GAAQ,EACO,EAAE;IACjB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC;YACtB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,CAAC;SACR,CAAY,CAAC;QAEd,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD,EACzD,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACzC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { type AbiFunction } from \"abitype\";\nimport { getAbiItem, type Abi, type AbiItem, type Address } from \"viem\";\n\nexport const executionAbiConst = (name: string) =>\n `${name}ExecutionFunctionAbi`;\n\nexport const extractExecutionAbi = (\n executionFunctions: readonly Address[],\n abi: Abi
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/commands/generate/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAwC,MAAM,MAAM,CAAC;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CAChD,GAAG,IAAI,sBAAsB,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,kBAAsC,EACtC,GAAQ,EACO,EAAE;IACjB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC;YACtB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,CAAC;SACR,CAAY,CAAC;QAEd,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD,EACzD,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACzC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { type AbiFunction } from \"abitype\";\nimport { getAbiItem, type Abi, type AbiItem, type Address } from \"viem\";\n\nexport const executionAbiConst = (name: string) =>\n `${name}ExecutionFunctionAbi`;\n\nexport const extractExecutionAbi = (\n executionFunctions: readonly Address[],\n abi: Abi,\n): AbiFunction[] => {\n return executionFunctions.map((f) => {\n const item = getAbiItem({\n abi: abi,\n name: f,\n }) as AbiItem;\n\n if (item.type !== \"function\") {\n throw new Error(\n \"execution function not mapping to a function in the ABI\",\n { cause: JSON.stringify(item, null, 2) },\n );\n }\n\n return item;\n });\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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","sourcesContent":["// borrows heavily from https://github.com/wevm/wagmi/blob/main/packages/cli/src/commands/init.ts\nimport dedent from \"dedent\";\nimport { default as fs } from \"fs-extra\";\nimport { relative, resolve } from \"pathe\";\nimport pc from \"picocolors\";\nimport z from \"zod\";\nimport { fromZodError } from \"../errors.js\";\nimport * as logger from \"../logger.js\";\nimport { findConfig } from \"../utils/findConfig.js\";\nimport { format } from \"../utils/format.js\";\nimport { getIsUsingTypeScript } from \"../utils/isUsingTypescript.js\";\n\nexport type InitOptions = {\n /** Path to config file */\n config?: string;\n /** Directory to init config file */\n root?: string;\n};\n\nconst InitSchema = z.object({\n config: z.string().optional(),\n root: z.string().optional(),\n});\n\nexport async function init(options: InitOptions = {}) {\n try {\n options = await InitSchema.parseAsync(options);\n } catch (error) {\n if (error instanceof z.ZodError)\n throw fromZodError(error, { prefix: \"Invalid option\" });\n throw error;\n }\n\n // Check for existing config file\n const configPath = await findConfig(options);\n if (configPath) {\n logger.info(\n `Config already exists at ${pc.gray(relative(process.cwd(), configPath))}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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","sourcesContent":["// borrows heavily from https://github.com/wevm/wagmi/blob/main/packages/cli/src/commands/init.ts\nimport dedent from \"dedent\";\nimport { default as fs } from \"fs-extra\";\nimport { relative, resolve } from \"pathe\";\nimport pc from \"picocolors\";\nimport z from \"zod\";\nimport { fromZodError } from \"../errors.js\";\nimport * as logger from \"../logger.js\";\nimport { findConfig } from \"../utils/findConfig.js\";\nimport { format } from \"../utils/format.js\";\nimport { getIsUsingTypeScript } from \"../utils/isUsingTypescript.js\";\n\nexport type InitOptions = {\n /** Path to config file */\n config?: string;\n /** Directory to init config file */\n root?: string;\n};\n\nconst InitSchema = z.object({\n config: z.string().optional(),\n root: z.string().optional(),\n});\n\nexport async function init(options: InitOptions = {}) {\n try {\n options = await InitSchema.parseAsync(options);\n } catch (error) {\n if (error instanceof z.ZodError)\n throw fromZodError(error, { prefix: \"Invalid option\" });\n throw error;\n }\n\n // Check for existing config file\n const configPath = await findConfig(options);\n if (configPath) {\n logger.info(\n `Config already exists at ${pc.gray(relative(process.cwd(), configPath))}`,\n );\n return configPath;\n }\n\n const spinner = logger.spinner();\n spinner.start(\"Creating config\");\n // Check if project is using TypeScript\n const isUsingTypeScript = await getIsUsingTypeScript();\n const rootDir = resolve(options.root || process.cwd());\n let outPath: string;\n if (options.config) {\n outPath = resolve(rootDir, options.config);\n } else {\n const extension = isUsingTypeScript ? \"ts\" : \"js\";\n outPath = resolve(rootDir, `plugingen.config.${extension}`);\n }\n\n let content: string;\n if (isUsingTypeScript) {\n content = dedent(`\n import { defineConfig } from '@account-kit/plugingen';\n import { sepolia } from \"viem/chains\";\n \n export default defineConfig({\n outDir: \"./src/generated\",\n chain: sepolia,\n rpcUrl: \"https://ethereum-sepolia.publicnode.com\",\n plugins: [],\n });\n `);\n } else {\n content = dedent(`\n // @ts-check\n\n /** @type {import('@account-kit/plugingen').Config} */\n export default ${dedent`\n {\n outDir: \"./src/generated\",\n chain: sepolia,\n rpcUrl: \"https://ethereum-sepolia.publicnode.com\",\n plugins: [],\n }\n `.replace(/\"(\\d*)\":/gm, \"$1:\")}\n `);\n }\n\n const formatted = await format(content);\n await fs.writeFile(outPath, formatted);\n spinner.succeed();\n logger.success(\n `Config created at ${pc.gray(relative(process.cwd(), outPath))}`,\n );\n\n return outPath;\n}\n"]}
|
package/dist/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AA0EA,MAAM,UAAU,YAAY,CAC1B,MAAqE;IAErE,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { Abi, Address, Chain, Hex, parseAbiParameters } from \"viem\";\nimport type { Evaluate, MaybeArray, MaybePromise } from \"./types\";\n\nexport type ContractConfig<\n chainId extends number = number,\n requiredChainId extends number | undefined = undefined
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AA0EA,MAAM,UAAU,YAAY,CAC1B,MAAqE;IAErE,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { Abi, Address, Chain, Hex, parseAbiParameters } from \"viem\";\nimport type { Evaluate, MaybeArray, MaybePromise } from \"./types\";\n\nexport type ContractConfig<\n chainId extends number = number,\n requiredChainId extends number | undefined = undefined,\n> = {\n /**\n * Contract ABI\n */\n abi: Abi;\n /**\n * Contract address or addresses.\n *\n * Accepts an object `{ [chainId]: address }` to support multiple chains.\n *\n * @example\n * '0x314159265dd8dbb310642f98f50c066173c1259b'\n *\n * @example\n * {\n * 1: '0x314159265dd8dbb310642f98f50c066173c1259b',\n * 5: '0x112234455c3a32fd11230c42e7bccd4a84e02010',\n * }\n */\n address?:\n | Address\n | (requiredChainId extends number\n ? Record<requiredChainId, Address> & Partial<Record<chainId, Address>>\n : Record<chainId, Address>)\n | undefined;\n /**\n * Name of contract.\n */\n name: string;\n};\n\nexport type Contract = Evaluate<\n ContractConfig & {\n /** Generated string content */\n content: string;\n /** Meta info about contract */\n meta: {\n abiName: string;\n addressName?: string | undefined;\n configName?: string | undefined;\n };\n }\n>;\n\nexport type PluginConfig = {\n abi: Abi;\n addresses: Record<number, Address>;\n // allows you to override the root config chain\n chain?: Chain;\n // allows you to override the root config rpcUrl\n rpcUrl?: string;\n name: string;\n installConfig?: {\n initAbiParams: ReturnType<typeof parseAbiParameters> | [];\n dependencies?: {\n plugin: PluginConfig;\n functionId: Hex;\n }[];\n };\n};\n\nexport type Config = {\n chain: Chain;\n rpcUrl: string;\n outDir?: string;\n plugins: PluginConfig[];\n};\n\nexport function defineConfig(\n config: MaybeArray<Config> | (() => MaybePromise<MaybeArray<Config>>),\n) {\n return config;\n}\n"]}
|
package/dist/esm/errors.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type z } from "zod";
|
|
2
2
|
declare class ValidationError extends Error {
|
|
3
|
-
details:
|
|
3
|
+
details: z.ZodIssue[];
|
|
4
4
|
constructor(message: string, options: {
|
|
5
|
-
details:
|
|
5
|
+
details: z.ZodIssue[];
|
|
6
6
|
});
|
|
7
7
|
}
|
|
8
8
|
export declare function fromZodError(zError: z.ZodError, { maxIssuesInMessage, issueSeparator, prefixSeparator, prefix, }?: {
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,KAAK,CAAC;AAE7B,0EAA0E;AAC1E,MAAM,eAAgB,SAAQ,KAAK;IAGjC,YACE,OAAe,EACf,OAEC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QARjB;;;;;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,KAAK,CAAC;AAE7B,0EAA0E;AAC1E,MAAM,eAAgB,SAAQ,KAAK;IAGjC,YACE,OAAe,EACf,OAEC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QARjB;;;;;WAAsB;QASpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAC1B,MAAkB,EAClB,EACE,kBAAkB,GAAG,EAAE,EACvB,cAAc,GAAG,MAAM,EACvB,eAAe,GAAG,MAAM,EACxB,MAAM,GAAG,kBAAkB,MAMzB,EAAE;IAEN,SAAS,QAAQ,CAAC,GAAwB;QACxC,OAAO,GAAG,CAAC,MAAM,CAAS,CAAC,GAAW,EAAE,KAAsB,EAAE,EAAE;YAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;YACzD,MAAM,SAAS,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACxC,OAAO,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC;QACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAC1B,2DAA2D;SAC1D,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC7B,uBAAuB;SACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,OAAO,SAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;QACF,mBAAmB;SAClB,IAAI,CAAC,cAAc,CAAC,CAAC;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzE,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { type z } from \"zod\";\n\n// from https://github.com/wevm/wagmi/blob/main/packages/cli/src/errors.ts\nclass ValidationError extends Error {\n details: z.ZodIssue[];\n\n constructor(\n message: string,\n options: {\n details: z.ZodIssue[];\n },\n ) {\n super(message);\n this.details = options.details;\n }\n}\n\n// From https://github.com/causaly/zod-validation-error\nexport function fromZodError(\n zError: z.ZodError,\n {\n maxIssuesInMessage = 99,\n issueSeparator = \"\\n- \",\n prefixSeparator = \"\\n- \",\n prefix = \"Validation Error\",\n }: {\n maxIssuesInMessage?: number;\n issueSeparator?: string;\n prefixSeparator?: string;\n prefix?: string;\n } = {},\n): ValidationError {\n function joinPath(arr: (string | number)[]): string {\n return arr.reduce<string>((acc: string, value: string | number) => {\n if (typeof value === \"number\") return `${acc}[${value}]`;\n const separator = acc === \"\" ? \"\" : \".\";\n return acc + separator + value;\n }, \"\");\n }\n\n const reason = zError.errors\n // limit max number of issues printed in the reason section\n .slice(0, maxIssuesInMessage)\n // format error message\n .map((issue) => {\n const { message, path } = issue;\n if (path.length > 0) return `${message} at \\`${joinPath(path)}\\``;\n return message;\n })\n // concat as string\n .join(issueSeparator);\n\n const message = reason ? [prefix, reason].join(prefixSeparator) : prefix;\n\n return new ValidationError(message, {\n details: zError.errors,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isUsingTypescript.js","sourceRoot":"","sources":["../../../src/utils/isUsingTypescript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,eAAe,GAAG,MAAM,MAAM,CAClC,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,EAC3D;YACE,GAAG;SACJ,CACF,CAAC;QACF,IAAI,eAAe;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["// https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/getIsUsingTypeScript.ts\nimport { findUp } from \"find-up\";\n\nexport async function getIsUsingTypeScript() {\n try {\n const cwd = process.cwd();\n const tsconfig = await findUp(\"tsconfig.json\", { cwd });\n if (tsconfig) return true;\n\n const plugingenConfig = await findUp(\n [\"plugingenConfig.config.ts\", \"plugingenConfig.config.mts\"],\n {\n cwd,\n }
|
|
1
|
+
{"version":3,"file":"isUsingTypescript.js","sourceRoot":"","sources":["../../../src/utils/isUsingTypescript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,eAAe,GAAG,MAAM,MAAM,CAClC,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,EAC3D;YACE,GAAG;SACJ,CACF,CAAC;QACF,IAAI,eAAe;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["// https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/getIsUsingTypeScript.ts\nimport { findUp } from \"find-up\";\n\nexport async function getIsUsingTypeScript() {\n try {\n const cwd = process.cwd();\n const tsconfig = await findUp(\"tsconfig.json\", { cwd });\n if (tsconfig) return true;\n\n const plugingenConfig = await findUp(\n [\"plugingenConfig.config.ts\", \"plugingenConfig.config.mts\"],\n {\n cwd,\n },\n );\n if (plugingenConfig) return true;\n\n return false;\n } catch {\n return false;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadEnv.js","sourceRoot":"","sources":["../../../src/utils/loadEnv.ts"],"names":[],"mappings":"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","sourcesContent":["// https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/loadEnv.ts\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\n\nimport { existsSync, readFileSync, statSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\n\n// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/env.ts#L7\nexport function loadEnv(\n config: {\n mode?: string;\n envDir?: string;\n } = {}
|
|
1
|
+
{"version":3,"file":"loadEnv.js","sourceRoot":"","sources":["../../../src/utils/loadEnv.ts"],"names":[],"mappings":"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","sourcesContent":["// https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/loadEnv.ts\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\n\nimport { existsSync, readFileSync, statSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\n\n// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/env.ts#L7\nexport function loadEnv(\n config: {\n mode?: string;\n envDir?: string;\n } = {},\n): Record<string, string> {\n const mode = config.mode;\n if (mode === \"local\") {\n throw new Error(\n `\"local\" cannot be used as a mode name because it conflicts with the .local postfix for .env files.`,\n );\n }\n\n const envFiles = [\n /** default file */ \".env\",\n /** local file */ \".env.local\",\n ...(mode\n ? [\n /** mode file */ `.env.${mode}`,\n /** mode local file */ `.env.${mode}.local`,\n ]\n : []),\n ];\n\n const envDir = config.envDir ?? process.cwd();\n const parsed = Object.fromEntries(\n envFiles.flatMap((file) => {\n const path = lookupFile(envDir, [file], {\n pathOnly: true,\n rootDir: envDir,\n });\n if (!path) return [];\n return Object.entries(parse(readFileSync(path)));\n }),\n );\n\n try {\n // let environment variables use each other\n expand({ parsed });\n } catch (error) {\n // custom error handling until https://github.com/motdotla/dotenv-expand/issues/65 is fixed upstream\n // check for message \"TypeError: Cannot read properties of undefined (reading 'split')\"\n if ((error as Error).message.includes(\"split\")) {\n throw new Error(\n \"dotenv-expand failed to expand env vars. Maybe you need to escape `$`?\",\n );\n }\n throw error;\n }\n\n return parsed;\n}\n\nfunction lookupFile(\n dir: string,\n formats: string[],\n options?: {\n pathOnly?: boolean;\n rootDir?: string;\n predicate?: (file: string) => boolean;\n },\n): string | undefined {\n for (const format of formats) {\n const fullPath = join(dir, format);\n if (existsSync(fullPath) && statSync(fullPath).isFile()) {\n const result = options?.pathOnly\n ? fullPath\n : readFileSync(fullPath, \"utf-8\");\n if (!options?.predicate || options.predicate(result)) {\n return result;\n }\n }\n }\n\n const parentDir = dirname(dir);\n if (\n parentDir !== dir &&\n (!options?.rootDir || parentDir.startsWith(options?.rootDir))\n )\n return lookupFile(parentDir, formats, options);\n\n return undefined;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveConfig.js","sourceRoot":"","sources":["../../../src/utils/resolveConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAmC;IAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;IAC7B,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5C,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAChD,OAAO,MAAM,MAAM,EAAE,CAAC;AACxB,CAAC","sourcesContent":["import { bundleRequire } from \"bundle-require\";\nimport type { Config } from \"../config\";\nimport type { MaybeArray } from \"../types\";\n\ntype ResolveConfigParameters = {\n /** Path to config file */\n configPath: string;\n};\n\n/**\n * Bundles and returns config object from path.\n *\n * @param {ResolveConfigParameters} parameters - Parameters to resolve config\n * @returns {Promise<MaybeArray<Config>>} an array of the config objects\n */\nexport async function resolveConfig(\n parameters: ResolveConfigParameters
|
|
1
|
+
{"version":3,"file":"resolveConfig.js","sourceRoot":"","sources":["../../../src/utils/resolveConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAmC;IAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;IAC7B,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5C,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAChD,OAAO,MAAM,MAAM,EAAE,CAAC;AACxB,CAAC","sourcesContent":["import { bundleRequire } from \"bundle-require\";\nimport type { Config } from \"../config\";\nimport type { MaybeArray } from \"../types\";\n\ntype ResolveConfigParameters = {\n /** Path to config file */\n configPath: string;\n};\n\n/**\n * Bundles and returns config object from path.\n *\n * @param {ResolveConfigParameters} parameters - Parameters to resolve config\n * @returns {Promise<MaybeArray<Config>>} an array of the config objects\n */\nexport async function resolveConfig(\n parameters: ResolveConfigParameters,\n): Promise<MaybeArray<Config>> {\n const { configPath } = parameters;\n const res = await bundleRequire({ filepath: configPath });\n let config = res.mod.default;\n if (config.default) config = config.default;\n if (typeof config !== \"function\") return config;\n return await config();\n}\n"]}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "4.
|
|
1
|
+
export declare const VERSION = "4.35.1";
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"4.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"4.35.1\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAc,KAAK,GAAG,EAAgB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAExE,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAc,KAAK,GAAG,EAAgB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAExE,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,WACf,CAAC;AAEhC,eAAO,MAAM,mBAAmB,GAC9B,oBAAoB,SAAS,OAAO,EAAE,EACtC,KAAK,GAAG,KACP,WAAW,EAgBb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,eAAe,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IACpD;IACF;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IACT;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EACJ,OAAO,GACP,CAAC,eAAe,SAAS,MAAM,GAC3B,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GACpE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC7B,SAAS,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,cAAc,GAAG;IACf,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QACd,aAAa,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC1D,YAAY,CAAC,EAAE;YACb,MAAM,EAAE,YAAY,CAAC;YACrB,UAAU,EAAE,GAAG,CAAC;SACjB,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAjC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,eAAe,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IACpD;IACF;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IACT;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EACJ,OAAO,GACP,CAAC,eAAe,SAAS,MAAM,GAC3B,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GACpE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC7B,SAAS,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,cAAc,GAAG;IACf,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QACd,aAAa,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC1D,YAAY,CAAC,EAAE;YACb,MAAM,EAAE,YAAY,CAAC;YACrB,UAAU,EAAE,GAAG,CAAC;SACjB,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAjC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAGrE"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type z } from "zod";
|
|
2
2
|
declare class ValidationError extends Error {
|
|
3
|
-
details:
|
|
3
|
+
details: z.ZodIssue[];
|
|
4
4
|
constructor(message: string, options: {
|
|
5
|
-
details:
|
|
5
|
+
details: z.ZodIssue[];
|
|
6
6
|
});
|
|
7
7
|
}
|
|
8
8
|
export declare function fromZodError(zError: z.ZodError, { maxIssuesInMessage, issueSeparator, prefixSeparator, prefix, }?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,cAAM,eAAgB,SAAQ,KAAK;IACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,cAAM,eAAgB,SAAQ,KAAK;IACjC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAGpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;KACvB;CAKJ;AAGD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,CAAC,CAAC,QAAQ,EAClB,EACE,kBAAuB,EACvB,cAAuB,EACvB,eAAwB,EACxB,MAA2B,GAC5B,GAAE;IACD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,eAAe,CA0BjB"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "4.
|
|
1
|
+
export declare const VERSION = "4.35.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@account-kit/plugingen",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.35.1",
|
|
4
4
|
"description": "A CLI tool that enables you to generate TS code for your ERC-6900 plugins",
|
|
5
5
|
"author": "Alchemy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,9 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/fs-extra": "^11.0.4",
|
|
47
|
-
"typescript": "
|
|
48
|
-
"typescript-template": "*",
|
|
49
|
-
"vitest": "^2.0.4"
|
|
47
|
+
"typescript-template": "*"
|
|
50
48
|
},
|
|
51
49
|
"publishConfig": {
|
|
52
50
|
"access": "public",
|
|
@@ -61,7 +59,7 @@
|
|
|
61
59
|
},
|
|
62
60
|
"homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
|
|
63
61
|
"dependencies": {
|
|
64
|
-
"@aa-sdk/core": "^4.
|
|
62
|
+
"@aa-sdk/core": "^4.35.1",
|
|
65
63
|
"bundle-require": "^4.0.2",
|
|
66
64
|
"cac": "^6.7.14",
|
|
67
65
|
"change-case": "^5.4.3",
|
|
@@ -73,11 +71,11 @@
|
|
|
73
71
|
"ora": "^8.0.1",
|
|
74
72
|
"pathe": "^1.1.2",
|
|
75
73
|
"picocolors": "^1.0.0",
|
|
76
|
-
"prettier": "
|
|
74
|
+
"prettier": "3.3.3",
|
|
77
75
|
"zod": "^3.22.4"
|
|
78
76
|
},
|
|
79
77
|
"peerDependencies": {
|
|
80
78
|
"viem": "^2.29.2"
|
|
81
79
|
},
|
|
82
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "31e2138c2dd08c5b32cc2d67b3f0d7b2a7d21f4f"
|
|
83
81
|
}
|
package/src/cli.ts
CHANGED
|
@@ -17,7 +17,7 @@ cli
|
|
|
17
17
|
cli
|
|
18
18
|
.command(
|
|
19
19
|
"generate",
|
|
20
|
-
"Generate code for all of the plugins configured within the plugingen config"
|
|
20
|
+
"Generate code for all of the plugins configured within the plugingen config",
|
|
21
21
|
)
|
|
22
22
|
.option("-c, --config <path>", "[string] path to config file")
|
|
23
23
|
.option("-r, --root <path>", "[string] root path to resolve config from")
|
|
@@ -101,7 +101,7 @@ export async function generate(options: GenerateOptions = {}) {
|
|
|
101
101
|
if (!(chain.id in plugin.addresses)) {
|
|
102
102
|
spinner.fail();
|
|
103
103
|
throw new Error(
|
|
104
|
-
`contract address missing for the reference chain ${chain.id}
|
|
104
|
+
`contract address missing for the reference chain ${chain.id}`,
|
|
105
105
|
);
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -123,8 +123,8 @@ export async function generate(options: GenerateOptions = {}) {
|
|
|
123
123
|
pluginConfig: plugin.pluginConfig,
|
|
124
124
|
contract: plugin.contract,
|
|
125
125
|
config,
|
|
126
|
-
})
|
|
127
|
-
)
|
|
126
|
+
}),
|
|
127
|
+
),
|
|
128
128
|
);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -201,7 +201,7 @@ const generatePlugin = async ({
|
|
|
201
201
|
${Array.from(types.entries())
|
|
202
202
|
.map(
|
|
203
203
|
([name, type]) =>
|
|
204
|
-
`${type.isPublic ? "export" : ""} type ${name} = ${type.definition}
|
|
204
|
+
`${type.isPublic ? "export" : ""} type ${name} = ${type.definition};`,
|
|
205
205
|
)
|
|
206
206
|
.join("\n\n")}
|
|
207
207
|
|
|
@@ -249,7 +249,7 @@ const writePlugin = async ({
|
|
|
249
249
|
// 3. generate an index.ts file which correctly exports all of the types + exports the output of extensions.ts
|
|
250
250
|
// so that it's easier to extend and import without conflicts
|
|
251
251
|
const pluginPath = `${config.outDir}/${kebabCase(
|
|
252
|
-
pluginConfig.name.replaceAll(pluginRegEx, "")
|
|
252
|
+
pluginConfig.name.replaceAll(pluginRegEx, ""),
|
|
253
253
|
)}/plugin.${isTypeScript ? "ts" : "js"}`;
|
|
254
254
|
|
|
255
255
|
const code = dedent`
|
|
@@ -5,8 +5,8 @@ export const ContractAbiGenPhase: Phase = async (input) => {
|
|
|
5
5
|
const { content, pluginConfig } = input;
|
|
6
6
|
content.push(dedent`
|
|
7
7
|
export const ${pluginConfig.name}Abi = ${JSON.stringify(
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
pluginConfig.abi,
|
|
9
|
+
)} as const;
|
|
10
10
|
`);
|
|
11
11
|
return input;
|
|
12
12
|
};
|
|
@@ -8,10 +8,10 @@ export const ContractAddressesGenPhase: Phase = async (input) => {
|
|
|
8
8
|
addImport("viem", { name: "Address", isType: true });
|
|
9
9
|
content.push(dedent`
|
|
10
10
|
const addresses = {${Object.entries(
|
|
11
|
-
pluginConfig.addresses as Record<number, Address
|
|
11
|
+
pluginConfig.addresses as Record<number, Address>,
|
|
12
12
|
).reduce(
|
|
13
13
|
(prev, [chainId, addr]) => (prev += `${chainId}: "${addr}" as Address, `),
|
|
14
|
-
""
|
|
14
|
+
"",
|
|
15
15
|
)}} as Record<number, Address>;
|
|
16
16
|
`);
|
|
17
17
|
return input;
|
|
@@ -8,13 +8,13 @@ export const ExecutionAbiGenPhase: Phase = async (input) => {
|
|
|
8
8
|
const { executionFunctions } = await contract.read.pluginManifest();
|
|
9
9
|
const executionAbi = extractExecutionAbi(
|
|
10
10
|
executionFunctions,
|
|
11
|
-
pluginConfig.abi
|
|
11
|
+
pluginConfig.abi,
|
|
12
12
|
);
|
|
13
13
|
|
|
14
14
|
content.push(dedent`
|
|
15
15
|
export const ${executionAbiConst(pluginConfig.name)} = ${JSON.stringify(
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
executionAbi,
|
|
17
|
+
)} as const;
|
|
18
18
|
`);
|
|
19
19
|
return input;
|
|
20
20
|
};
|
|
@@ -12,7 +12,7 @@ export const PluginActionsGenPhase: Phase = async (input) => {
|
|
|
12
12
|
const executionAbiConst = `${pluginConfig.name}ExecutionFunctionAbi`;
|
|
13
13
|
const executionAbi = extractExecutionAbi(
|
|
14
14
|
executionFunctions,
|
|
15
|
-
pluginConfig.abi
|
|
15
|
+
pluginConfig.abi,
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
addImport("viem", { name: "EncodeFunctionDataParameters", isType: true });
|
|
@@ -69,10 +69,10 @@ export const PluginActionsGenPhase: Phase = async (input) => {
|
|
|
69
69
|
|
|
70
70
|
providerFunctionDefs.push(dedent`
|
|
71
71
|
${camelCase(
|
|
72
|
-
n.name
|
|
72
|
+
n.name,
|
|
73
73
|
)}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
n.name
|
|
75
|
+
}">, "args"> & UserOperationOverridesParameter<TEntryPointVersion> &
|
|
76
76
|
GetAccountParameter<TAccount> & GetContextParameter<TContext>) =>
|
|
77
77
|
Promise<SendUserOperationResult<TEntryPointVersion>>
|
|
78
78
|
`);
|
|
@@ -105,12 +105,12 @@ export const PluginActionsGenPhase: Phase = async (input) => {
|
|
|
105
105
|
>`,
|
|
106
106
|
dedent`{
|
|
107
107
|
${providerFunctionDefs.join(";\n\n")}
|
|
108
|
-
}
|
|
108
|
+
}`,
|
|
109
109
|
);
|
|
110
110
|
|
|
111
111
|
const { hasReadMethods } = await asyncPipe(
|
|
112
112
|
ManagementActionsGenPhase,
|
|
113
|
-
AccountReadActionsGenPhase
|
|
113
|
+
AccountReadActionsGenPhase,
|
|
114
114
|
)({
|
|
115
115
|
...input,
|
|
116
116
|
content: providerFunctions,
|
|
@@ -127,7 +127,7 @@ export const PluginActionsGenPhase: Phase = async (input) => {
|
|
|
127
127
|
hasReadMethods ? "<TAccount>" : ""
|
|
128
128
|
}
|
|
129
129
|
`,
|
|
130
|
-
true
|
|
130
|
+
true,
|
|
131
131
|
);
|
|
132
132
|
|
|
133
133
|
input.content.push(dedent`
|
|
@@ -143,8 +143,8 @@ export const PluginActionsGenPhase: Phase = async (input) => {
|
|
|
143
143
|
) => ${
|
|
144
144
|
pluginConfig.name
|
|
145
145
|
}Actions<TAccount, TContext> = (client) => ({ ${providerFunctions.join(
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
",\n",
|
|
147
|
+
)} });
|
|
148
148
|
`);
|
|
149
149
|
|
|
150
150
|
return input;
|
|
@@ -8,7 +8,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
8
8
|
if (pluginConfig.installConfig != null) {
|
|
9
9
|
addImports(
|
|
10
10
|
addImport,
|
|
11
|
-
pluginConfig.installConfig.dependencies?.map((x) => x.plugin) ?? []
|
|
11
|
+
pluginConfig.installConfig.dependencies?.map((x) => x.plugin) ?? [],
|
|
12
12
|
);
|
|
13
13
|
|
|
14
14
|
const initArgs = pluginConfig.installConfig.initAbiParams ?? [];
|
|
@@ -21,7 +21,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
21
21
|
pluginAddress?: Address;
|
|
22
22
|
dependencyOverrides?: FunctionReference[];
|
|
23
23
|
}`,
|
|
24
|
-
true
|
|
24
|
+
true,
|
|
25
25
|
);
|
|
26
26
|
addType(
|
|
27
27
|
`ManagementActions<
|
|
@@ -34,7 +34,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
34
34
|
UserOperationOverridesParameter<TEntryPointVersion> &
|
|
35
35
|
Install${pluginConfig.name}Params & GetAccountParameter<TAccount> & GetContextParameter<TContext>) =>
|
|
36
36
|
Promise<SendUserOperationResult<TEntryPointVersion>>
|
|
37
|
-
}
|
|
37
|
+
}`,
|
|
38
38
|
);
|
|
39
39
|
|
|
40
40
|
const dependencies = (pluginConfig.installConfig.dependencies ?? []).map(
|
|
@@ -50,7 +50,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
50
50
|
[pluginAddress, ${x.functionId}]
|
|
51
51
|
);
|
|
52
52
|
})()
|
|
53
|
-
|
|
53
|
+
`,
|
|
54
54
|
);
|
|
55
55
|
|
|
56
56
|
const installMethodName = `install${pluginConfig.name}`;
|
|
@@ -71,7 +71,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
const dependencies = params.dependencyOverrides ?? [${dependencies.join(
|
|
74
|
-
",\n\n"
|
|
74
|
+
",\n\n",
|
|
75
75
|
)}];
|
|
76
76
|
const pluginAddress = params.pluginAddress ?? ${
|
|
77
77
|
pluginConfig.name
|
|
@@ -86,7 +86,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
86
86
|
return installPlugin_(client, {
|
|
87
87
|
pluginAddress,
|
|
88
88
|
pluginInitData: encodeAbiParameters(${JSON.stringify(
|
|
89
|
-
initArgs
|
|
89
|
+
initArgs,
|
|
90
90
|
)}, params.args),
|
|
91
91
|
dependencies,
|
|
92
92
|
overrides,
|
|
@@ -102,7 +102,7 @@ export const ManagementActionsGenPhase: Phase = async (input) => {
|
|
|
102
102
|
|
|
103
103
|
const addImports = (
|
|
104
104
|
addImport: PhaseInput["addImport"],
|
|
105
|
-
deps?: PluginConfig[]
|
|
105
|
+
deps?: PluginConfig[],
|
|
106
106
|
) => {
|
|
107
107
|
if (deps != null && deps.length > 0) {
|
|
108
108
|
addImport("viem", { name: "encodePacked" });
|
|
@@ -111,7 +111,7 @@ const addImports = (
|
|
|
111
111
|
`../${kebabCase(x.name.replaceAll(/[pP]lugin/g, ""))}/plugin.js`,
|
|
112
112
|
{
|
|
113
113
|
name: x.name,
|
|
114
|
-
}
|
|
114
|
+
},
|
|
115
115
|
);
|
|
116
116
|
});
|
|
117
117
|
}
|
|
@@ -9,7 +9,7 @@ export const AccountReadActionsGenPhase: Phase = async (input) => {
|
|
|
9
9
|
const executionAbiConst = `${pluginConfig.name}ExecutionFunctionAbi`;
|
|
10
10
|
const executionAbi = extractExecutionAbi(
|
|
11
11
|
executionFunctions,
|
|
12
|
-
pluginConfig.abi
|
|
12
|
+
pluginConfig.abi,
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
addImport("viem", { name: "EncodeFunctionDataParameters", isType: true });
|
|
@@ -26,7 +26,7 @@ export const AccountReadActionsGenPhase: Phase = async (input) => {
|
|
|
26
26
|
|
|
27
27
|
const encodeMethodName = `encode${pascalCase(n.name)}`;
|
|
28
28
|
accountFunctionActionDefs.push(
|
|
29
|
-
dedent`${encodeMethodName}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args">) => Hex
|
|
29
|
+
dedent`${encodeMethodName}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args">) => Hex`,
|
|
30
30
|
);
|
|
31
31
|
methodContent.push(dedent`
|
|
32
32
|
${encodeMethodName}(${argsParamString}) {
|
|
@@ -53,7 +53,7 @@ export const AccountReadActionsGenPhase: Phase = async (input) => {
|
|
|
53
53
|
GetAccountParameter<TAccount>
|
|
54
54
|
) => Promise<ReadContractReturnType<typeof ${executionAbiConst}, "${n.name}">>`
|
|
55
55
|
: dedent`${readMethodName}: (args: GetAccountParameter<TAccount>) =>
|
|
56
|
-
Promise<ReadContractReturnType<typeof ${executionAbiConst}, "${n.name}"
|
|
56
|
+
Promise<ReadContractReturnType<typeof ${executionAbiConst}, "${n.name}">>`,
|
|
57
57
|
);
|
|
58
58
|
|
|
59
59
|
methodContent.push(dedent`
|
|
@@ -89,7 +89,7 @@ export const AccountReadActionsGenPhase: Phase = async (input) => {
|
|
|
89
89
|
typeName,
|
|
90
90
|
dedent`{
|
|
91
91
|
${accountFunctionActionDefs.join(";\n\n")}
|
|
92
|
-
}
|
|
92
|
+
}`,
|
|
93
93
|
);
|
|
94
94
|
input.content.push(...accountFunctions);
|
|
95
95
|
|
|
@@ -17,8 +17,8 @@ export const PluginGeneratorPhase: Phase = async (input) => {
|
|
|
17
17
|
|
|
18
18
|
input.content.push(dedent`
|
|
19
19
|
export const ${pluginConfig.name}: Plugin<typeof ${
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
pluginConfig.name
|
|
21
|
+
}Abi> = {
|
|
22
22
|
${result.content.join(",\n")}
|
|
23
23
|
};
|
|
24
24
|
`);
|
|
@@ -6,7 +6,7 @@ export type PhaseInput = {
|
|
|
6
6
|
content: string[];
|
|
7
7
|
addImport: (
|
|
8
8
|
moduleName: string,
|
|
9
|
-
member: { name: string; isType?: boolean }
|
|
9
|
+
member: { name: string; isType?: boolean },
|
|
10
10
|
) => void;
|
|
11
11
|
addType: (typeName: string, typeDef: string, isPublic?: boolean) => void;
|
|
12
12
|
pluginConfig: PluginConfig;
|
|
@@ -6,7 +6,7 @@ export const executionAbiConst = (name: string) =>
|
|
|
6
6
|
|
|
7
7
|
export const extractExecutionAbi = (
|
|
8
8
|
executionFunctions: readonly Address[],
|
|
9
|
-
abi: Abi
|
|
9
|
+
abi: Abi,
|
|
10
10
|
): AbiFunction[] => {
|
|
11
11
|
return executionFunctions.map((f) => {
|
|
12
12
|
const item = getAbiItem({
|
|
@@ -17,7 +17,7 @@ export const extractExecutionAbi = (
|
|
|
17
17
|
if (item.type !== "function") {
|
|
18
18
|
throw new Error(
|
|
19
19
|
"execution function not mapping to a function in the ABI",
|
|
20
|
-
{ cause: JSON.stringify(item, null, 2) }
|
|
20
|
+
{ cause: JSON.stringify(item, null, 2) },
|
|
21
21
|
);
|
|
22
22
|
}
|
|
23
23
|
|
package/src/commands/init.ts
CHANGED
|
@@ -35,7 +35,7 @@ export async function init(options: InitOptions = {}) {
|
|
|
35
35
|
const configPath = await findConfig(options);
|
|
36
36
|
if (configPath) {
|
|
37
37
|
logger.info(
|
|
38
|
-
`Config already exists at ${pc.gray(relative(process.cwd(), configPath))}
|
|
38
|
+
`Config already exists at ${pc.gray(relative(process.cwd(), configPath))}`,
|
|
39
39
|
);
|
|
40
40
|
return configPath;
|
|
41
41
|
}
|
|
@@ -86,7 +86,7 @@ export async function init(options: InitOptions = {}) {
|
|
|
86
86
|
await fs.writeFile(outPath, formatted);
|
|
87
87
|
spinner.succeed();
|
|
88
88
|
logger.success(
|
|
89
|
-
`Config created at ${pc.gray(relative(process.cwd(), outPath))}
|
|
89
|
+
`Config created at ${pc.gray(relative(process.cwd(), outPath))}`,
|
|
90
90
|
);
|
|
91
91
|
|
|
92
92
|
return outPath;
|
package/src/config.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { Evaluate, MaybeArray, MaybePromise } from "./types";
|
|
|
3
3
|
|
|
4
4
|
export type ContractConfig<
|
|
5
5
|
chainId extends number = number,
|
|
6
|
-
requiredChainId extends number | undefined = undefined
|
|
6
|
+
requiredChainId extends number | undefined = undefined,
|
|
7
7
|
> = {
|
|
8
8
|
/**
|
|
9
9
|
* Contract ABI
|
|
@@ -73,7 +73,7 @@ export type Config = {
|
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
export function defineConfig(
|
|
76
|
-
config: MaybeArray<Config> | (() => MaybePromise<MaybeArray<Config>>)
|
|
76
|
+
config: MaybeArray<Config> | (() => MaybePromise<MaybeArray<Config>>),
|
|
77
77
|
) {
|
|
78
78
|
return config;
|
|
79
79
|
}
|
package/src/errors.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { type z } from "zod";
|
|
|
2
2
|
|
|
3
3
|
// from https://github.com/wevm/wagmi/blob/main/packages/cli/src/errors.ts
|
|
4
4
|
class ValidationError extends Error {
|
|
5
|
-
details:
|
|
5
|
+
details: z.ZodIssue[];
|
|
6
6
|
|
|
7
7
|
constructor(
|
|
8
8
|
message: string,
|
|
9
9
|
options: {
|
|
10
|
-
details:
|
|
11
|
-
}
|
|
10
|
+
details: z.ZodIssue[];
|
|
11
|
+
},
|
|
12
12
|
) {
|
|
13
13
|
super(message);
|
|
14
14
|
this.details = options.details;
|
|
@@ -28,10 +28,10 @@ export function fromZodError(
|
|
|
28
28
|
issueSeparator?: string;
|
|
29
29
|
prefixSeparator?: string;
|
|
30
30
|
prefix?: string;
|
|
31
|
-
} = {}
|
|
31
|
+
} = {},
|
|
32
32
|
): ValidationError {
|
|
33
|
-
function joinPath(arr:
|
|
34
|
-
return arr.reduce<string>((acc, value) => {
|
|
33
|
+
function joinPath(arr: (string | number)[]): string {
|
|
34
|
+
return arr.reduce<string>((acc: string, value: string | number) => {
|
|
35
35
|
if (typeof value === "number") return `${acc}[${value}]`;
|
|
36
36
|
const separator = acc === "" ? "" : ".";
|
|
37
37
|
return acc + separator + value;
|
package/src/utils/loadEnv.ts
CHANGED
|
@@ -10,12 +10,12 @@ export function loadEnv(
|
|
|
10
10
|
config: {
|
|
11
11
|
mode?: string;
|
|
12
12
|
envDir?: string;
|
|
13
|
-
} = {}
|
|
13
|
+
} = {},
|
|
14
14
|
): Record<string, string> {
|
|
15
15
|
const mode = config.mode;
|
|
16
16
|
if (mode === "local") {
|
|
17
17
|
throw new Error(
|
|
18
|
-
`"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files
|
|
18
|
+
`"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files.`,
|
|
19
19
|
);
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -39,7 +39,7 @@ export function loadEnv(
|
|
|
39
39
|
});
|
|
40
40
|
if (!path) return [];
|
|
41
41
|
return Object.entries(parse(readFileSync(path)));
|
|
42
|
-
})
|
|
42
|
+
}),
|
|
43
43
|
);
|
|
44
44
|
|
|
45
45
|
try {
|
|
@@ -50,7 +50,7 @@ export function loadEnv(
|
|
|
50
50
|
// check for message "TypeError: Cannot read properties of undefined (reading 'split')"
|
|
51
51
|
if ((error as Error).message.includes("split")) {
|
|
52
52
|
throw new Error(
|
|
53
|
-
"dotenv-expand failed to expand env vars. Maybe you need to escape `$`?"
|
|
53
|
+
"dotenv-expand failed to expand env vars. Maybe you need to escape `$`?",
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
throw error;
|
|
@@ -66,7 +66,7 @@ function lookupFile(
|
|
|
66
66
|
pathOnly?: boolean;
|
|
67
67
|
rootDir?: string;
|
|
68
68
|
predicate?: (file: string) => boolean;
|
|
69
|
-
}
|
|
69
|
+
},
|
|
70
70
|
): string | undefined {
|
|
71
71
|
for (const format of formats) {
|
|
72
72
|
const fullPath = join(dir, format);
|
|
@@ -14,7 +14,7 @@ type ResolveConfigParameters = {
|
|
|
14
14
|
* @returns {Promise<MaybeArray<Config>>} an array of the config objects
|
|
15
15
|
*/
|
|
16
16
|
export async function resolveConfig(
|
|
17
|
-
parameters: ResolveConfigParameters
|
|
17
|
+
parameters: ResolveConfigParameters,
|
|
18
18
|
): Promise<MaybeArray<Config>> {
|
|
19
19
|
const { configPath } = parameters;
|
|
20
20
|
const res = await bundleRequire({ filepath: configPath });
|
package/src/version.ts
CHANGED