@account-kit/plugingen 4.0.0-alpha.0

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.
Files changed (171) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/IPlugin.d.ts +474 -0
  3. package/dist/esm/IPlugin.js +397 -0
  4. package/dist/esm/IPlugin.js.map +1 -0
  5. package/dist/esm/cli.d.ts +2 -0
  6. package/dist/esm/cli.js +40 -0
  7. package/dist/esm/cli.js.map +1 -0
  8. package/dist/esm/commands/generate/index.d.ts +14 -0
  9. package/dist/esm/commands/generate/index.js +179 -0
  10. package/dist/esm/commands/generate/index.js.map +1 -0
  11. package/dist/esm/commands/generate/phases/contract-abi-gen.d.ts +2 -0
  12. package/dist/esm/commands/generate/phases/contract-abi-gen.js +9 -0
  13. package/dist/esm/commands/generate/phases/contract-abi-gen.js.map +1 -0
  14. package/dist/esm/commands/generate/phases/contract-addresses-gen.d.ts +2 -0
  15. package/dist/esm/commands/generate/phases/contract-addresses-gen.js +10 -0
  16. package/dist/esm/commands/generate/phases/contract-addresses-gen.js.map +1 -0
  17. package/dist/esm/commands/generate/phases/execution-abi-gen.d.ts +2 -0
  18. package/dist/esm/commands/generate/phases/execution-abi-gen.js +12 -0
  19. package/dist/esm/commands/generate/phases/execution-abi-gen.js.map +1 -0
  20. package/dist/esm/commands/generate/phases/plugin-actions/index.d.ts +2 -0
  21. package/dist/esm/commands/generate/phases/plugin-actions/index.js +118 -0
  22. package/dist/esm/commands/generate/phases/plugin-actions/index.js.map +1 -0
  23. package/dist/esm/commands/generate/phases/plugin-actions/management-actions.d.ts +2 -0
  24. package/dist/esm/commands/generate/phases/plugin-actions/management-actions.js +105 -0
  25. package/dist/esm/commands/generate/phases/plugin-actions/management-actions.js.map +1 -0
  26. package/dist/esm/commands/generate/phases/plugin-actions/read-actions.d.ts +2 -0
  27. package/dist/esm/commands/generate/phases/plugin-actions/read-actions.js +75 -0
  28. package/dist/esm/commands/generate/phases/plugin-actions/read-actions.js.map +1 -0
  29. package/dist/esm/commands/generate/phases/plugin-generator/get-contract-gen.d.ts +2 -0
  30. package/dist/esm/commands/generate/phases/plugin-generator/get-contract-gen.js +26 -0
  31. package/dist/esm/commands/generate/phases/plugin-generator/get-contract-gen.js.map +1 -0
  32. package/dist/esm/commands/generate/phases/plugin-generator/index.d.ts +2 -0
  33. package/dist/esm/commands/generate/phases/plugin-generator/index.js +20 -0
  34. package/dist/esm/commands/generate/phases/plugin-generator/index.js.map +1 -0
  35. package/dist/esm/commands/generate/phases/plugin-generator/meta-gen.d.ts +2 -0
  36. package/dist/esm/commands/generate/phases/plugin-generator/meta-gen.js +14 -0
  37. package/dist/esm/commands/generate/phases/plugin-generator/meta-gen.js.map +1 -0
  38. package/dist/esm/commands/generate/types.d.ts +16 -0
  39. package/dist/esm/commands/generate/types.js +2 -0
  40. package/dist/esm/commands/generate/types.js.map +1 -0
  41. package/dist/esm/commands/generate/utils.d.ts +4 -0
  42. package/dist/esm/commands/generate/utils.js +16 -0
  43. package/dist/esm/commands/generate/utils.js.map +1 -0
  44. package/dist/esm/commands/init.d.ts +5 -0
  45. package/dist/esm/commands/init.js +76 -0
  46. package/dist/esm/commands/init.js.map +1 -0
  47. package/dist/esm/config.d.ts +36 -0
  48. package/dist/esm/config.js +4 -0
  49. package/dist/esm/config.js.map +1 -0
  50. package/dist/esm/errors.d.ts +14 -0
  51. package/dist/esm/errors.js +37 -0
  52. package/dist/esm/errors.js.map +1 -0
  53. package/dist/esm/exports/config.d.ts +1 -0
  54. package/dist/esm/exports/config.js +2 -0
  55. package/dist/esm/exports/config.js.map +1 -0
  56. package/dist/esm/exports/index.d.ts +4 -0
  57. package/dist/esm/exports/index.js +5 -0
  58. package/dist/esm/exports/index.js.map +1 -0
  59. package/dist/esm/exports/types.d.ts +1 -0
  60. package/dist/esm/exports/types.js +2 -0
  61. package/dist/esm/exports/types.js.map +1 -0
  62. package/dist/esm/logger.d.ts +6 -0
  63. package/dist/esm/logger.js +30 -0
  64. package/dist/esm/logger.js.map +1 -0
  65. package/dist/esm/package.json +1 -0
  66. package/dist/esm/types.d.ts +6 -0
  67. package/dist/esm/types.js +2 -0
  68. package/dist/esm/types.js.map +1 -0
  69. package/dist/esm/utils/findConfig.d.ts +6 -0
  70. package/dist/esm/utils/findConfig.js +21 -0
  71. package/dist/esm/utils/findConfig.js.map +1 -0
  72. package/dist/esm/utils/format.d.ts +1 -0
  73. package/dist/esm/utils/format.js +10 -0
  74. package/dist/esm/utils/format.js.map +1 -0
  75. package/dist/esm/utils/isUsingTypescript.d.ts +1 -0
  76. package/dist/esm/utils/isUsingTypescript.js +19 -0
  77. package/dist/esm/utils/isUsingTypescript.js.map +1 -0
  78. package/dist/esm/utils/loadEnv.d.ts +4 -0
  79. package/dist/esm/utils/loadEnv.js +59 -0
  80. package/dist/esm/utils/loadEnv.js.map +1 -0
  81. package/dist/esm/utils/resolveConfig.d.ts +7 -0
  82. package/dist/esm/utils/resolveConfig.js +12 -0
  83. package/dist/esm/utils/resolveConfig.js.map +1 -0
  84. package/dist/esm/version.d.ts +1 -0
  85. package/dist/esm/version.js +2 -0
  86. package/dist/esm/version.js.map +1 -0
  87. package/dist/types/IPlugin.d.ts +475 -0
  88. package/dist/types/IPlugin.d.ts.map +1 -0
  89. package/dist/types/cli.d.ts +3 -0
  90. package/dist/types/cli.d.ts.map +1 -0
  91. package/dist/types/commands/generate/index.d.ts +17 -0
  92. package/dist/types/commands/generate/index.d.ts.map +1 -0
  93. package/dist/types/commands/generate/phases/contract-abi-gen.d.ts +3 -0
  94. package/dist/types/commands/generate/phases/contract-abi-gen.d.ts.map +1 -0
  95. package/dist/types/commands/generate/phases/contract-addresses-gen.d.ts +3 -0
  96. package/dist/types/commands/generate/phases/contract-addresses-gen.d.ts.map +1 -0
  97. package/dist/types/commands/generate/phases/execution-abi-gen.d.ts +3 -0
  98. package/dist/types/commands/generate/phases/execution-abi-gen.d.ts.map +1 -0
  99. package/dist/types/commands/generate/phases/plugin-actions/index.d.ts +3 -0
  100. package/dist/types/commands/generate/phases/plugin-actions/index.d.ts.map +1 -0
  101. package/dist/types/commands/generate/phases/plugin-actions/management-actions.d.ts +3 -0
  102. package/dist/types/commands/generate/phases/plugin-actions/management-actions.d.ts.map +1 -0
  103. package/dist/types/commands/generate/phases/plugin-actions/read-actions.d.ts +3 -0
  104. package/dist/types/commands/generate/phases/plugin-actions/read-actions.d.ts.map +1 -0
  105. package/dist/types/commands/generate/phases/plugin-generator/get-contract-gen.d.ts +3 -0
  106. package/dist/types/commands/generate/phases/plugin-generator/get-contract-gen.d.ts.map +1 -0
  107. package/dist/types/commands/generate/phases/plugin-generator/index.d.ts +3 -0
  108. package/dist/types/commands/generate/phases/plugin-generator/index.d.ts.map +1 -0
  109. package/dist/types/commands/generate/phases/plugin-generator/meta-gen.d.ts +3 -0
  110. package/dist/types/commands/generate/phases/plugin-generator/meta-gen.d.ts.map +1 -0
  111. package/dist/types/commands/generate/types.d.ts +17 -0
  112. package/dist/types/commands/generate/types.d.ts.map +1 -0
  113. package/dist/types/commands/generate/utils.d.ts +5 -0
  114. package/dist/types/commands/generate/utils.d.ts.map +1 -0
  115. package/dist/types/commands/init.d.ts +8 -0
  116. package/dist/types/commands/init.d.ts.map +1 -0
  117. package/dist/types/config.d.ts +59 -0
  118. package/dist/types/config.d.ts.map +1 -0
  119. package/dist/types/errors.d.ts +15 -0
  120. package/dist/types/errors.d.ts.map +1 -0
  121. package/dist/types/exports/config.d.ts +2 -0
  122. package/dist/types/exports/config.d.ts.map +1 -0
  123. package/dist/types/exports/index.d.ts +5 -0
  124. package/dist/types/exports/index.d.ts.map +1 -0
  125. package/dist/types/exports/types.d.ts +2 -0
  126. package/dist/types/exports/types.d.ts.map +1 -0
  127. package/dist/types/logger.d.ts +7 -0
  128. package/dist/types/logger.d.ts.map +1 -0
  129. package/dist/types/types.d.ts +7 -0
  130. package/dist/types/types.d.ts.map +1 -0
  131. package/dist/types/utils/findConfig.d.ts +15 -0
  132. package/dist/types/utils/findConfig.d.ts.map +1 -0
  133. package/dist/types/utils/format.d.ts +2 -0
  134. package/dist/types/utils/format.d.ts.map +1 -0
  135. package/dist/types/utils/isUsingTypescript.d.ts +2 -0
  136. package/dist/types/utils/isUsingTypescript.d.ts.map +1 -0
  137. package/dist/types/utils/loadEnv.d.ts +5 -0
  138. package/dist/types/utils/loadEnv.d.ts.map +1 -0
  139. package/dist/types/utils/resolveConfig.d.ts +15 -0
  140. package/dist/types/utils/resolveConfig.d.ts.map +1 -0
  141. package/dist/types/version.d.ts +2 -0
  142. package/dist/types/version.d.ts.map +1 -0
  143. package/package.json +83 -0
  144. package/src/IPlugin.ts +396 -0
  145. package/src/cli.ts +44 -0
  146. package/src/commands/generate/index.ts +270 -0
  147. package/src/commands/generate/phases/contract-abi-gen.ts +12 -0
  148. package/src/commands/generate/phases/contract-addresses-gen.ts +18 -0
  149. package/src/commands/generate/phases/execution-abi-gen.ts +20 -0
  150. package/src/commands/generate/phases/plugin-actions/index.ts +151 -0
  151. package/src/commands/generate/phases/plugin-actions/management-actions.ts +141 -0
  152. package/src/commands/generate/phases/plugin-actions/read-actions.ts +97 -0
  153. package/src/commands/generate/phases/plugin-generator/get-contract-gen.ts +30 -0
  154. package/src/commands/generate/phases/plugin-generator/index.ts +27 -0
  155. package/src/commands/generate/phases/plugin-generator/meta-gen.ts +17 -0
  156. package/src/commands/generate/types.ts +18 -0
  157. package/src/commands/generate/utils.ts +26 -0
  158. package/src/commands/init.ts +93 -0
  159. package/src/config.ts +79 -0
  160. package/src/errors.ts +58 -0
  161. package/src/exports/config.ts +1 -0
  162. package/src/exports/index.ts +7 -0
  163. package/src/exports/types.ts +1 -0
  164. package/src/logger.ts +36 -0
  165. package/src/types.ts +11 -0
  166. package/src/utils/findConfig.ts +37 -0
  167. package/src/utils/format.ts +11 -0
  168. package/src/utils/isUsingTypescript.ts +22 -0
  169. package/src/utils/loadEnv.ts +91 -0
  170. package/src/utils/resolveConfig.ts +25 -0
  171. package/src/version.ts +3 -0
