@appium/docutils 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +102 -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 +272 -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 +217 -0
  187. package/lib/builder/index.ts +4 -0
  188. package/lib/builder/nav.ts +393 -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
package/README.md CHANGED
@@ -4,11 +4,8 @@
4
4
 
5
5
  ## Prerequisites
6
6
 
7
- - `mkdocs` v1.4.0
8
- - `mkdocs-material` v8.2.8
9
- - `mkdocs-material-extensions` v1.0.3
10
-
11
- Run `pip install -r requirements.txt` to install MkDocs & its deps.
7
+ - Node.js in the [semantic version range](https://semver.org) `^14.17.0 || ^16.13.0 || >=18.0.0`
8
+ - Python v3+ if building HTML documentation
12
9
 
13
10
  ## Running for Main Appium Docs
14
11
 
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Functions for running `mkdocs`
3
+ *
4
+ * @module
5
+ */
6
+ import { SubProcess, TeenProcessExecOptions } from 'teen_process';
7
+ import { TupleToObject } from '../util';
8
+ /**
9
+ * Runs `mkdocs build` or `mkdocs serve`
10
+ * @param opts
11
+ */
12
+ export declare function buildMkDocs({ mkdocsYml: mkDocsYmlPath, siteDir, theme, cwd, serve, serveOpts, execOpts, }?: BuildMkDocsOpts): Promise<void>;
13
+ /**
14
+ * Options for {@linkcode buildMkDocs}.
15
+ */
16
+ export interface BuildMkDocsOpts {
17
+ /**
18
+ * Path to `mkdocs.yml`
19
+ */
20
+ mkdocsYml?: string;
21
+ /**
22
+ * Path to output directory
23
+ */
24
+ siteDir?: string;
25
+ /**
26
+ * MkDocs theme to use
27
+ * @defaultValue 'mkdocs'
28
+ */
29
+ theme?: string;
30
+ /**
31
+ * Current working directory
32
+ * @defaultValue `process.cwd()`
33
+ */
34
+ cwd?: string;
35
+ /**
36
+ * Path to `package.json`
37
+ *
38
+ * Used to find `mkdocs.yml` if unspecified.
39
+ */
40
+ packageJson?: string;
41
+ /**
42
+ * If `true`, run `mkdocs serve` instead of `mkdocs build`
43
+ */
44
+ serve?: boolean;
45
+ /**
46
+ * Extra options for {@linkcode teen_process.exec}
47
+ */
48
+ execOpts?: TeenProcessExecOptions;
49
+ /**
50
+ * Extra options for {@linkcode teen_process.Subprocess.start}
51
+ */
52
+ serveOpts?: TeenProcessSubprocessStartOpts;
53
+ }
54
+ /**
55
+ * Conversion of the parameters of {@linkcode Subprocess.start} to an object.
56
+ */
57
+ export declare type TeenProcessSubprocessStartOpts = Partial<TupleToObject<Parameters<SubProcess['start']>, ['startDetector', 'detach', 'timeoutMs']>>;
58
+ //# sourceMappingURL=mkdocs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdocs.d.ts","sourceRoot":"","sources":["../../../lib/build/mkdocs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAO,UAAU,EAAE,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAItE,OAAO,EAAsB,aAAa,EAAC,MAAM,SAAS,CAAC;AAyC3D;;;GAGG;AACH,wBAAsB,WAAW,CAAC,EAChC,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;AAED;;GAEG;AACH,oBAAY,8BAA8B,GAAG,OAAO,CAClD,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CACzF,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Functions for running `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.buildMkDocs = void 0;
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ const teen_process_1 = require("teen_process");
14
+ const constants_1 = require("../constants");
15
+ const fs_1 = require("../fs");
16
+ const logger_1 = __importDefault(require("../logger"));
17
+ const util_1 = require("../util");
18
+ const error_1 = require("../error");
19
+ const log = logger_1.default.withTag('mkdocs');
20
+ /**
21
+ * Runs `mkdocs serve`
22
+ * @param args Extra args to `mkdocs build`
23
+ * @param opts Extra options for `teen_process.Subprocess.start`
24
+ * @param mkDocsPath Path to `mkdocs` executable
25
+ */
26
+ async function doServe(args = [], { startDetector, detach, timeoutMs } = {}, mkDocsPath) {
27
+ mkDocsPath = mkDocsPath ?? (await (0, fs_1.whichMkDocs)());
28
+ const finalArgs = ['serve', ...args];
29
+ log.debug('Launching %s with args: %O', mkDocsPath, finalArgs);
30
+ const proc = new teen_process_1.SubProcess(mkDocsPath, finalArgs);
31
+ return await proc.start(startDetector, detach, timeoutMs);
32
+ }
33
+ /**
34
+ * Runs `mkdocs build`
35
+ * @param args Extra args to `mkdocs build`
36
+ * @param opts Extra options to `teen_process.exec`
37
+ * @param mkDocsPath Path to `mkdocs` executable
38
+ */
39
+ async function doBuild(args = [], opts = {}, mkDocsPath) {
40
+ mkDocsPath = mkDocsPath ?? (await (0, fs_1.whichMkDocs)());
41
+ const finalArgs = ['build', ...args];
42
+ log.debug('Launching %s with args: %O', mkDocsPath, finalArgs);
43
+ return await (0, teen_process_1.exec)(mkDocsPath, finalArgs, opts);
44
+ }
45
+ /**
46
+ * Runs `mkdocs build` or `mkdocs serve`
47
+ * @param opts
48
+ */
49
+ async function buildMkDocs({ mkdocsYml: mkDocsYmlPath, siteDir, theme = constants_1.NAME_MKDOCS, cwd = process.cwd(), serve = false, serveOpts, execOpts, } = {}) {
50
+ const stop = (0, util_1.stopwatch)('build-mkdocs');
51
+ mkDocsYmlPath = mkDocsYmlPath
52
+ ? node_path_1.default.resolve(process.cwd(), mkDocsYmlPath)
53
+ : await (0, fs_1.findMkDocsYml)(cwd);
54
+ if (!mkDocsYmlPath) {
55
+ throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_MKDOCS_YML} from ${cwd}; run "${constants_1.NAME_BIN} init" to create it`);
56
+ }
57
+ const mkdocsArgs = ['-f', mkDocsYmlPath, '-t', theme];
58
+ if (siteDir) {
59
+ mkdocsArgs.push('-d', siteDir);
60
+ }
61
+ if (serve) {
62
+ // unsure about how SIGHUP is handled here
63
+ await doServe(mkdocsArgs, serveOpts);
64
+ }
65
+ else {
66
+ await doBuild(mkdocsArgs, execOpts);
67
+ let relSiteDir;
68
+ if (siteDir) {
69
+ relSiteDir = (0, util_1.relative)(cwd, siteDir);
70
+ }
71
+ else {
72
+ ({ site_dir: siteDir } = await (0, fs_1.readMkDocsYml)(mkDocsYmlPath));
73
+ log.debug('Found site_dir %s', siteDir);
74
+ relSiteDir = (0, util_1.relative)(node_path_1.default.dirname(mkDocsYmlPath), siteDir);
75
+ }
76
+ log.success('MkDocs finished building into %s (%dms)', relSiteDir, stop());
77
+ }
78
+ }
79
+ exports.buildMkDocs = buildMkDocs;
80
+ //# sourceMappingURL=mkdocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdocs.js","sourceRoot":"","sources":["../../../lib/build/mkdocs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Runs TypeDoc
3
+ *
4
+ * @module
5
+ */
6
+ /**
7
+ * Executes TypeDoc _in the current process_
8
+ *
9
+ * Monkeypatches TypeDoc's homebrew "glob" implementation because it is broken
10
+ * @param pkgRoot - Package root path
11
+ * @param opts - TypeDoc options
12
+ */
13
+ export declare function runTypedoc(pkgRoot: string, opts: Record<string, string>): Promise<void>;
14
+ /**
15
+ * Options for {@linkcode buildReferenceDocs}
16
+ */
17
+ export interface BuildReferenceOptions {
18
+ /**
19
+ * Path to `typedoc.json`
20
+ */
21
+ typedocJson?: string;
22
+ /**
23
+ * Current working directory
24
+ */
25
+ cwd?: string;
26
+ /**
27
+ * Path to `package.json`
28
+ */
29
+ packageJson?: string;
30
+ /**
31
+ * Path to `tsconfig.json`
32
+ */
33
+ tsconfigJson?: string;
34
+ /**
35
+ * "Title" for generated docs; this corresponds to {@linkcode typedoc.TypeDocOptionMap.name}
36
+ */
37
+ title?: string;
38
+ /**
39
+ * This is here because we pass it thru to TypeDoc
40
+ */
41
+ logLevel?: LogLevelName;
42
+ }
43
+ /**
44
+ * Log level names as supported by this package
45
+ *
46
+ * Used to convert our log level to TypeDoc's
47
+ */
48
+ declare type LogLevelName = 'debug' | 'info' | 'error' | 'warn';
49
+ /**
50
+ * Build reference documentation via TypeDoc
51
+ * @param opts - Options
52
+ */
53
+ export declare function buildReferenceDocs({ typedocJson: typeDocJsonPath, cwd, tsconfigJson: tsconfig, logLevel, title, }?: BuildReferenceOptions): Promise<void>;
54
+ export {};
55
+ //# sourceMappingURL=typedoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedoc.d.ts","sourceRoot":"","sources":["../../../lib/build/typedoc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwCH;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,iBAkB7E;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;GAIG;AACH,aAAK,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAexD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,WAAW,EAAE,eAAe,EAC5B,GAAmB,EACnB,YAAY,EAAE,QAAQ,EACtB,QAA4B,EAC5B,KAAK,GACN,GAAE,qBAA0B,iBA0D5B"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Runs TypeDoc
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('typedoc');
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 monkeyPatchGlob = lodash_1.default.once((pkgRoot) => {
31
+ const tdFs = require(node_path_1.default.join(pkgRoot, 'node_modules', 'typedoc', 'dist', 'lib', 'utils', 'fs.js'));
32
+ tdFs.glob = glob_1.default.sync;
33
+ });
34
+ /**
35
+ * Executes TypeDoc _in the current process_
36
+ *
37
+ * Monkeypatches TypeDoc's homebrew "glob" implementation because it is broken
38
+ * @param pkgRoot - Package root path
39
+ * @param opts - TypeDoc options
40
+ */
41
+ async function runTypedoc(pkgRoot, opts) {
42
+ monkeyPatchGlob(pkgRoot);
43
+ log.debug('Monkeypatched TypeDoc');
44
+ const args = (0, util_1.argify)(opts);
45
+ log.debug('TypeDoc args:', args);
46
+ const app = new typedoc_1.Application();
47
+ app.options.addReader(new typedoc_1.TypeDocReader());
48
+ app.options.addReader(new typedoc_1.ArgumentsReader(100, args));
49
+ app.bootstrap();
50
+ log.debug('Frozen options as computed by TypeDoc: %O', app.options.getRawValues());
51
+ const out = app.options.getValue('out');
52
+ const project = app.convert();
53
+ if (project) {
54
+ return await app.generateDocs(project, out);
55
+ }
56
+ throw new error_1.DocutilsError('TypeDoc found nothing to document. Is your package empty?');
57
+ }
58
+ exports.runTypedoc = runTypedoc;
59
+ /**
60
+ * Mapping of whatever our log level is to whatever TypeDoc's should be.
61
+ *
62
+ * TypeDoc's "info" is too verbose for our needs, and it's our default, so
63
+ * we map it to "warn".
64
+ */
65
+ const TypeDocLogLevelMap = {
66
+ debug: 'Verbose',
67
+ info: 'Warn',
68
+ warn: 'Warn',
69
+ error: 'Error',
70
+ };
71
+ /**
72
+ * Build reference documentation via TypeDoc
73
+ * @param opts - Options
74
+ */
75
+ async function buildReferenceDocs({ typedocJson: typeDocJsonPath, cwd = process.cwd(), tsconfigJson: tsconfig, logLevel = constants_1.DEFAULT_LOG_LEVEL, title, } = {}) {
76
+ const stop = (0, util_1.stopwatch)('buildReferenceDocs');
77
+ typeDocJsonPath = typeDocJsonPath
78
+ ? node_path_1.default.resolve(cwd, typeDocJsonPath)
79
+ : await (0, fs_1.findTypeDocJsonPath)(cwd);
80
+ if (!typeDocJsonPath) {
81
+ throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_TYPEDOC_JSON} from ${cwd}; run "${constants_1.NAME_BIN}" to create it`);
82
+ }
83
+ const pkgRoot = support_1.fs.findRoot(cwd);
84
+ const relativePath = (0, util_1.relative)(cwd);
85
+ const relativeTypeDocJsonPath = relativePath(typeDocJsonPath);
86
+ log.debug(`Using ${relativeTypeDocJsonPath} as typedoc.json`);
87
+ let typeDocJson;
88
+ // we only need typedoc.json to make sure we have a custom "out" path.
89
+ try {
90
+ typeDocJson = (0, fs_1.readTypedocJson)(typeDocJsonPath);
91
+ log.debug('Contents of %s: %O', relativeTypeDocJsonPath, typeDocJson);
92
+ }
93
+ catch (err) {
94
+ log.error(err);
95
+ throw new error_1.DocutilsError(`Could not read ${relativeTypeDocJsonPath}; run "${constants_1.NAME_BIN} init" to create it`);
96
+ }
97
+ // if for some reason "out" is not in typedoc.json, we want to use our default path.
98
+ // otherwise, typedoc's default behavior is to write to the "docs" dir, which is the same dir that
99
+ // we use (by default) as a source dir for the mkdocs site--which might contain files under vcs.
100
+ let out;
101
+ if (!typeDocJson.out) {
102
+ 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));
103
+ log.debug('Overriding "out" option with %s', out);
104
+ }
105
+ else {
106
+ out = typeDocJson.out;
107
+ log.debug(`Found "out" option in ${constants_1.NAME_TYPEDOC_JSON}: ${out}`);
108
+ }
109
+ const extraTypedocOpts = lodash_1.default.pickBy({ tsconfig, name: title, out, logLevel: TypeDocLogLevelMap[logLevel] }, Boolean);
110
+ log.debug('Extra typedoc opts: %O', extraTypedocOpts);
111
+ try {
112
+ await runTypedoc(pkgRoot, extraTypedocOpts);
113
+ log.success('Reference docs built at %s (%dms)', node_path_1.default.isAbsolute(out) ? relativePath(out) : out, stop());
114
+ }
115
+ catch (err) {
116
+ log.error(err);
117
+ }
118
+ }
119
+ exports.buildReferenceDocs = buildReferenceDocs;
120
+ //# sourceMappingURL=typedoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedoc.js","sourceRoot":"","sources":["../../../lib/build/typedoc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Executes TypeDoc in the current process
3
+ *
4
+ * Monkeypatch's TypeDoc's homebrew "glob" implementation because it is broken
5
+ * @param {string} pkgRoot
6
+ * @param {import('typedoc').TypeDocOptions} opts
7
+ */
8
+ export function runTypedoc(pkgRoot: string, opts: import('typedoc').TypeDocOptions): import("typedoc").ProjectReflection | undefined;
9
+ export function buildTypedoc({ typedocJson: typedocJsonPath, cwd, packageJson: packageJsonPath, tsconfigJson: tsconfig, title, }?: {
10
+ typedocJson: any;
11
+ cwd?: string | undefined;
12
+ packageJson: any;
13
+ tsconfigJson: any;
14
+ title: any;
15
+ }): Promise<void>;
16
+ export function buildReference(opts: any): Promise<void>;
17
+ export type TypedocJson = import('./types').TypedocJson;
18
+ //# sourceMappingURL=build-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-api.d.ts","sourceRoot":"","sources":["../../lib/build-api.js"],"names":[],"mappings":"AA+BA;;;;;;GAMG;AACH,oCAHW,MAAM,QACN,OAAO,SAAS,EAAE,cAAc,mDAQ1C;AAED;;;;;;kBAoCC;AAED,yDAEC;0BAGY,OAAO,SAAS,EAAE,WAAW"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildReference = exports.buildTypedoc = exports.runTypedoc = void 0;
7
+ const logger_1 = __importDefault(require("./logger"));
8
+ const support_1 = require("@appium/support");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const typedoc_1 = require("typedoc");
12
+ const error_1 = require("./error");
13
+ const util_1 = require("./util");
14
+ const glob_1 = __importDefault(require("glob"));
15
+ const LANGS = ['en', 'ja', 'zh'];
16
+ /**
17
+ * Replaces TypeDoc's homebrew "glob" implementation with a real one
18
+ *
19
+ * This cannot be done via `require('typedoc')` or `import` due to the file being excluded
20
+ * from the export map in its `package.json`.
21
+ * @see https://github.com/TypeStrong/typedoc/issues/2151
22
+ */
23
+ const monkeyPatchGlob = lodash_1.default.once((pkgRoot) => {
24
+ const tdFs = require(node_path_1.default.join(pkgRoot, 'node_modules', 'typedoc', 'dist', 'lib', 'utils', 'fs.js'));
25
+ tdFs.glob = glob_1.default.sync;
26
+ });
27
+ /**
28
+ * Executes TypeDoc in the current process
29
+ *
30
+ * Monkeypatch's TypeDoc's homebrew "glob" implementation because it is broken
31
+ * @param {string} pkgRoot
32
+ * @param {import('typedoc').TypeDocOptions} opts
33
+ */
34
+ function runTypedoc(pkgRoot, opts) {
35
+ monkeyPatchGlob(pkgRoot);
36
+ const app = new typedoc_1.Application();
37
+ app.options.addReader(new typedoc_1.TSConfigReader());
38
+ app.bootstrap(opts);
39
+ return app.convert();
40
+ }
41
+ exports.runTypedoc = runTypedoc;
42
+ async function buildTypedoc({ typedocJson: typedocJsonPath, cwd = process.cwd(), packageJson: packageJsonPath, tsconfigJson: tsconfig, title, } = {}) {
43
+ typedocJsonPath = typedocJsonPath ?? (await (0, util_1.getTypedocJsonPath)(cwd, packageJsonPath));
44
+ const pkgRoot = support_1.fs.findRoot(cwd);
45
+ const relativePath = (0, util_1.relative)(cwd);
46
+ const relativeTypedocJsonPath = relativePath(typedocJsonPath);
47
+ logger_1.default.debug(`Using ${relativeTypedocJsonPath} as typedoc.json`);
48
+ /** @type {TypedocJson} */
49
+ let typedocJson;
50
+ try {
51
+ typedocJson = /** @type {TypedocJson} */ (await (0, util_1.readJson)(typedocJsonPath));
52
+ }
53
+ catch (err) {
54
+ throw new error_1.DocutilsError(`Could not read ${relativeTypedocJsonPath}; please execute "appium docutils init" to create it`);
55
+ }
56
+ const out = typedocJson.out ??
57
+ node_path_1.default.relative(typedocJsonPath, node_path_1.default.join(pkgRoot, util_1.DEFAULT_REL_TYPEDOC_OUT_PATH));
58
+ const finalTypedocJson = lodash_1.default.defaultsDeep(lodash_1.default.compact({ tsconfig, name: title, out }), lodash_1.default.omit(typedocJson, '$schema'));
59
+ try {
60
+ runTypedoc(pkgRoot, finalTypedocJson);
61
+ logger_1.default.success(`API docs built at ${relativePath(out)}`);
62
+ }
63
+ catch (err) {
64
+ logger_1.default.error(err);
65
+ }
66
+ }
67
+ exports.buildTypedoc = buildTypedoc;
68
+ async function buildReference(opts) {
69
+ await buildTypedoc(opts);
70
+ }
71
+ exports.buildReference = buildReference;
72
+ /**
73
+ * @typedef {import('./types').TypedocJson} TypedocJson
74
+ */
75
+ //# sourceMappingURL=build-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-api.js","sourceRoot":"","sources":["../../lib/build-api.js"],"names":[],"mappings":";;;;;;AAAA,sDAA2B;AAC3B,6CAAmC;AACnC,oDAAuB;AACvB,0DAA6B;AAC7B,qCAAoD;AACpD,mCAAsC;AACtC,iCAA4F;AAC5F,gDAAwB;AAExB,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,gBAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAC5B,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,OAAO,EAAE,IAAI;IACtC,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,qBAAW,EAAE,CAAC;IAC9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,wBAAc,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AAND,gCAMC;AAEM,KAAK,UAAU,YAAY,CAAC,EACjC,WAAW,EAAE,eAAe,EAC5B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,QAAQ,EACtB,KAAK,GACN,GAAG,EAAE;IACJ,eAAe,GAAG,eAAe,IAAI,CAAC,MAAM,IAAA,yBAAkB,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,YAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAC;IACnC,MAAM,uBAAuB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAC9D,gBAAG,CAAC,KAAK,CAAC,SAAS,uBAAuB,kBAAkB,CAAC,CAAC;IAC9D,0BAA0B;IAC1B,IAAI,WAAW,CAAC;IAChB,IAAI;QACF,WAAW,GAAG,0BAA0B,CAAC,CAAC,MAAM,IAAA,eAAQ,EAAC,eAAe,CAAC,CAAC,CAAC;KAC5E;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,qBAAa,CACrB,kBAAkB,uBAAuB,sDAAsD,CAChG,CAAC;KACH;IAED,MAAM,GAAG,GACP,WAAW,CAAC,GAAG;QACf,mBAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mCAA4B,CAAC,CAAC,CAAC;IACnF,MAAM,gBAAgB,GAAG,gBAAC,CAAC,YAAY,CACrC,gBAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,EACvC,gBAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAC/B,CAAC;IAEF,IAAI;QACF,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACtC,gBAAG,CAAC,OAAO,CAAC,qBAAqB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAChB;AACH,CAAC;AApCD,oCAoCC;AAEM,KAAK,UAAU,cAAc,CAAC,IAAI;IACvC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAFD,wCAEC;AAED;;GAEG"}
@@ -0,0 +1,21 @@
1
+ import { TypeDocOptions } from 'typedoc';
2
+ /**
3
+ * Executes TypeDoc in the current process
4
+ *
5
+ * Monkeypatch's TypeDoc's homebrew "glob" implementation because it is broken
6
+ * @param pkgRoot - Package root path
7
+ * @param opts - TypeDoc options
8
+ */
9
+ export declare function runTypedoc(pkgRoot: string, opts: TypeDocOptions): import("typedoc").ProjectReflection | undefined;
10
+ export interface BuildTypedocOptions {
11
+ typedocJson?: string;
12
+ cwd?: string;
13
+ packageJson?: string;
14
+ tsconfigJson?: string;
15
+ title?: string;
16
+ }
17
+ export declare function buildTypedoc({ typedocJson: typeDocJsonPath, cwd, packageJson: packageJsonPath, tsconfigJson: tsconfig, title, }?: BuildTypedocOptions): Promise<void>;
18
+ export declare function buildReference(opts?: BuildReferenceOptions): Promise<void>;
19
+ export interface BuildReferenceOptions extends BuildTypedocOptions {
20
+ }
21
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../lib/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,cAAc,EAAC,MAAM,SAAS,CAAC;AA2BpE;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,mDAM/D;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,EACjC,WAAW,EAAE,eAAe,EAC5B,GAAmB,EACnB,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,QAAQ,EACtB,KAAK,GACN,GAAE,mBAAwB,iBA4B1B;AAED,wBAAsB,cAAc,CAAC,IAAI,GAAE,qBAA0B,iBAEpE;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAG"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildReference = exports.buildTypedoc = exports.runTypedoc = void 0;
7
+ const logger_1 = __importDefault(require("./logger"));
8
+ const support_1 = require("@appium/support");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const typedoc_1 = require("typedoc");
12
+ const error_1 = require("./error");
13
+ const util_1 = require("./util");
14
+ const glob_1 = __importDefault(require("glob"));
15
+ const constants_1 = require("./constants");
16
+ /**
17
+ * Replaces TypeDoc's homebrew "glob" implementation with a real one
18
+ *
19
+ * This cannot be done via `require('typedoc')` or `import` due to the file being excluded
20
+ * from the export map in its `package.json`.
21
+ * @see https://github.com/TypeStrong/typedoc/issues/2151
22
+ */
23
+ const monkeyPatchGlob = lodash_1.default.once((pkgRoot) => {
24
+ const tdFs = require(node_path_1.default.join(pkgRoot, 'node_modules', 'typedoc', 'dist', 'lib', 'utils', 'fs.js'));
25
+ tdFs.glob = glob_1.default.sync;
26
+ });
27
+ /**
28
+ * Executes TypeDoc in the current process
29
+ *
30
+ * Monkeypatch's TypeDoc's homebrew "glob" implementation because it is broken
31
+ * @param pkgRoot - Package root path
32
+ * @param opts - TypeDoc options
33
+ */
34
+ function runTypedoc(pkgRoot, opts) {
35
+ monkeyPatchGlob(pkgRoot);
36
+ const app = new typedoc_1.Application();
37
+ app.options.addReader(new typedoc_1.TSConfigReader());
38
+ app.bootstrap(opts);
39
+ return app.convert();
40
+ }
41
+ exports.runTypedoc = runTypedoc;
42
+ async function buildTypedoc({ typedocJson: typeDocJsonPath, cwd = process.cwd(), packageJson: packageJsonPath, tsconfigJson: tsconfig, title, } = {}) {
43
+ typeDocJsonPath = typeDocJsonPath ?? (await (0, util_1.getTypedocJsonPath)(cwd, packageJsonPath));
44
+ const pkgRoot = support_1.fs.findRoot(cwd);
45
+ const relativePath = (0, util_1.relative)(cwd);
46
+ const relativeTypedocJsonPath = relativePath(typeDocJsonPath);
47
+ logger_1.default.debug(`Using ${relativeTypedocJsonPath} as typedoc.json`);
48
+ let typedocJson;
49
+ try {
50
+ typedocJson = await (0, util_1.readJson)(typeDocJsonPath);
51
+ }
52
+ catch (err) {
53
+ throw new error_1.DocutilsError(`Could not read ${relativeTypedocJsonPath}; please execute "appium docutils init" to create it`);
54
+ }
55
+ const out = typedocJson.out ??
56
+ node_path_1.default.relative(typeDocJsonPath, node_path_1.default.join(pkgRoot, constants_1.DEFAULT_REL_TYPEDOC_OUT_PATH));
57
+ const finalTypedocJson = lodash_1.default.defaultsDeep(lodash_1.default.pickBy({ tsconfig, name: title, out }, (value, key) => value && key !== constants_1.NAME_SCHEMA));
58
+ try {
59
+ runTypedoc(pkgRoot, finalTypedocJson);
60
+ logger_1.default.success(`API docs built at ${relativePath(out)}`);
61
+ }
62
+ catch (err) {
63
+ logger_1.default.error(err);
64
+ }
65
+ }
66
+ exports.buildTypedoc = buildTypedoc;
67
+ async function buildReference(opts = {}) {
68
+ await buildTypedoc(opts);
69
+ }
70
+ exports.buildReference = buildReference;
71
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../lib/build.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2B;AAC3B,6CAAmC;AACnC,oDAAuB;AACvB,0DAA6B;AAC7B,qCAAoE;AACpE,mCAAsC;AACtC,iCAA8D;AAC9D,gDAAwB;AAExB,2CAAsE;AAEtE;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,gBAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAC5B,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,OAAe,EAAE,IAAoB;IAC9D,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,qBAAW,EAAE,CAAC;IAC9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,wBAAc,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AAND,gCAMC;AAUM,KAAK,UAAU,YAAY,CAAC,EACjC,WAAW,EAAE,eAAe,EAC5B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,QAAQ,EACtB,KAAK,MACkB,EAAE;IACzB,eAAe,GAAG,eAAe,IAAI,CAAC,MAAM,IAAA,yBAAkB,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,YAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAC;IACnC,MAAM,uBAAuB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAC9D,gBAAG,CAAC,KAAK,CAAC,SAAS,uBAAuB,kBAAkB,CAAC,CAAC;IAC9D,IAAI,WAAwB,CAAC;IAC7B,IAAI;QACF,WAAW,GAAG,MAAM,IAAA,eAAQ,EAAC,eAAe,CAAC,CAAC;KAC/C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,qBAAa,CACrB,kBAAkB,uBAAuB,sDAAsD,CAChG,CAAC;KACH;IAED,MAAM,GAAG,GACP,WAAW,CAAC,GAAG;QACf,mBAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,wCAA4B,CAAC,CAAC,CAAC;IACnF,MAAM,gBAAgB,GAAmB,gBAAC,CAAC,YAAY,CACrD,gBAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,uBAAW,CAAC,CACrF,CAAC;IAEF,IAAI;QACF,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACtC,gBAAG,CAAC,OAAO,CAAC,qBAAqB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,gBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAChB;AACH,CAAC;AAlCD,oCAkCC;AAEM,KAAK,UAAU,cAAc,CAAC,OAA8B,EAAE;IACnE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Functions for running `mike`
3
+ *
4
+ * @module
5
+ */
6
+ import { TeenProcessExecOptions } from 'teen_process';
7
+ import { TeenProcessSubprocessStartOpts } from '../util';
8
+ /**
9
+ * Runs `mike build` or `mike serve`
10
+ * @param opts Options
11
+ */
12
+ export declare function deploy({ mkDocsYml: mkDocsYmlPath, packageJson: packageJsonPath, deployVersion: version, cwd, serve, push, branch, remote, prefix, message, alias, rebase, port, host, serveOpts, execOpts, }?: DeployOpts): Promise<void>;
13
+ /**
14
+ * Options for {@linkcode deploy}.
15
+ */
16
+ export interface DeployOpts {
17
+ /**
18
+ * Path to `mike.yml`
19
+ */
20
+ mkDocsYml?: string;
21
+ /**
22
+ * Current working directory
23
+ * @defaultValue `process.cwd()`
24
+ */
25
+ cwd?: string;
26
+ /**
27
+ * Path to `package.json`
28
+ *
29
+ * Used to find `mike.yml` if unspecified.
30
+ */
31
+ packageJson?: string;
32
+ /**
33
+ * If `true`, run `mike serve` instead of `mike build`
34
+ */
35
+ serve?: boolean;
36
+ /**
37
+ * If `true`, push `branch` to `remote`
38
+ */
39
+ push?: boolean;
40
+ /**
41
+ * Branch to commit to
42
+ * @defaultValue gh-pages
43
+ */
44
+ branch?: string;
45
+ /**
46
+ * Remote to push to
47
+ * @defaultValue origin
48
+ */
49
+ remote?: string;
50
+ /**
51
+ * Subdirectory within `branch` to deploy to
52
+ */
53
+ prefix?: string;
54
+ /**
55
+ * Commit message
56
+ */
57
+ message?: string;
58
+ /**
59
+ * Version (dir) to deploy build to
60
+ */
61
+ deployVersion?: string;
62
+ /**
63
+ * Alias for the build (e.g., `latest`); triggers alias update
64
+ */
65
+ alias?: string;
66
+ /**
67
+ * If `true`, rebase `branch` before pushing
68
+ */
69
+ rebase?: boolean;
70
+ /**
71
+ * Port to serve on
72
+ * @defaultValue 8000
73
+ */
74
+ port?: number;
75
+ /**
76
+ * Host to serve on
77
+ * @defaultValue localhost
78
+ */
79
+ host?: string;
80
+ /**
81
+ * Extra options for {@linkcode teen_process.exec}
82
+ */
83
+ execOpts?: TeenProcessExecOptions;
84
+ /**
85
+ * Extra options for {@linkcode teen_process.Subprocess.start}
86
+ */
87
+ serveOpts?: TeenProcessSubprocessStartOpts;
88
+ }
89
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../lib/builder/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAmB,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAatE,OAAO,EAAoB,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAmD1E;;;GAGG;AACH,wBAAsB,MAAM,CAAC,EAC3B,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,eAAe,EAC5B,aAAa,EAAE,OAAO,EACtB,GAAmB,EACnB,KAAa,EACb,IAAY,EACZ,MAA8B,EAC9B,MAA8B,EAC9B,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAa,EACb,IAAyB,EACzB,IAAyB,EACzB,SAAS,EACT,QAAQ,GACT,GAAE,UAAe,iBAyCjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;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,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C"}