@appium/docutils 0.1.6 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +2 -5
  2. package/build/lib/build/mkdocs.d.ts +58 -0
  3. package/build/lib/build/mkdocs.d.ts.map +1 -0
  4. package/build/lib/build/mkdocs.js +80 -0
  5. package/build/lib/build/mkdocs.js.map +1 -0
  6. package/build/lib/build/typedoc.d.ts +55 -0
  7. package/build/lib/build/typedoc.d.ts.map +1 -0
  8. package/build/lib/build/typedoc.js +120 -0
  9. package/build/lib/build/typedoc.js.map +1 -0
  10. package/build/lib/build-api.d.ts +18 -0
  11. package/build/lib/build-api.d.ts.map +1 -0
  12. package/build/lib/build-api.js +75 -0
  13. package/build/lib/build-api.js.map +1 -0
  14. package/build/lib/build.d.ts +21 -0
  15. package/build/lib/build.d.ts.map +1 -0
  16. package/build/lib/build.js +71 -0
  17. package/build/lib/build.js.map +1 -0
  18. package/build/lib/builder/deploy.d.ts +89 -0
  19. package/build/lib/builder/deploy.d.ts.map +1 -0
  20. package/build/lib/builder/deploy.js +105 -0
  21. package/build/lib/builder/deploy.js.map +1 -0
  22. package/build/lib/builder/index.d.ts +5 -0
  23. package/build/lib/builder/index.d.ts.map +1 -0
  24. package/build/lib/builder/index.js +21 -0
  25. package/build/lib/builder/index.js.map +1 -0
  26. package/build/lib/builder/nav.d.ts +81 -0
  27. package/build/lib/builder/nav.d.ts.map +1 -0
  28. package/build/lib/builder/nav.js +280 -0
  29. package/build/lib/builder/nav.js.map +1 -0
  30. package/build/lib/builder/reference.d.ts +57 -0
  31. package/build/lib/builder/reference.d.ts.map +1 -0
  32. package/build/lib/builder/reference.js +129 -0
  33. package/build/lib/builder/reference.js.map +1 -0
  34. package/build/lib/builder/site.d.ts +55 -0
  35. package/build/lib/builder/site.d.ts.map +1 -0
  36. package/build/lib/builder/site.js +81 -0
  37. package/build/lib/builder/site.js.map +1 -0
  38. package/build/lib/cli/command/build.d.ts +178 -0
  39. package/build/lib/cli/command/build.d.ts.map +1 -0
  40. package/build/lib/cli/command/build.js +223 -0
  41. package/build/lib/cli/command/build.js.map +1 -0
  42. package/build/lib/cli/command/deploy.d.ts +1 -0
  43. package/build/lib/cli/command/deploy.d.ts.map +1 -0
  44. package/build/lib/cli/command/deploy.js +2 -0
  45. package/build/lib/cli/command/deploy.js.map +1 -0
  46. package/build/lib/cli/command/index.d.ts +4 -0
  47. package/build/lib/cli/command/index.d.ts.map +1 -0
  48. package/build/lib/cli/command/index.js +13 -0
  49. package/build/lib/cli/command/index.js.map +1 -0
  50. package/build/lib/cli/command/init.d.ts +143 -0
  51. package/build/lib/cli/command/init.d.ts.map +1 -0
  52. package/build/lib/cli/command/init.js +164 -0
  53. package/build/lib/cli/command/init.js.map +1 -0
  54. package/build/lib/cli/command/validate.d.ts +76 -0
  55. package/build/lib/cli/command/validate.d.ts.map +1 -0
  56. package/build/lib/cli/command/validate.js +115 -0
  57. package/build/lib/cli/command/validate.js.map +1 -0
  58. package/build/lib/cli/command-init.d.ts +143 -0
  59. package/build/lib/cli/command-init.d.ts.map +1 -0
  60. package/build/lib/cli/command-init.js +164 -0
  61. package/build/lib/cli/command-init.js.map +1 -0
  62. package/build/lib/cli/command-validate.d.ts +52 -0
  63. package/build/lib/cli/command-validate.d.ts.map +1 -0
  64. package/build/lib/cli/command-validate.js +66 -0
  65. package/build/lib/cli/command-validate.js.map +1 -0
  66. package/build/lib/cli/config.d.ts +28 -0
  67. package/build/lib/cli/config.d.ts.map +1 -0
  68. package/build/lib/cli/config.js +114 -0
  69. package/build/lib/cli/config.js.map +1 -0
  70. package/build/lib/cli/index.d.ts +13 -0
  71. package/build/lib/cli/index.d.ts.map +1 -0
  72. package/build/lib/cli/index.js +91 -0
  73. package/build/lib/cli/index.js.map +1 -0
  74. package/build/lib/cli/init.d.ts +143 -0
  75. package/build/lib/cli/init.d.ts.map +1 -0
  76. package/build/lib/cli/init.js +164 -0
  77. package/build/lib/cli/init.js.map +1 -0
  78. package/build/lib/cli/options.d.ts +1 -0
  79. package/build/lib/cli/options.d.ts.map +1 -0
  80. package/build/lib/cli/options.js +2 -0
  81. package/build/lib/cli/options.js.map +1 -0
  82. package/build/lib/cli/validate.d.ts +1 -0
  83. package/build/lib/cli/validate.d.ts.map +1 -0
  84. package/build/lib/cli/validate.js +2 -0
  85. package/build/lib/cli/validate.js.map +1 -0
  86. package/build/lib/cli.d.ts +10 -0
  87. package/build/lib/cli.d.ts.map +1 -0
  88. package/build/lib/cli.js +328 -0
  89. package/build/lib/cli.js.map +1 -0
  90. package/build/lib/constants.d.ts +125 -0
  91. package/build/lib/constants.d.ts.map +1 -0
  92. package/build/lib/constants.js +133 -0
  93. package/build/lib/constants.js.map +1 -0
  94. package/build/lib/error.d.ts +3 -0
  95. package/build/lib/error.d.ts.map +1 -0
  96. package/build/lib/error.js +7 -0
  97. package/build/lib/error.js.map +1 -0
  98. package/build/lib/fs.d.ts +142 -0
  99. package/build/lib/fs.d.ts.map +1 -0
  100. package/build/lib/fs.js +237 -0
  101. package/build/lib/fs.js.map +1 -0
  102. package/build/lib/index.d.ts +5 -2
  103. package/build/lib/index.d.ts.map +1 -1
  104. package/build/lib/index.js +4 -1
  105. package/build/lib/index.js.map +1 -1
  106. package/build/lib/init-task.d.ts +49 -0
  107. package/build/lib/init-task.d.ts.map +1 -0
  108. package/build/lib/init-task.js +95 -0
  109. package/build/lib/init-task.js.map +1 -0
  110. package/build/lib/init.d.ts +202 -0
  111. package/build/lib/init.d.ts.map +1 -0
  112. package/build/lib/init.js +225 -0
  113. package/build/lib/init.js.map +1 -0
  114. package/build/lib/io.d.ts +1 -0
  115. package/build/lib/io.d.ts.map +1 -0
  116. package/build/lib/io.js +2 -0
  117. package/build/lib/io.js.map +1 -0
  118. package/build/lib/logger.d.ts +17 -2
  119. package/build/lib/logger.d.ts.map +1 -1
  120. package/build/lib/logger.js +187 -2
  121. package/build/lib/logger.js.map +1 -1
  122. package/build/lib/mike.d.ts +3 -0
  123. package/build/lib/mike.d.ts.map +1 -1
  124. package/build/lib/mike.js +4 -0
  125. package/build/lib/mike.js.map +1 -1
  126. package/build/lib/mkdocs.d.ts +51 -12
  127. package/build/lib/mkdocs.d.ts.map +1 -1
  128. package/build/lib/mkdocs.js +64 -32
  129. package/build/lib/mkdocs.js.map +1 -1
  130. package/build/lib/model.d.ts +80 -0
  131. package/build/lib/model.d.ts.map +1 -0
  132. package/build/lib/model.js +8 -0
  133. package/build/lib/model.js.map +1 -0
  134. package/build/lib/nav.d.ts +47 -0
  135. package/build/lib/nav.d.ts.map +1 -0
  136. package/build/lib/nav.js +132 -0
  137. package/build/lib/nav.js.map +1 -0
  138. package/build/lib/scaffold.d.ts +95 -0
  139. package/build/lib/scaffold.d.ts.map +1 -0
  140. package/build/lib/scaffold.js +103 -0
  141. package/build/lib/scaffold.js.map +1 -0
  142. package/build/lib/test.d.ts +9 -0
  143. package/build/lib/test.d.ts.map +1 -0
  144. package/build/lib/test.js +2 -0
  145. package/build/lib/test.js.map +1 -0
  146. package/build/lib/typedoc.d.ts +55 -0
  147. package/build/lib/typedoc.d.ts.map +1 -0
  148. package/build/lib/typedoc.js +122 -0
  149. package/build/lib/typedoc.js.map +1 -0
  150. package/build/lib/types.d.ts +52 -0
  151. package/build/lib/types.d.ts.map +1 -0
  152. package/build/lib/types.js +7 -0
  153. package/build/lib/types.js.map +1 -0
  154. package/build/lib/util.d.ts +42 -0
  155. package/build/lib/util.d.ts.map +1 -0
  156. package/build/lib/util.js +56 -0
  157. package/build/lib/util.js.map +1 -0
  158. package/build/lib/validate.d.ts +218 -0
  159. package/build/lib/validate.d.ts.map +1 -0
  160. package/build/lib/validate.js +501 -0
  161. package/build/lib/validate.js.map +1 -0
  162. package/build/lib/validation/base-validator.d.ts +218 -0
  163. package/build/lib/validation/base-validator.d.ts.map +1 -0
  164. package/build/lib/validation/base-validator.js +453 -0
  165. package/build/lib/validation/base-validator.js.map +1 -0
  166. package/build/lib/validation/mkdocs-validator.d.ts +5 -0
  167. package/build/lib/validation/mkdocs-validator.d.ts.map +1 -0
  168. package/build/lib/validation/mkdocs-validator.js +54 -0
  169. package/build/lib/validation/mkdocs-validator.js.map +1 -0
  170. package/build/lib/validation/python-validator.d.ts +1 -0
  171. package/build/lib/validation/python-validator.d.ts.map +1 -0
  172. package/build/lib/validation/python-validator.js +2 -0
  173. package/build/lib/validation/python-validator.js.map +1 -0
  174. package/build/lib/validation/python.d.ts +1 -0
  175. package/build/lib/validation/python.d.ts.map +1 -0
  176. package/build/lib/validation/python.js +2 -0
  177. package/build/lib/validation/python.js.map +1 -0
  178. package/build/lib/validation/validate.d.ts +221 -0
  179. package/build/lib/validation/validate.d.ts.map +1 -0
  180. package/build/lib/validation/validate.js +508 -0
  181. package/build/lib/validation/validate.js.map +1 -0
  182. package/build/lib/validation/validator.d.ts +220 -0
  183. package/build/lib/validation/validator.d.ts.map +1 -0
  184. package/build/lib/validation/validator.js +470 -0
  185. package/build/lib/validation/validator.js.map +1 -0
  186. package/lib/builder/deploy.ts +223 -0
  187. package/lib/builder/index.ts +4 -0
  188. package/lib/builder/nav.ts +399 -0
  189. package/lib/builder/reference.ts +191 -0
  190. package/lib/builder/site.ts +143 -0
  191. package/lib/cli/command/build.ts +229 -0
  192. package/lib/cli/command/index.ts +3 -0
  193. package/lib/cli/command/init.ts +166 -0
  194. package/lib/cli/command/validate.ts +122 -0
  195. package/lib/cli/config.ts +89 -0
  196. package/lib/cli/index.ts +88 -0
  197. package/lib/constants.ts +150 -0
  198. package/lib/error.ts +1 -0
  199. package/lib/fs.ts +274 -0
  200. package/lib/index.ts +5 -0
  201. package/lib/init.ts +319 -0
  202. package/lib/logger.ts +198 -0
  203. package/lib/mike.js +4 -0
  204. package/lib/model.ts +92 -0
  205. package/lib/scaffold.ts +225 -0
  206. package/lib/util.ts +76 -0
  207. package/lib/validate.ts +728 -0
  208. package/package.json +38 -6
  209. package/requirements.txt +4 -0
  210. package/tsconfig.json +2 -1
  211. package/build/tsconfig.tsbuildinfo +0 -1
  212. package/lib/index.js +0 -2
  213. package/lib/logger.js +0 -3
  214. package/lib/mkdocs.js +0 -43
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * Builds reference documentation via TypeDoc. The output is _markdown_, intended to be imported into MkDocs.
4
+ *
5
+ * @module
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildReferenceDocs = exports.runTypedoc = void 0;
12
+ const support_1 = require("@appium/support");
13
+ const glob_1 = __importDefault(require("glob"));
14
+ const lodash_1 = __importDefault(require("lodash"));
15
+ const node_path_1 = __importDefault(require("node:path"));
16
+ const typedoc_1 = require("typedoc");
17
+ const constants_1 = require("../constants");
18
+ const error_1 = require("../error");
19
+ const fs_1 = require("../fs");
20
+ const logger_1 = __importDefault(require("../logger"));
21
+ const util_1 = require("../util");
22
+ const log = logger_1.default.withTag('builder:reference');
23
+ /**
24
+ * Replaces TypeDoc's homebrew "glob" implementation with a real one
25
+ *
26
+ * This cannot be done via `require('typedoc')` or `import` due to the file being excluded
27
+ * from the export map in its `package.json`.
28
+ * @see https://github.com/TypeStrong/typedoc/issues/2151
29
+ */
30
+ const monkeyPatchTypedoc = lodash_1.default.once(async () => {
31
+ const typedocDir = await (0, fs_1.findPkgDir)(require.resolve('typedoc'));
32
+ if (!typedocDir) {
33
+ throw new error_1.DocutilsError('Could not find TypeDoc package directory; is it installed?');
34
+ }
35
+ const tdFs = require(node_path_1.default.join(typedocDir, 'dist', 'lib', 'utils', 'fs.js'));
36
+ tdFs.glob = glob_1.default.sync;
37
+ });
38
+ /**
39
+ * Executes TypeDoc _in the current process_
40
+ *
41
+ * You will probably want to run `updateNav()` after this.
42
+ *
43
+ * @privateRemarks Monkeypatches TypeDoc's homebrew "glob" implementation because it is broken
44
+ * @parma typeDocJsonPath - Path to `typedoc.json`
45
+ * @param opts - TypeDoc options
46
+ */
47
+ async function runTypedoc(typeDocJsonPath, opts) {
48
+ await monkeyPatchTypedoc();
49
+ log.debug('Monkeypatched TypeDoc');
50
+ const args = (0, util_1.argify)(opts);
51
+ log.debug('TypeDoc args:', args);
52
+ const app = new typedoc_1.Application();
53
+ app.options.setValue('plugin', [
54
+ 'typedoc-plugin-markdown',
55
+ 'typedoc-plugin-resolve-crossmodule-references',
56
+ '@appium/typedoc-plugin-appium',
57
+ ]);
58
+ app.options.addReader(new typedoc_1.TypeDocReader());
59
+ app.options.addReader(new typedoc_1.ArgumentsReader(100, args));
60
+ app.bootstrap({ options: node_path_1.default.dirname(typeDocJsonPath) });
61
+ const out = app.options.getValue('out');
62
+ const project = app.convert();
63
+ if (project) {
64
+ return await app.generateDocs(project, out);
65
+ }
66
+ throw new error_1.DocutilsError('TypeDoc found nothing to document. Is your package empty?');
67
+ }
68
+ exports.runTypedoc = runTypedoc;
69
+ /**
70
+ * Mapping of whatever our log level is to whatever TypeDoc's should be.
71
+ *
72
+ * TypeDoc's "info" is too verbose for our needs, and it's our default, so
73
+ * we map it to "warn".
74
+ */
75
+ const TypeDocLogLevelMap = {
76
+ debug: 'Verbose',
77
+ info: 'Warn',
78
+ warn: 'Warn',
79
+ error: 'Error',
80
+ };
81
+ /**
82
+ * Build reference documentation via TypeDoc
83
+ * @param opts - Options
84
+ */
85
+ async function buildReferenceDocs({ typedocJson: typeDocJsonPath, cwd = process.cwd(), tsconfigJson: tsconfig, logLevel = constants_1.DEFAULT_LOG_LEVEL, title, } = {}) {
86
+ const stop = (0, util_1.stopwatch)('buildReferenceDocs');
87
+ typeDocJsonPath = typeDocJsonPath
88
+ ? node_path_1.default.resolve(cwd, typeDocJsonPath)
89
+ : await (0, fs_1.findTypeDocJsonPath)(cwd);
90
+ if (!typeDocJsonPath) {
91
+ throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_TYPEDOC_JSON} from ${cwd}; run "${constants_1.NAME_BIN}" to create it`);
92
+ }
93
+ const pkgRoot = support_1.fs.findRoot(cwd);
94
+ const relativePath = (0, util_1.relative)(cwd);
95
+ const relativeTypeDocJsonPath = relativePath(typeDocJsonPath);
96
+ log.debug(`Using ${relativeTypeDocJsonPath} as typedoc.json`);
97
+ let typeDocJson;
98
+ // we only need typedoc.json to make sure we have a custom "out" path.
99
+ try {
100
+ typeDocJson = (0, fs_1.readTypedocJson)(typeDocJsonPath);
101
+ log.debug('Contents of %s: %O', relativeTypeDocJsonPath, typeDocJson);
102
+ }
103
+ catch (err) {
104
+ log.error(err);
105
+ throw new error_1.DocutilsError(`Could not read ${relativeTypeDocJsonPath}; run "${constants_1.NAME_BIN} init" to create it`);
106
+ }
107
+ // if for some reason "out" is not in typedoc.json, we want to use our default path.
108
+ // otherwise, typedoc's default behavior is to write to the "docs" dir, which is the same dir that
109
+ // we use (by default) as a source dir for the mkdocs site--which might contain files under vcs.
110
+ let out;
111
+ if (typeDocJson.out) {
112
+ log.debug(`Found "out" option in ${constants_1.NAME_TYPEDOC_JSON}: ${typeDocJson.out}`);
113
+ }
114
+ else {
115
+ out = node_path_1.default.relative(node_path_1.default.dirname(typeDocJsonPath), node_path_1.default.join(pkgRoot, constants_1.DEFAULT_REL_TYPEDOC_OUT_PATH));
116
+ log.debug('Setting "out" option to %s', out);
117
+ }
118
+ const extraTypedocOpts = lodash_1.default.pickBy({ tsconfig, name: title, out, logLevel: TypeDocLogLevelMap[logLevel] }, Boolean);
119
+ try {
120
+ await runTypedoc(typeDocJsonPath, extraTypedocOpts);
121
+ let finalOut = (typeDocJson.out ?? out);
122
+ log.success('Reference docs built at %s (%dms)', node_path_1.default.isAbsolute(finalOut) ? relativePath(finalOut) : finalOut, stop());
123
+ }
124
+ catch (err) {
125
+ log.error(err);
126
+ }
127
+ }
128
+ exports.buildReferenceDocs = buildReferenceDocs;
129
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../lib/builder/reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Runs `mkdocs`, pulling in reference markdown from TypeDoc and any other documentation from the
3
+ * `docs_dir` directory (as configured in `mkdocs.yml`).
4
+ *
5
+ * @module
6
+ */
7
+ import { TeenProcessExecOptions } from 'teen_process';
8
+ import { TeenProcessSubprocessStartOpts } from '../util';
9
+ /**
10
+ * Runs `mkdocs build` or `mkdocs serve`
11
+ * @param opts
12
+ */
13
+ export declare function buildSite({ mkdocsYml: mkDocsYmlPath, siteDir, theme, cwd, serve, serveOpts, execOpts, }?: BuildMkDocsOpts): Promise<void>;
14
+ /**
15
+ * Options for {@linkcode buildSite}.
16
+ */
17
+ export interface BuildMkDocsOpts {
18
+ /**
19
+ * Path to `mkdocs.yml`
20
+ */
21
+ mkdocsYml?: string;
22
+ /**
23
+ * Path to output directory
24
+ */
25
+ siteDir?: string;
26
+ /**
27
+ * MkDocs theme to use
28
+ * @defaultValue 'mkdocs'
29
+ */
30
+ theme?: string;
31
+ /**
32
+ * Current working directory
33
+ * @defaultValue `process.cwd()`
34
+ */
35
+ cwd?: string;
36
+ /**
37
+ * Path to `package.json`
38
+ *
39
+ * Used to find `mkdocs.yml` if unspecified.
40
+ */
41
+ packageJson?: string;
42
+ /**
43
+ * If `true`, run `mkdocs serve` instead of `mkdocs build`
44
+ */
45
+ serve?: boolean;
46
+ /**
47
+ * Extra options for {@linkcode teen_process.exec}
48
+ */
49
+ execOpts?: TeenProcessExecOptions;
50
+ /**
51
+ * Extra options for {@linkcode teen_process.Subprocess.start}
52
+ */
53
+ serveOpts?: TeenProcessSubprocessStartOpts;
54
+ }
55
+ //# sourceMappingURL=site.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../lib/builder/site.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAmB,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAKtE,OAAO,EAAsB,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAuC5E;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAC9B,SAAS,EAAE,aAAa,EACxB,OAAO,EACP,KAAmB,EACnB,GAAmB,EACnB,KAAa,EACb,SAAS,EACT,QAAQ,GACT,GAAE,eAAoB,iBA6BtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * Runs `mkdocs`, pulling in reference markdown from TypeDoc and any other documentation from the
4
+ * `docs_dir` directory (as configured in `mkdocs.yml`).
5
+ *
6
+ * @module
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildSite = void 0;
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const teen_process_1 = require("teen_process");
15
+ const constants_1 = require("../constants");
16
+ const error_1 = require("../error");
17
+ const fs_1 = require("../fs");
18
+ const logger_1 = __importDefault(require("../logger"));
19
+ const util_1 = require("../util");
20
+ const log = logger_1.default.withTag('mkdocs');
21
+ /**
22
+ * Runs `mkdocs serve`
23
+ * @param args Extra args to `mkdocs build`
24
+ * @param opts Extra options for `teen_process.Subprocess.start`
25
+ * @param mkDocsPath Path to `mkdocs` executable
26
+ */
27
+ async function doServe(args = [], { startDetector, detach, timeoutMs } = {}, mkDocsPath) {
28
+ mkDocsPath = mkDocsPath ?? (await (0, fs_1.whichMkDocs)());
29
+ const finalArgs = ['serve', ...args];
30
+ log.debug('Launching %s with args: %O', mkDocsPath, finalArgs);
31
+ const proc = new teen_process_1.SubProcess(mkDocsPath, finalArgs);
32
+ return await proc.start(startDetector, detach, timeoutMs);
33
+ }
34
+ /**
35
+ * Runs `mkdocs build`
36
+ * @param args Extra args to `mkdocs build`
37
+ * @param opts Extra options to `teen_process.exec`
38
+ * @param mkDocsPath Path to `mkdocs` executable
39
+ */
40
+ async function doBuild(args = [], opts = {}, mkDocsPath) {
41
+ mkDocsPath = mkDocsPath ?? (await (0, fs_1.whichMkDocs)());
42
+ const finalArgs = ['build', ...args];
43
+ log.debug('Launching %s with args: %O', mkDocsPath, finalArgs);
44
+ return await (0, teen_process_1.exec)(mkDocsPath, finalArgs, opts);
45
+ }
46
+ /**
47
+ * Runs `mkdocs build` or `mkdocs serve`
48
+ * @param opts
49
+ */
50
+ async function buildSite({ mkdocsYml: mkDocsYmlPath, siteDir, theme = constants_1.NAME_MKDOCS, cwd = process.cwd(), serve = false, serveOpts, execOpts, } = {}) {
51
+ const stop = (0, util_1.stopwatch)('build-mkdocs');
52
+ mkDocsYmlPath = mkDocsYmlPath
53
+ ? node_path_1.default.resolve(process.cwd(), mkDocsYmlPath)
54
+ : await (0, fs_1.findMkDocsYml)(cwd);
55
+ if (!mkDocsYmlPath) {
56
+ throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_MKDOCS_YML} from ${cwd}; run "${constants_1.NAME_BIN} init" to create it`);
57
+ }
58
+ const mkdocsArgs = ['-f', mkDocsYmlPath, '-t', theme];
59
+ if (siteDir) {
60
+ mkdocsArgs.push('-d', siteDir);
61
+ }
62
+ if (serve) {
63
+ // unsure about how SIGHUP is handled here
64
+ await doServe(mkdocsArgs, serveOpts);
65
+ }
66
+ else {
67
+ await doBuild(mkdocsArgs, execOpts);
68
+ let relSiteDir;
69
+ if (siteDir) {
70
+ relSiteDir = (0, util_1.relative)(cwd, siteDir);
71
+ }
72
+ else {
73
+ ({ site_dir: siteDir } = await (0, fs_1.readMkDocsYml)(mkDocsYmlPath));
74
+ log.debug('Found site_dir %s', siteDir);
75
+ relSiteDir = (0, util_1.relative)(node_path_1.default.dirname(mkDocsYmlPath), siteDir);
76
+ }
77
+ log.success('MkDocs finished building into %s (%dms)', relSiteDir, stop());
78
+ }
79
+ }
80
+ exports.buildSite = buildSite;
81
+ //# sourceMappingURL=site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../../../lib/builder/site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { CommandModule, InferredOptionTypes } from 'yargs';
2
+ declare const opts: {
3
+ readonly reference: {
4
+ readonly describe: "Run TypeDoc command API reference build (Markdown)";
5
+ readonly group: "Build Options:";
6
+ readonly type: "boolean";
7
+ readonly default: true;
8
+ };
9
+ readonly site: {
10
+ readonly describe: "Run MkDocs build (HTML)";
11
+ readonly group: "Build Options:";
12
+ readonly type: "boolean";
13
+ readonly default: true;
14
+ };
15
+ readonly 'site-dir': {
16
+ readonly alias: "d";
17
+ readonly describe: "HTML output directory";
18
+ readonly group: "Paths:";
19
+ readonly nargs: 1;
20
+ readonly requiresArg: true;
21
+ readonly type: "string";
22
+ readonly normalize: true;
23
+ readonly implies: "site";
24
+ readonly defaultDescription: "(from mkdocs.yml)";
25
+ };
26
+ readonly 'package-json': {
27
+ readonly defaultDescription: "./package.json";
28
+ readonly describe: "Path to package.json";
29
+ readonly group: "Paths:";
30
+ readonly nargs: 1;
31
+ readonly normalize: true;
32
+ readonly requiresArg: true;
33
+ readonly type: "string";
34
+ };
35
+ readonly title: {
36
+ readonly defaultDescription: "(extension package name)";
37
+ readonly describe: "Title of the API reference";
38
+ readonly group: "Build Options:";
39
+ readonly nargs: 1;
40
+ readonly requiresArg: true;
41
+ readonly type: "string";
42
+ };
43
+ readonly 'tsconfig-json': {
44
+ readonly defaultDescription: "./tsconfig.json";
45
+ readonly describe: "Path to tsconfig.json";
46
+ readonly group: "Paths:";
47
+ readonly nargs: 1;
48
+ readonly normalize: true;
49
+ readonly requiresArg: true;
50
+ readonly type: "string";
51
+ };
52
+ readonly 'mkdocs-yml': {
53
+ readonly defaultDescription: "./mkdocs.yml";
54
+ readonly description: "Path to mkdocs.yml";
55
+ readonly group: "Paths:";
56
+ readonly nargs: 1;
57
+ readonly normalize: true;
58
+ readonly requiresArg: true;
59
+ readonly type: "string";
60
+ };
61
+ readonly 'typedoc-json': {
62
+ readonly defaultDescription: "./typedoc.json";
63
+ readonly describe: "Path to typedoc.json";
64
+ readonly group: "Paths:";
65
+ readonly nargs: 1;
66
+ readonly normalize: true;
67
+ readonly requiresArg: true;
68
+ readonly type: "string";
69
+ };
70
+ readonly all: {
71
+ readonly describe: "Output all reference docs (not just Appium comands)";
72
+ readonly group: "Build Options:";
73
+ readonly implies: "site";
74
+ readonly type: "boolean";
75
+ };
76
+ readonly deploy: {
77
+ readonly describe: "Commit HTML output";
78
+ readonly group: "Deployment Options:";
79
+ readonly type: "boolean";
80
+ readonly implies: "site";
81
+ };
82
+ readonly push: {
83
+ readonly describe: "Push after deploy";
84
+ readonly group: "Deployment Options:";
85
+ readonly type: "boolean";
86
+ readonly implies: "deploy";
87
+ };
88
+ readonly branch: {
89
+ readonly alias: "b";
90
+ readonly describe: "Branch to commit to";
91
+ readonly implies: "deploy";
92
+ readonly group: "Deployment Options:";
93
+ readonly type: "string";
94
+ readonly requiresArg: true;
95
+ readonly nargs: 1;
96
+ readonly defaultDescription: "gh-pages";
97
+ };
98
+ readonly remote: {
99
+ readonly alias: "r";
100
+ readonly describe: "Remote to push to";
101
+ readonly implies: readonly ["deploy", "push"];
102
+ readonly group: "Deployment Options:";
103
+ readonly type: "string";
104
+ readonly requiresArg: true;
105
+ readonly nargs: 1;
106
+ readonly defaultDescription: "origin";
107
+ };
108
+ readonly prefix: {
109
+ readonly describe: "Subdirectory within <branch> to commit to";
110
+ readonly implies: readonly ["deploy", "branch"];
111
+ readonly group: "Deployment Options:";
112
+ readonly type: "string";
113
+ readonly nargs: 1;
114
+ readonly requiresArg: true;
115
+ };
116
+ readonly message: {
117
+ readonly alias: "m";
118
+ readonly describe: "Commit message";
119
+ readonly implies: "deploy";
120
+ readonly group: "Deployment Options:";
121
+ readonly type: "string";
122
+ readonly nargs: 1;
123
+ readonly requiresArg: true;
124
+ };
125
+ readonly 'deploy-version': {
126
+ readonly describe: "Version (directory) to deploy build to";
127
+ readonly implies: "deploy";
128
+ readonly group: "Deployment Options:";
129
+ readonly type: "string";
130
+ readonly nargs: 1;
131
+ readonly requiresArg: true;
132
+ readonly defaultDescription: "(derived from package.json)";
133
+ };
134
+ readonly alias: {
135
+ readonly describe: "Alias for the build (e.g., \"latest\"); triggers alias update";
136
+ readonly implies: "deploy";
137
+ readonly group: "Deployment Options:";
138
+ readonly type: "string";
139
+ readonly nargs: 1;
140
+ readonly requiresArg: true;
141
+ readonly defaultDescription: "latest";
142
+ };
143
+ readonly rebase: {
144
+ readonly describe: "Rebase <branch> with remote before deploy";
145
+ readonly implies: readonly ["deploy", "branch", "remote"];
146
+ readonly group: "Deployment Options:";
147
+ readonly type: "boolean";
148
+ };
149
+ readonly serve: {
150
+ readonly describe: "Start development server";
151
+ readonly group: "Serve Options:";
152
+ readonly type: "boolean";
153
+ };
154
+ readonly port: {
155
+ readonly alias: "p";
156
+ readonly describe: "Development server port";
157
+ readonly group: "Serve Options:";
158
+ readonly type: "number";
159
+ readonly defaultDescription: "8000";
160
+ readonly implies: "serve";
161
+ readonly nargs: 1;
162
+ readonly requiresArg: true;
163
+ };
164
+ readonly host: {
165
+ readonly alias: "h";
166
+ readonly describe: "Development server host";
167
+ readonly group: "Serve Options:";
168
+ readonly type: "string";
169
+ readonly nargs: 1;
170
+ readonly requiresArg: true;
171
+ readonly implies: "serve";
172
+ readonly defaultDescription: "localhost";
173
+ };
174
+ };
175
+ declare type BuildOptions = InferredOptionTypes<typeof opts>;
176
+ declare const buildCommand: CommandModule<{}, BuildOptions>;
177
+ export default buildCommand;
178
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../lib/cli/command/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAU,MAAM,OAAO,CAAC;AAalE,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KA,CAAC;AAGX,aAAK,YAAY,GAAG,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC;AAErD,QAAA,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,YAAY,CAoCjD,CAAC;AAEF,eAAe,YAAY,CAAC"}