@@ -0,0 +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\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"]}
@@ -0,0 +1,2 @@
1
+ import type { Phase } from "../../types";
2
+ export declare const GetContractGenPhase: Phase;
@@ -0,0 +1,26 @@
1
+ import dedent from "dedent";
2
+ export const GetContractGenPhase = async (input) => {
3
+ const { content, pluginConfig, addImport } = input;
4
+ addImport("viem", { name: "getContract", isType: false });
5
+ addImport("viem", { name: "GetContractReturnType", isType: true });
6
+ addImport("viem", { name: "Address", isType: true });
7
+ addImport("viem", { name: "Transport", isType: true });
8
+ addImport("viem", { name: "PublicClient", isType: true });
9
+ addImport("viem", { name: "Client", isType: true });
10
+ addImport("@aa-sdk/core", { name: "ChainNotFoundError" });
11
+ content.push(dedent `
12
+ getContract: <C extends Client>(
13
+ client: C,
14
+ address?: Address
15
+ ): GetContractReturnType<typeof ${pluginConfig.name}Abi, PublicClient, Address> => {
16
+ if (!client.chain) throw new ChainNotFoundError();
17
+
18
+ return getContract({
19
+ address: address || addresses[client.chain.id],
20
+ abi: ${pluginConfig.name}Abi,
21
+ client: client,
22
+ });
23
+ }`);
24
+ return input;
25
+ };
26
+ //# sourceMappingURL=get-contract-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-contract-gen.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-generator/get-contract-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,SAAS,EAAE,GAAG,KAAK,CAAC;IAEnD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;;;;oCAIe,YAAY,CAAC,IAAI;;;;;eAKtC,YAAY,CAAC,IAAI;;;IAG5B,CAAC,CAAC;IAEJ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\n\nexport const GetContractGenPhase: Phase = async (input) => {\n const { content, pluginConfig, addImport } = input;\n\n addImport(\"viem\", { name: \"getContract\", isType: false });\n addImport(\"viem\", { name: \"GetContractReturnType\", isType: true });\n addImport(\"viem\", { name: \"Address\", isType: true });\n addImport(\"viem\", { name: \"Transport\", isType: true });\n addImport(\"viem\", { name: \"PublicClient\", isType: true });\n addImport(\"viem\", { name: \"Client\", isType: true });\n addImport(\"@aa-sdk/core\", { name: \"ChainNotFoundError\" });\n\n content.push(dedent`\n getContract: <C extends Client>(\n client: C,\n address?: Address\n ): GetContractReturnType<typeof ${pluginConfig.name}Abi, PublicClient, Address> => {\n if (!client.chain) throw new ChainNotFoundError();\n\n return getContract({\n address: address || addresses[client.chain.id],\n abi: ${pluginConfig.name}Abi,\n client: client,\n });\n }`);\n\n return input;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import type { Phase } from "../../types";
2
+ export declare const PluginGeneratorPhase: Phase;
@@ -0,0 +1,20 @@
1
+ import { asyncPipe } from "@aa-sdk/core";
2
+ import dedent from "dedent";
3
+ import { GetContractGenPhase } from "./get-contract-gen.js";
4
+ import { MetaGenPhase } from "./meta-gen.js";
5
+ export const PluginGeneratorPhase = async (input) => {
6
+ const pluginPhases = [MetaGenPhase, GetContractGenPhase];
7
+ const { pluginConfig, addImport } = input;
8
+ const result = await asyncPipe(...pluginPhases)({
9
+ ...input,
10
+ content: [],
11
+ });
12
+ addImport("@account-kit/smart-contracts", { name: "Plugin", isType: true });
13
+ input.content.push(dedent `
14
+ export const ${pluginConfig.name}: Plugin<typeof ${pluginConfig.name}Abi> = {
15
+ ${result.content.join(",\n")}
16
+ };
17
+ `);
18
+ return input;
19
+ };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,mBAChC,YAAY,CAAC,IACf;UACQ,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"]}
@@ -0,0 +1,2 @@
1
+ import type { Phase } from "../../types";
2
+ export declare const MetaGenPhase: Phase;
@@ -0,0 +1,14 @@
1
+ import dedent from "dedent";
2
+ export const MetaGenPhase = async (input) => {
3
+ const { contract, content } = input;
4
+ const { name, version } = await contract.read.pluginMetadata();
5
+ content.push(dedent `
6
+ meta: {
7
+ name: "${name}",
8
+ version: "${version}",
9
+ addresses,
10
+ }
11
+ `);
12
+ return input;
13
+ };
14
+ //# sourceMappingURL=meta-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-gen.js","sourceRoot":"","sources":["../../../../../../src/commands/generate/phases/plugin-generator/meta-gen.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,CAAC,MAAM,YAAY,GAAU,KAAK,EAAE,KAAK,EAAE,EAAE;IACjD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAE/D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;;iBAEJ,IAAI;oBACD,OAAO;;;GAGxB,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import dedent from \"dedent\";\nimport type { Phase } from \"../../types\";\n\nexport const MetaGenPhase: Phase = async (input) => {\n const { contract, content } = input;\n const { name, version } = await contract.read.pluginMetadata();\n\n content.push(dedent`\n meta: {\n name: \"${name}\",\n version: \"${version}\",\n addresses,\n }\n `);\n\n return input;\n};\n"]}
@@ -0,0 +1,16 @@
1
+ import type { GetContractReturnType, PublicClient } from "viem";
2
+ import type { Config, PluginConfig } from "../../config.js";
3
+ import type { IPluginAbi } from "../../IPlugin.js";
4
+ export type PhaseInput = {
5
+ content: string[];
6
+ addImport: (moduleName: string, member: {
7
+ name: string;
8
+ isType?: boolean;
9
+ }) => void;
10
+ addType: (typeName: string, typeDef: string, isPublic?: boolean) => void;
11
+ pluginConfig: PluginConfig;
12
+ config: Config;
13
+ contract: GetContractReturnType<typeof IPluginAbi, PublicClient>;
14
+ hasReadMethods?: boolean;
15
+ };
16
+ export type Phase = (input: PhaseInput) => Promise<PhaseInput>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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 }\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"]}
@@ -0,0 +1,4 @@
1
+ import { type AbiFunction } from "abitype";
2
+ import { type Abi, type Address } from "viem";
3
+ export declare const executionAbiConst: (name: string) => string;
4
+ export declare const extractExecutionAbi: (executionFunctions: readonly Address[], abi: Abi) => AbiFunction[];
@@ -0,0 +1,16 @@
1
+ import {} from "abitype";
2
+ import { getAbiItem } from "viem";
3
+ export const executionAbiConst = (name) => `${name}ExecutionFunctionAbi`;
4
+ export const extractExecutionAbi = (executionFunctions, abi) => {
5
+ return executionFunctions.map((f) => {
6
+ const item = getAbiItem({
7
+ abi: abi,
8
+ name: f,
9
+ });
10
+ if (item.type !== "function") {
11
+ throw new Error("execution function not mapping to a function in the ABI", { cause: JSON.stringify(item, null, 2) });
12
+ }
13
+ return item;
14
+ });
15
+ };
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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\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"]}
@@ -0,0 +1,5 @@
1
+ export type InitOptions = {
2
+ config?: string;
3
+ root?: string;
4
+ };
5
+ export declare function init(options?: InitOptions): Promise<string>;
@@ -0,0 +1,76 @@
1
+ import dedent from "dedent";
2
+ import { default as fs } from "fs-extra";
3
+ import { relative, resolve } from "pathe";
4
+ import pc from "picocolors";
5
+ import z from "zod";
6
+ import { fromZodError } from "../errors.js";
7
+ import * as logger from "../logger.js";
8
+ import { findConfig } from "../utils/findConfig.js";
9
+ import { format } from "../utils/format.js";
10
+ import { getIsUsingTypeScript } from "../utils/isUsingTypescript.js";
11
+ const InitSchema = z.object({
12
+ config: z.string().optional(),
13
+ root: z.string().optional(),
14
+ });
15
+ export async function init(options = {}) {
16
+ try {
17
+ options = await InitSchema.parseAsync(options);
18
+ }
19
+ catch (error) {
20
+ if (error instanceof z.ZodError)
21
+ throw fromZodError(error, { prefix: "Invalid option" });
22
+ throw error;
23
+ }
24
+ const configPath = await findConfig(options);
25
+ if (configPath) {
26
+ logger.info(`Config already exists at ${pc.gray(relative(process.cwd(), configPath))}`);
27
+ return configPath;
28
+ }
29
+ const spinner = logger.spinner();
30
+ spinner.start("Creating config");
31
+ const isUsingTypeScript = await getIsUsingTypeScript();
32
+ const rootDir = resolve(options.root || process.cwd());
33
+ let outPath;
34
+ if (options.config) {
35
+ outPath = resolve(rootDir, options.config);
36
+ }
37
+ else {
38
+ const extension = isUsingTypeScript ? "ts" : "js";
39
+ outPath = resolve(rootDir, `plugingen.config.${extension}`);
40
+ }
41
+ let content;
42
+ if (isUsingTypeScript) {
43
+ content = dedent(`
44
+ import { defineConfig } from '@account-kit/plugingen';
45
+ import { sepolia } from "viem/chains";
46
+
47
+ export default defineConfig({
48
+ outDir: "./src/generated",
49
+ chain: sepolia,
50
+ rpcUrl: "https://ethereum-sepolia.publicnode.com",
51
+ plugins: [],
52
+ });
53
+ `);
54
+ }
55
+ else {
56
+ content = dedent(`
57
+ // @ts-check
58
+
59
+ /** @type {import('@account-kit/plugingen').Config} */
60
+ export default ${dedent `
61
+ {
62
+ outDir: "./src/generated",
63
+ chain: sepolia,
64
+ rpcUrl: "https://ethereum-sepolia.publicnode.com",
65
+ plugins: [],
66
+ }
67
+ `.replace(/"(\d*)":/gm, "$1:")}
68
+ `);
69
+ }
70
+ const formatted = await format(content);
71
+ await fs.writeFile(outPath, formatted);
72
+ spinner.succeed();
73
+ logger.success(`Config created at ${pc.gray(relative(process.cwd(), outPath))}`);
74
+ return outPath;
75
+ }
76
+ //# sourceMappingURL=init.js.map
@@ -0,0 +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))}`\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"]}
@@ -0,0 +1,36 @@
1
+ import type { Abi, Address, Chain, Hex, parseAbiParameters } from "viem";
2
+ import type { Evaluate, MaybeArray, MaybePromise } from "./types";
3
+ export type ContractConfig<chainId extends number = number, requiredChainId extends number | undefined = undefined> = {
4
+ abi: Abi;
5
+ address?: Address | (requiredChainId extends number ? Record<requiredChainId, Address> & Partial<Record<chainId, Address>> : Record<chainId, Address>) | undefined;
6
+ name: string;
7
+ };
8
+ export type Contract = Evaluate<ContractConfig & {
9
+ content: string;
10
+ meta: {
11
+ abiName: string;
12
+ addressName?: string | undefined;
13
+ configName?: string | undefined;
14
+ };
15
+ }>;
16
+ export type PluginConfig = {
17
+ abi: Abi;
18
+ addresses: Record<number, Address>;
19
+ chain?: Chain;
20
+ rpcUrl?: string;
21
+ name: string;
22
+ installConfig?: {
23
+ initAbiParams: ReturnType<typeof parseAbiParameters> | [];
24
+ dependencies?: {
25
+ plugin: PluginConfig;
26
+ functionId: Hex;
27
+ }[];
28
+ };
29
+ };
30
+ export type Config = {
31
+ chain: Chain;
32
+ rpcUrl: string;
33
+ outDir?: string;
34
+ plugins: PluginConfig[];
35
+ };
36
+ export declare function defineConfig(config: MaybeArray<Config> | (() => MaybePromise<MaybeArray<Config>>)): MaybeArray<Config> | (() => MaybePromise<MaybeArray<Config>>);
@@ -0,0 +1,4 @@
1
+ export function defineConfig(config) {
2
+ return config;
3
+ }
4
+ //# sourceMappingURL=config.js.map
@@ -0,0 +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\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"]}
@@ -0,0 +1,14 @@
1
+ import { type z } from "zod";
2
+ declare class ValidationError extends Error {
3
+ details: Zod.ZodIssue[];
4
+ constructor(message: string, options: {
5
+ details: Zod.ZodIssue[];
6
+ });
7
+ }
8
+ export declare function fromZodError(zError: z.ZodError, { maxIssuesInMessage, issueSeparator, prefixSeparator, prefix, }?: {
9
+ maxIssuesInMessage?: number;
10
+ issueSeparator?: string;
11
+ prefixSeparator?: string;
12
+ prefix?: string;
13
+ }): ValidationError;
14
+ export {};
@@ -0,0 +1,37 @@
1
+ import {} from "zod";
2
+ class ValidationError extends Error {
3
+ constructor(message, options) {
4
+ super(message);
5
+ Object.defineProperty(this, "details", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ });
11
+ this.details = options.details;
12
+ }
13
+ }
14
+ export function fromZodError(zError, { maxIssuesInMessage = 99, issueSeparator = "\n- ", prefixSeparator = "\n- ", prefix = "Validation Error", } = {}) {
15
+ function joinPath(arr) {
16
+ return arr.reduce((acc, value) => {
17
+ if (typeof value === "number")
18
+ return `${acc}[${value}]`;
19
+ const separator = acc === "" ? "" : ".";
20
+ return acc + separator + value;
21
+ }, "");
22
+ }
23
+ const reason = zError.errors
24
+ .slice(0, maxIssuesInMessage)
25
+ .map((issue) => {
26
+ const { message, path } = issue;
27
+ if (path.length > 0)
28
+ return `${message} at \`${joinPath(path)}\``;
29
+ return message;
30
+ })
31
+ .join(issueSeparator);
32
+ const message = reason ? [prefix, reason].join(prefixSeparator) : prefix;
33
+ return new ValidationError(message, {
34
+ details: zError.errors,
35
+ });
36
+ }
37
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,KAAK,CAAC;AAG7B,MAAM,eAAgB,SAAQ,KAAK;IAGjC,YACE,OAAe,EACf,OAEC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QARjB;;;;;WAAwB;QAStB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAGD,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,GAA2B;QAC3C,OAAO,GAAG,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvC,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;SAEzB,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAE5B,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;SAED,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: Zod.ZodIssue[];\n\n constructor(\n message: string,\n options: {\n details: Zod.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: Array<string | number>): string {\n return arr.reduce<string>((acc, value) => {\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"]}
@@ -0,0 +1 @@
1
+ export { defineConfig, type Config, type PluginConfig } from "../config.js";
@@ -0,0 +1,2 @@
1
+ export { defineConfig } from "../config.js";
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/exports/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAC","sourcesContent":["export { defineConfig, type Config, type PluginConfig } from \"../config.js\";\n"]}
@@ -0,0 +1,4 @@
1
+ export { defineConfig, type Config, type PluginConfig } from "../config.js";
2
+ export * as logger from "../logger.js";
3
+ export { loadEnv } from "../utils/loadEnv.js";
4
+ export { VERSION } from "../version.js";
@@ -0,0 +1,5 @@
1
+ export { defineConfig } from "../config.js";
2
+ export * as logger from "../logger.js";
3
+ export { loadEnv } from "../utils/loadEnv.js";
4
+ export { VERSION } from "../version.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAC;AAE5E,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { defineConfig, type Config, type PluginConfig } from \"../config.js\";\n\nexport * as logger from \"../logger.js\";\n\nexport { loadEnv } from \"../utils/loadEnv.js\";\n\nexport { VERSION } from \"../version.js\";\n"]}
@@ -0,0 +1 @@
1
+ export { IPluginAbi } from "../IPlugin.js";
@@ -0,0 +1,2 @@
1
+ export { IPluginAbi } from "../IPlugin.js";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/exports/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { IPluginAbi } from \"../IPlugin.js\";\n"]}
@@ -0,0 +1,6 @@
1
+ export declare function success(...args: any[]): void;
2
+ export declare function info(...args: any[]): void;
3
+ export declare function log(...args: any[]): void;
4
+ export declare function warn(...args: any[]): void;
5
+ export declare function error(...args: any[]): void;
6
+ export declare function spinner(): import("ora").Ora;
@@ -0,0 +1,30 @@
1
+ import ora from "ora";
2
+ import pc from "picocolors";
3
+ import { format as utilFormat } from "util";
4
+ function format(args) {
5
+ return utilFormat(...args)
6
+ .split("\n")
7
+ .join("\n");
8
+ }
9
+ export function success(...args) {
10
+ console.log(pc.green(format(args)));
11
+ }
12
+ export function info(...args) {
13
+ console.info(pc.blue(format(args)));
14
+ }
15
+ export function log(...args) {
16
+ console.log(pc.white(format(args)));
17
+ }
18
+ export function warn(...args) {
19
+ console.warn(pc.yellow(format(args)));
20
+ }
21
+ export function error(...args) {
22
+ console.error(pc.red(format(args)));
23
+ }
24
+ export function spinner() {
25
+ return ora({
26
+ color: "yellow",
27
+ spinner: "dots",
28
+ });
29
+ }
30
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAE5C,SAAS,MAAM,CAAC,IAAW;IACzB,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;SACvB,KAAK,CAAC,IAAI,CAAC;SACX,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,IAAW;IACjC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAAW;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,IAAW;IACjC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAG,IAAW;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,GAAG,CAAC;QACT,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import ora from \"ora\";\nimport pc from \"picocolors\";\nimport { format as utilFormat } from \"util\";\n\nfunction format(args: any[]) {\n return utilFormat(...args)\n .split(\"\\n\")\n .join(\"\\n\");\n}\n\nexport function success(...args: any[]) {\n console.log(pc.green(format(args)));\n}\n\nexport function info(...args: any[]) {\n console.info(pc.blue(format(args)));\n}\n\nexport function log(...args: any[]) {\n console.log(pc.white(format(args)));\n}\n\nexport function warn(...args: any[]) {\n console.warn(pc.yellow(format(args)));\n}\n\nexport function error(...args: any[]) {\n console.error(pc.red(format(args)));\n}\n\nexport function spinner() {\n return ora({\n color: \"yellow\",\n spinner: \"dots\",\n });\n}\n"]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,6 @@
1
+ export type Evaluate<type> = {
2
+ [key in keyof type]: type[key];
3
+ } & unknown;
4
+ export type MaybeArray<T> = T | T[];
5
+ export type MaybePromise<T> = T | Promise<T>;
6
+ export type RequiredBy<TType, TKeys extends keyof TType> = Required<Pick<TType, TKeys>> & Omit<TType, TKeys>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["// Source: https://github.com/wevm/wagmi/blob/main/packages/cli/src/types.ts\nexport type Evaluate<type> = { [key in keyof type]: type[key] } & unknown;\n\nexport type MaybeArray<T> = T | T[];\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport type RequiredBy<TType, TKeys extends keyof TType> = Required<\n Pick<TType, TKeys>\n> &\n Omit<TType, TKeys>;\n"]}
@@ -0,0 +1,6 @@
1
+ type FindConfigParameters = {
2
+ config?: string;
3
+ root?: string;
4
+ };
5
+ export declare function findConfig(parameters?: FindConfigParameters): Promise<string | undefined>;
6
+ export {};
@@ -0,0 +1,21 @@
1
+ import { findUp } from "find-up";
2
+ import { default as fs } from "fs-extra";
3
+ import { resolve } from "pathe";
4
+ const configFiles = [
5
+ "plugingen.config.ts",
6
+ "plugingen.config.js",
7
+ "plugingen.config.mjs",
8
+ "plugingen.config.mts",
9
+ ];
10
+ export async function findConfig(parameters = {}) {
11
+ const { config, root } = parameters;
12
+ const rootDir = resolve(root || process.cwd());
13
+ if (config) {
14
+ const path = resolve(rootDir, config);
15
+ if (fs.pathExistsSync(path))
16
+ return path;
17
+ return;
18
+ }
19
+ return findUp(configFiles, { cwd: rootDir });
20
+ }
21
+ //# sourceMappingURL=findConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findConfig.js","sourceRoot":"","sources":["../../../src/utils/findConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,MAAM,WAAW,GAAG;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;CACvB,CAAC;AAeF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,aAAmC,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO;IACT,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["// source: https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/findConfig.ts\nimport { findUp } from \"find-up\";\nimport { default as fs } from \"fs-extra\";\nimport { resolve } from \"pathe\";\n\n// Do not reorder\n// In order of preference files are checked\nconst configFiles = [\n \"plugingen.config.ts\",\n \"plugingen.config.js\",\n \"plugingen.config.mjs\",\n \"plugingen.config.mts\",\n];\n\ntype FindConfigParameters = {\n /** Config file name */\n config?: string;\n /** Config file directory */\n root?: string;\n};\n\n/**\n * Resolves path to plugingen CLI config file.\n *\n * @param parameters - optional override parameters for finding the config object\n * @returns the path to the config file\n */\nexport async function findConfig(parameters: FindConfigParameters = {}) {\n const { config, root } = parameters;\n const rootDir = resolve(root || process.cwd());\n if (config) {\n const path = resolve(rootDir, config);\n if (fs.pathExistsSync(path)) return path;\n return;\n }\n return findUp(configFiles, { cwd: rootDir });\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function format(content: string): Promise<string>;
@@ -0,0 +1,10 @@
1
+ import prettier from "prettier";
2
+ export async function format(content) {
3
+ const config = await prettier.resolveConfig(process.cwd());
4
+ return prettier.format(content, {
5
+ parser: "typescript",
6
+ ...config,
7
+ plugins: [],
8
+ });
9
+ }
10
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;QAC9B,MAAM,EAAE,YAAY;QACpB,GAAG,MAAM;QACT,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC","sourcesContent":["// https://github.com/wevm/wagmi/blob/main/packages/cli/src/utils/format.ts\nimport prettier from \"prettier\";\n\nexport async function format(content: string) {\n const config = await prettier.resolveConfig(process.cwd());\n return prettier.format(content, {\n parser: \"typescript\",\n ...config,\n plugins: [],\n });\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function getIsUsingTypeScript(): Promise<boolean>;
@@ -0,0 +1,19 @@
1
+ import { findUp } from "find-up";
2
+ export async function getIsUsingTypeScript() {
3
+ try {
4
+ const cwd = process.cwd();
5
+ const tsconfig = await findUp("tsconfig.json", { cwd });
6
+ if (tsconfig)
7
+ return true;
8
+ const plugingenConfig = await findUp(["plugingenConfig.config.ts", "plugingenConfig.config.mts"], {
9
+ cwd,
10
+ });
11
+ if (plugingenConfig)
12
+ return true;
13
+ return false;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }
19
+ //# sourceMappingURL=isUsingTypescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isUsingTypescript.js","sourceRoot":"","sources":["../../../src/utils/isUsingTypescript.ts"],"names":[],"mappings":"AACA,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"]}
@@ -0,0 +1,4 @@
1
+ export declare function loadEnv(config?: {
2
+ mode?: string;
3
+ envDir?: string;
4
+ }): Record<string, string>;