@rocketh/doc 0.10.3 → 0.10.5

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/cli.cjs CHANGED
@@ -11,7 +11,7 @@ require('ethers');
11
11
  require('url');
12
12
 
13
13
  var name = "@rocketh/doc";
14
- var version = "0.10.2";
14
+ var version = "0.10.4";
15
15
  var description = "can generate doc from rocketh deployments and provided template";
16
16
  var publishConfig = {
17
17
  access: "public"
@@ -23,6 +23,11 @@ var types = "dist/index.d.ts";
23
23
  var bin = {
24
24
  "rocketh-doc": "dist/cli.cjs"
25
25
  };
26
+ var files = [
27
+ "dist",
28
+ "public",
29
+ "src"
30
+ ];
26
31
  var devDependencies = {
27
32
  "@types/node": "^20.12.7",
28
33
  pkgroll: "^2.0.2",
@@ -64,6 +69,7 @@ var pkg = {
64
69
  }
65
70
  },
66
71
  bin: bin,
72
+ files: files,
67
73
  devDependencies: devDependencies,
68
74
  peerDependencies: peerDependencies,
69
75
  dependencies: dependencies,
@@ -74,7 +80,7 @@ const commandName = pkg.name;
74
80
  const program = new commander.Command();
75
81
  program.name(commandName).description("generate doc from deployments and provided templates").version(pkg.version).option("-d, --deployments <value>", "folder where deployments are saved").option("-o, --output <value>", "folder where to generate docs").option("-t, --template <value>", "template used to generate docs").option("--except-suffix <suffix, suffix....>", "ignore contract that ends with the provided suffixes").requiredOption("-n, --network <value>", "network context to use").parse(process.argv);
76
82
  const options = program.opts();
77
- options.exceptSuffix = options.exceptSuffix.split(",");
78
- const resolvedConfig = rocketh.readAndResolveConfig(options);
83
+ options.exceptSuffix = options.exceptSuffix?.split(",") || [];
84
+ const resolvedConfig = rocketh.readAndResolveConfig({ ...options, ignoreMissingRPC: true });
79
85
  index.run(resolvedConfig, options);
80
86
  //# sourceMappingURL=cli.cjs.map
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","sources":["../src/cli.ts"],"sourcesContent":["#! /usr/bin/env node\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {RunOptions} from '.';\n\nconst commandName = pkg.name;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('generate doc from deployments and provided templates')\n\t.version(pkg.version)\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.option('-o, --output <value>', 'folder where to generate docs')\n\t.option('-t, --template <value>', 'template used to generate docs')\n\t.option('--except-suffix <suffix, suffix....>', 'ignore contract that ends with the provided suffixes')\n\t.requiredOption('-n, --network <value>', 'network context to use')\n\t.parse(process.argv);\n\nconst options = program.opts();\noptions.exceptSuffix = options.exceptSuffix.split(',');\nconst resolvedConfig = readAndResolveConfig(options as ConfigOptions);\nrun(resolvedConfig, options as RunOptions);\n"],"names":["Command","readAndResolveConfig","run"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAC,IAAI,CAAC;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,EAAC,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAc,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"cli.cjs","sources":["../src/cli.ts"],"sourcesContent":["#! /usr/bin/env node\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {RunOptions} from '.';\n\nconst commandName = pkg.name;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('generate doc from deployments and provided templates')\n\t.version(pkg.version)\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.option('-o, --output <value>', 'folder where to generate docs')\n\t.option('-t, --template <value>', 'template used to generate docs')\n\t.option('--except-suffix <suffix, suffix....>', 'ignore contract that ends with the provided suffixes')\n\t.requiredOption('-n, --network <value>', 'network context to use')\n\t.parse(process.argv);\n\nconst options = program.opts();\noptions.exceptSuffix = options.exceptSuffix?.split(',') || [];\nconst resolvedConfig = readAndResolveConfig({...(options as ConfigOptions), ignoreMissingRPC: true});\nrun(resolvedConfig, options as RunOptions);\n"],"names":["Command","readAndResolveConfig","run"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAC,IAAI,CAAC;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,EAAC,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
package/dist/cli.mjs CHANGED
@@ -8,7 +8,7 @@ import 'ethers';
8
8
  import 'url';
9
9
 
10
10
  var name = "@rocketh/doc";
11
- var version = "0.10.2";
11
+ var version = "0.10.4";
12
12
  var description = "can generate doc from rocketh deployments and provided template";
13
13
  var publishConfig = {
14
14
  access: "public"
@@ -20,6 +20,11 @@ var types = "dist/index.d.ts";
20
20
  var bin = {
21
21
  "rocketh-doc": "dist/cli.cjs"
22
22
  };
23
+ var files = [
24
+ "dist",
25
+ "public",
26
+ "src"
27
+ ];
23
28
  var devDependencies = {
24
29
  "@types/node": "^20.12.7",
25
30
  pkgroll: "^2.0.2",
@@ -61,6 +66,7 @@ var pkg = {
61
66
  }
62
67
  },
63
68
  bin: bin,
69
+ files: files,
64
70
  devDependencies: devDependencies,
65
71
  peerDependencies: peerDependencies,
66
72
  dependencies: dependencies,
@@ -71,7 +77,7 @@ const commandName = pkg.name;
71
77
  const program = new Command();
72
78
  program.name(commandName).description("generate doc from deployments and provided templates").version(pkg.version).option("-d, --deployments <value>", "folder where deployments are saved").option("-o, --output <value>", "folder where to generate docs").option("-t, --template <value>", "template used to generate docs").option("--except-suffix <suffix, suffix....>", "ignore contract that ends with the provided suffixes").requiredOption("-n, --network <value>", "network context to use").parse(process.argv);
73
79
  const options = program.opts();
74
- options.exceptSuffix = options.exceptSuffix.split(",");
75
- const resolvedConfig = readAndResolveConfig(options);
80
+ options.exceptSuffix = options.exceptSuffix?.split(",") || [];
81
+ const resolvedConfig = readAndResolveConfig({ ...options, ignoreMissingRPC: true });
76
82
  run(resolvedConfig, options);
77
83
  //# sourceMappingURL=cli.mjs.map
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/cli.ts"],"sourcesContent":["#! /usr/bin/env node\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {RunOptions} from '.';\n\nconst commandName = pkg.name;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('generate doc from deployments and provided templates')\n\t.version(pkg.version)\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.option('-o, --output <value>', 'folder where to generate docs')\n\t.option('-t, --template <value>', 'template used to generate docs')\n\t.option('--except-suffix <suffix, suffix....>', 'ignore contract that ends with the provided suffixes')\n\t.requiredOption('-n, --network <value>', 'network context to use')\n\t.parse(process.argv);\n\nconst options = program.opts();\noptions.exceptSuffix = options.exceptSuffix.split(',');\nconst resolvedConfig = readAndResolveConfig(options as ConfigOptions);\nrun(resolvedConfig, options as RunOptions);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAC7B,OAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA,WAAA,CAAA,sDAAA,CAAA,CAAA,OAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,CAAA,2BAAA,EAAA,oCAAA,CAAA,CAAA,MAAA,CAAA,sBAAA,EAAA,+BAAA,CAAA,CAAA,MAAA,CAAA,wBAAA,EAAA,gCAAA,CAAA,CAAA,MAAA,CAAA,sCAAA,EAAA,sDAAA,CAAA,CAAA,cAAA,CAAA,uBAAA,EAAA,wBAAA,CAAA,CAAA,KAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAC,CAAA;AAC7B,OAAA,CAAA,YAAA,GAAA,OAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA;AACA,MAAM,cAAc,GAAG,oBAAO,CAAA,OAAA,CAAA,CAAA;AAC9B,GAAG,CAAC,cAAG,EAAA,OAAA,CAAA"}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cli.ts"],"sourcesContent":["#! /usr/bin/env node\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {RunOptions} from '.';\n\nconst commandName = pkg.name;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('generate doc from deployments and provided templates')\n\t.version(pkg.version)\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.option('-o, --output <value>', 'folder where to generate docs')\n\t.option('-t, --template <value>', 'template used to generate docs')\n\t.option('--except-suffix <suffix, suffix....>', 'ignore contract that ends with the provided suffixes')\n\t.requiredOption('-n, --network <value>', 'network context to use')\n\t.parse(process.argv);\n\nconst options = program.opts();\noptions.exceptSuffix = options.exceptSuffix?.split(',') || [];\nconst resolvedConfig = readAndResolveConfig({...(options as ConfigOptions), ignoreMissingRPC: true});\nrun(resolvedConfig, options as RunOptions);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAC7B,OAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA,WAAA,CAAA,sDAAA,CAAA,CAAA,OAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,CAAA,2BAAA,EAAA,oCAAA,CAAA,CAAA,MAAA,CAAA,sBAAA,EAAA,+BAAA,CAAA,CAAA,MAAA,CAAA,wBAAA,EAAA,gCAAA,CAAA,CAAA,MAAA,CAAA,sCAAA,EAAA,sDAAA,CAAA,CAAA,cAAA,CAAA,uBAAA,EAAA,wBAAA,CAAA,CAAA,KAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAC,CAAA;AAC7B,OAAA,CAAA,YAAA,GAAA,OAAA,CAAA,YAAA,EAAA,KAAA,CAAA,GAAA,CAAA,IAAA,EAAA,CAAA;AACA,MAAM,cAAc,GAAG,oBAAO,CAAA,EAAA,GAAA,OAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;AAC9B,GAAG,CAAC,cAAG,EAAA,OAAA,CAAA"}
package/dist/index.cjs CHANGED
@@ -59,7 +59,7 @@ async function runFromFolder(folder, options) {
59
59
  }
60
60
  async function generateFromDeployments(deployments, options) {
61
61
  const outputFolder = options.output || "docs";
62
- const templateFilepath = options.template || path.join(__dirname$1, "default_templates/{{contracts}}.hbs");
62
+ const templateFilepath = options.template || path.join(__dirname$1, "../public/default_templates/{{contracts}}.hbs");
63
63
  const templateName = path.basename(templateFilepath, ".hbs");
64
64
  const templateContent = fs.readFileSync(templateFilepath, "utf-8");
65
65
  const template = Handlebars.compile(templateContent);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, 'default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":["__dirname","dirname","fileURLToPath","loadDeployments","Fragment","FunctionFragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":["__dirname","dirname","fileURLToPath","loadDeployments","Fragment","FunctionFragment"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -56,7 +56,7 @@ async function runFromFolder(folder, options) {
56
56
  }
57
57
  async function generateFromDeployments(deployments, options) {
58
58
  const outputFolder = options.output || "docs";
59
- const templateFilepath = options.template || path.join(__dirname, "default_templates/{{contracts}}.hbs");
59
+ const templateFilepath = options.template || path.join(__dirname, "../public/default_templates/{{contracts}}.hbs");
60
60
  const templateName = path.basename(templateFilepath, ".hbs");
61
61
  const templateContent = fs.readFileSync(templateFilepath, "utf-8");
62
62
  const template = Handlebars.compile(templateContent);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, 'default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport type {\n\tDeployment,\n\tResolvedConfig,\n\tNoticeUserDoc,\n\tArtifact,\n\tAbi,\n\tUnknownDeployments,\n\tAbiConstructor,\n\tAbiFunction,\n\tAbiError,\n\tAbiEvent,\n} from 'rocketh';\nimport {loadDeployments} from 'rocketh';\nimport Handlebars from 'handlebars';\nimport path from 'path';\nimport {Fragment, FunctionFragment} from 'ethers';\nimport {dirname} from 'path';\nimport {fileURLToPath} from 'url';\n\nimport {DocumentationData, ErrorDoc, EventDoc, MethodDoc, ParamDoc, ReturnDoc} from './types';\n\nexport * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type RunOptions = {template?: string; output?: string; exceptSuffix?: string[]};\n\nfunction filter(options: RunOptions, name: string): boolean {\n\tif (options.exceptSuffix) {\n\t\tfor (const suffix of options.exceptSuffix) {\n\t\t\tif (name.endsWith(suffix)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function run(config: ResolvedConfig, options: RunOptions) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name);\n\tif (!chainId) {\n\t\tthrow new Error(`no chainId found for ${config.network.name}`);\n\t}\n\tgenerate({deployments}, options);\n}\n\nexport async function generate(\n\t{deployments}: {deployments: UnknownDeployments; chainId?: string},\n\toptions: RunOptions\n) {\n\tif (!deployments || Object.keys(deployments).length === 0) {\n\t\tconsole.log(`no deployments to export`);\n\t\treturn;\n\t}\n\n\tconst toDocument: UnknownDeployments = {};\n\tfor (const name of Object.keys(deployments)) {\n\t\tif (!filter(options, name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst deployment = deployments[name];\n\t\ttoDocument[name] = deployment;\n\t}\n\n\treturn generateFromDeployments(toDocument, options);\n}\n\nexport async function runFromFolder(folder: string, options: RunOptions) {\n\tconst files = fs.readdirSync(folder);\n\tconst deployments: UnknownDeployments = {};\n\tfor (const file of files) {\n\t\tif (file.endsWith('.json')) {\n\t\t\tconst name = path.basename(file, '.json');\n\t\t\tif (!filter(options, name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n\t\t\tconst deployment = JSON.parse(deploymentString);\n\t\t\tdeployments[name] = deployment;\n\t\t}\n\t}\n\n\treturn generateFromDeployments(deployments, options);\n}\n\n// export async function runFromArtifacts(folder: string, options: {template?: string; outputFolder?: string}) {\n// \tconst files = fs.readdirSync(folder);\n// \tconst deployments: UnknownDeployments = {};\n// \tfor (const file of files) {\n// \t\tif (file.endsWith('.json')) {\n// \t\t\tconst deploymentString = fs.readFileSync(path.join(folder, file), 'utf-8');\n// \t\t\tconst deployment = JSON.parse(deploymentString);\n// \t\t\tdeployments[path.basename(file, '.json')] = deployment;\n// \t\t}\n// \t}\n\n// \treturn generateFromDeployments(deployments, options);\n// }\n\nexport async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {\n\tconst outputFolder = options.output || 'docs';\n\tconst templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');\n\tconst templateName = path.basename(templateFilepath, '.hbs');\n\tconst templateContent = fs.readFileSync(templateFilepath, 'utf-8');\n\tconst template = Handlebars.compile(templateContent);\n\n\tconst deploymentsList: DocumentationData[] = [];\n\tfor (const name of Object.keys(deployments)) {\n\t\tconst deployment = deployments[name];\n\t\tconst data = generateDocumentationData(name, deployment);\n\t\tdeploymentsList.push(data);\n\t}\n\n\tfs.emptyDirSync(outputFolder);\n\tif (templateName === '{{contracts}}') {\n\t\tfor (const deployment of deploymentsList) {\n\t\t\tconst generated = template(deployment);\n\t\t\tif (generated.trim() !== '') {\n\t\t\t\tfs.writeFileSync(path.join(outputFolder, deployment.name + '.md'), generated);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst generated = template({contracts: deploymentsList});\n\t\tfs.writeFileSync(path.join(outputFolder, templateName + '.md'), generated);\n\t}\n}\n\nexport function generateDocumentationData(\n\tname: string,\n\tdeploymentOrArfifact: Partial<Deployment<Abi>> & Artifact<Abi>\n): DocumentationData {\n\tconst abi = deploymentOrArfifact.abi;\n\tconst abiMap = new Map<string, AbiConstructor | AbiError | AbiEvent | AbiFunction>();\n\tfor (const abiElement of abi) {\n\t\tswitch (abiElement.type) {\n\t\t\tcase 'constructor':\n\t\t\t\tabiMap.set('constructor', abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'event':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t\tcase 'function':\n\t\t\t\tabiMap.set(abiElement.name, abiElement);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst errors: ErrorDoc[] = [];\n\tconst events: EventDoc[] = [];\n\tconst methods: MethodDoc[] = [];\n\n\tif (deploymentOrArfifact.userdoc?.errors) {\n\t\t// we loop only through userdoc\n\t\tfor (const errorSignature of Object.keys(deploymentOrArfifact.userdoc.errors)) {\n\t\t\tconst errorName =\n\t\t\t\terrorSignature.indexOf('(') > 0 ? errorSignature.slice(0, errorSignature.indexOf('(')) : errorSignature;\n\n\t\t\tconst abi = abiMap.get(errorName) as AbiError;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst errorFromUserDoc = deploymentOrArfifact.userdoc.errors[errorSignature];\n\t\t\tconst errorFromDevDoc = deploymentOrArfifact.devdoc?.errors?.[errorSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (errorFromDevDoc) {\n\t\t\t\tfor (const doc of errorFromDevDoc) {\n\t\t\t\t\tif (doc.params) {\n\t\t\t\t\t\tfor (const paramName of paramNames || Object.keys(doc.params)) {\n\t\t\t\t\t\t\tparams.push({name: paramName, description: doc.params[paramName]});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// TODO what if same name\n\t\t\t\t\t\t// TODO what is the array for ? (look at solidity doc)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst notice: string[] = [];\n\t\t\tif (errorFromUserDoc) {\n\t\t\t\tfor (const doc of errorFromUserDoc) {\n\t\t\t\t\tif (doc.notice) {\n\t\t\t\t\t\tconst notes = doc.notice.split('\\\\');\n\t\t\t\t\t\tfor (const note of notes) {\n\t\t\t\t\t\t\tif (note != '') {\n\t\t\t\t\t\t\t\tnotice.push(note);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terrors.push({\n\t\t\t\tname: errorName,\n\t\t\t\tsignature: errorSignature,\n\t\t\t\tabi: abi,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.events) {\n\t\t// we loop only through userdoc\n\t\tfor (const eventSignature of Object.keys(deploymentOrArfifact.userdoc.events)) {\n\t\t\tconst eventName =\n\t\t\t\teventSignature.indexOf('(') > 0 ? eventSignature.slice(0, eventSignature.indexOf('(')) : eventSignature;\n\n\t\t\tconst abi = abiMap.get(eventName) as AbiEvent;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi.inputs.map((v, index) => v.name || `_${index}`);\n\n\t\t\tconst eventFromUserDoc = deploymentOrArfifact.userdoc.events[eventSignature];\n\t\t\tconst eventFromDevDoc = deploymentOrArfifact.devdoc?.events?.[eventSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (eventFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(eventFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: eventFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.push({\n\t\t\t\tname: eventName,\n\t\t\t\tsignature: eventSignature,\n\t\t\t\tabi: abi as AbiEvent,\n\t\t\t\tfullFormat,\n\t\t\t\tnotice: eventFromUserDoc.notice,\n\t\t\t\tparams,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (deploymentOrArfifact.userdoc?.methods) {\n\t\t// we loop only through userdoc\n\t\tfor (const methodSignature of Object.keys(deploymentOrArfifact.userdoc.methods)) {\n\t\t\tconst methodName =\n\t\t\t\tmethodSignature.indexOf('(') > 0 ? methodSignature.slice(0, methodSignature.indexOf('(')) : methodSignature;\n\n\t\t\tconst abi = abiMap.get(methodName) as AbiFunction | AbiConstructor;\n\t\t\tif (!abi) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fullFormat = Fragment.from(abi).format('full');\n\t\t\tconst paramNames = abi ? abi.inputs.map((v, index) => v.name || `_${index}`) : undefined;\n\t\t\tconst returnNames = abi && 'outputs' in abi ? abi.outputs.map((v, index) => v.name || `_${index}`) : undefined;\n\n\t\t\tconst methodFromUserDoc = deploymentOrArfifact.userdoc.methods[methodSignature];\n\t\t\tconst methodFromDevDoc = deploymentOrArfifact.devdoc?.methods?.[methodSignature];\n\t\t\tconst params: ParamDoc[] = [];\n\t\t\tif (methodFromDevDoc?.params) {\n\t\t\t\tfor (const paramName of paramNames || Object.keys(methodFromDevDoc.params)) {\n\t\t\t\t\tparams.push({name: paramName, description: methodFromDevDoc.params[paramName]});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst returns: ReturnDoc[] = [];\n\t\t\tif (methodFromDevDoc?.returns) {\n\t\t\t\tfor (const returnName of returnNames || Object.keys(methodFromDevDoc.returns)) {\n\t\t\t\t\treturns.push({name: returnName, description: methodFromDevDoc.returns[returnName]});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (methodName === 'constructor') {\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'constructor',\n\t\t\t\t\tname: 'constructor',\n\t\t\t\t\tabi: abi as AbiConstructor,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst selector = FunctionFragment.from(abi).selector as `0x${string}`;\n\t\t\t\tmethods.push({\n\t\t\t\t\ttype: 'function',\n\t\t\t\t\tname: methodName,\n\t\t\t\t\tabi: abi as AbiFunction,\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tfullFormat,\n\t\t\t\t\tbytes4: selector,\n\t\t\t\t\tnotice: methodFromUserDoc.notice,\n\t\t\t\t\tparams,\n\t\t\t\t\treturns,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data: DocumentationData = {\n\t\tname,\n\t\taddress: deploymentOrArfifact.address,\n\t\tabi,\n\t\tauthor: deploymentOrArfifact.devdoc?.author,\n\t\ttitle: deploymentOrArfifact.devdoc?.title,\n\t\tnotice: deploymentOrArfifact.userdoc?.notice,\n\t\terrors,\n\t\tevents,\n\t\tmethods,\n\t};\n\treturn data;\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocketh/doc",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "can generate doc from rocketh deployments and provided template",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,15 +22,20 @@
22
22
  "bin": {
23
23
  "rocketh-doc": "dist/cli.cjs"
24
24
  },
25
+ "files": [
26
+ "dist",
27
+ "public",
28
+ "src"
29
+ ],
25
30
  "devDependencies": {
26
31
  "@types/node": "^20.12.7",
27
32
  "pkgroll": "^2.0.2",
28
33
  "rimraf": "^5.0.5",
29
34
  "typescript": "^5.4.5",
30
- "rocketh": "0.10.11"
35
+ "rocketh": "0.10.13"
31
36
  },
32
37
  "peerDependencies": {
33
- "rocketh": "0.10.11"
38
+ "rocketh": "0.10.13"
34
39
  },
35
40
  "dependencies": {
36
41
  "@types/fs-extra": "^11.0.4",
package/src/cli.ts CHANGED
@@ -21,6 +21,6 @@ program
21
21
  .parse(process.argv);
22
22
 
23
23
  const options = program.opts();
24
- options.exceptSuffix = options.exceptSuffix.split(',');
25
- const resolvedConfig = readAndResolveConfig(options as ConfigOptions);
24
+ options.exceptSuffix = options.exceptSuffix?.split(',') || [];
25
+ const resolvedConfig = readAndResolveConfig({...(options as ConfigOptions), ignoreMissingRPC: true});
26
26
  run(resolvedConfig, options as RunOptions);
package/src/index.ts CHANGED
@@ -101,7 +101,7 @@ export async function runFromFolder(folder: string, options: RunOptions) {
101
101
 
102
102
  export async function generateFromDeployments(deployments: UnknownDeployments, options: RunOptions) {
103
103
  const outputFolder = options.output || 'docs';
104
- const templateFilepath = options.template || path.join(__dirname, 'default_templates/{{contracts}}.hbs');
104
+ const templateFilepath = options.template || path.join(__dirname, '../public/default_templates/{{contracts}}.hbs');
105
105
  const templateName = path.basename(templateFilepath, '.hbs');
106
106
  const templateContent = fs.readFileSync(templateFilepath, 'utf-8');
107
107
  const template = Handlebars.compile(templateContent);
package/.prettierignore DELETED
@@ -1,4 +0,0 @@
1
- dist/
2
- node_modules/
3
- package.json
4
- *.hbs
package/.prettierrc DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "useTabs": true,
3
- "singleQuote": true,
4
-
5
- "printWidth": 120,
6
- "bracketSpacing": false
7
- }
package/CHANGELOG.md DELETED
@@ -1,23 +0,0 @@
1
- # @rocketh/doc
2
-
3
- ## 0.10.3
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies
8
- - rocketh@0.10.11
9
-
10
- ## 0.10.2
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies
15
- - rocketh@0.10.10
16
-
17
- ## 0.10.1
18
-
19
- ### Patch Changes
20
-
21
- - use pkgroll and @rocketh namespace
22
- - Updated dependencies
23
- - rocketh@0.10.9
package/tsconfig.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "moduleResolution": "Node",
4
- "lib": ["ES2020", "dom"],
5
- "target": "ES2020",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "sourceMap": true,
9
- "strict": true,
10
- "esModuleInterop": true,
11
- "skipLibCheck": true,
12
- "resolveJsonModule": true,
13
- "module": "ES2020"
14
- }
15
- }