@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 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../lib/scaffold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AA8BhD;;GAEG;AACH,oBAAY,gBAAgB,CAAC,IAAI,SAAS,mBAAmB,IAAI,IAAI,CACnE,IAAI,EACJ,MAAM,mBAAmB,CAC1B,CAAC;AAEF;;;;GAIG;AACH,oBAAY,YAAY,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,IAAI,CACjF,IAAI,EAAE,IAAI,KACP,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,EACvF,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,CAAC,EACjB,WAAW,EAAE,MAAM,EACnB,EACE,SAAsB,EACtB,WAAwB,EACxB,SAAyB,GAC1B,GAAE,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAM,GACzC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAuEvB;AAED;;;GAGG;AACH,oBAAY,uBAAuB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS,IAAI,CAC3F,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC5B,GAAG,EAAE,qBAAqB,KACvB,CAAC,CAAC;AAEP;;GAEG;AACH,oBAAY,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;AAEjE;;GAEG;AACH,oBAAY,sBAAsB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS;IAC9F;;OAEG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C;;OAEG;IACH,WAAW,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /**
3
+ * Implementation of a generic "create and/or update some file" task
4
+ * @module
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createScaffoldTask = void 0;
11
+ const support_1 = require("@appium/support");
12
+ const logger_1 = __importDefault(require("./logger"));
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const diff_1 = require("diff");
15
+ const error_1 = require("./error");
16
+ const util_1 = require("./util");
17
+ const lodash_1 = __importDefault(require("lodash"));
18
+ const fs_1 = require("./fs");
19
+ const constants_1 = require("./constants");
20
+ const log = logger_1.default.withTag('init');
21
+ const dryRunLog = log.withTag('dry-run');
22
+ /**
23
+ * Creates a unified patch for display in "dry run" mode
24
+ * @param filename - File name to use
25
+ * @param oldData - Old data
26
+ * @param newData - New Data
27
+ * @returns Patch string
28
+ */
29
+ function makePatch(filename, oldData, newData, serializer = fs_1.stringifyJson) {
30
+ return (0, diff_1.createPatch)(filename, lodash_1.default.isString(oldData) ? oldData : serializer(oldData), lodash_1.default.isString(newData) ? newData : serializer(newData));
31
+ }
32
+ /**
33
+ * Factory for a {@linkcode ScaffoldTask}.
34
+ *
35
+ * @param defaultFilename Default file to create
36
+ * @param defaultContent Default content to use
37
+ * @param description Description of task
38
+ * @param opts Options
39
+ * @returns A scaffold task
40
+ */
41
+ function createScaffoldTask(defaultFilename, defaultContent, description, { transform = lodash_1.default.identity, deserialize = JSON.parse, serialize = fs_1.stringifyJson, } = {}) {
42
+ return async ({ overwrite = false, cwd = process.cwd(), packageJson: packageJsonPath, dest, dryRun = false, ...opts }) => {
43
+ const relativePath = (0, util_1.relative)(cwd);
44
+ const { pkgPath, pkg } = await (0, fs_1.readPackageJson)(packageJsonPath ? node_path_1.default.dirname(packageJsonPath) : cwd, true);
45
+ const pkgDir = node_path_1.default.dirname(pkgPath);
46
+ dest = dest ?? node_path_1.default.join(pkgDir, defaultFilename);
47
+ const relativeDest = relativePath(dest);
48
+ log.debug('Initializing %s', relativeDest);
49
+ let shouldWriteDest = false;
50
+ let destContent;
51
+ let result;
52
+ try {
53
+ destContent = deserialize(await support_1.fs.readFile(dest, 'utf8'));
54
+ log.debug('Found existing file %s', relativeDest);
55
+ }
56
+ catch (e) {
57
+ const err = e;
58
+ if (err.code !== constants_1.NAME_ERR_ENOENT) {
59
+ throw err;
60
+ }
61
+ shouldWriteDest = true;
62
+ log.debug('Creating new file %s', relativeDest);
63
+ destContent = {};
64
+ }
65
+ const defaults = transform(defaultContent, opts, pkg);
66
+ const finalDestContent = lodash_1.default.defaultsDeep({}, destContent, defaults);
67
+ shouldWriteDest = shouldWriteDest || !lodash_1.default.isEqual(destContent, finalDestContent);
68
+ if (shouldWriteDest) {
69
+ log.info('Changes needed to %s', relativeDest);
70
+ log.debug('Original %s: %O', relativeDest, destContent);
71
+ log.debug('Final %s: %O', relativeDest, finalDestContent);
72
+ const patch = makePatch(dest, destContent, finalDestContent, serialize);
73
+ if (dryRun) {
74
+ dryRunLog.info('Would apply the following patch: \n\n%s', patch);
75
+ result = { path: dest, content: finalDestContent };
76
+ return result;
77
+ }
78
+ try {
79
+ await (0, fs_1.safeWriteFile)(dest, finalDestContent, overwrite);
80
+ }
81
+ catch (e) {
82
+ const err = e;
83
+ // this should only be thrown if `force` is false
84
+ if (err.code === constants_1.NAME_ERR_EEXIST) {
85
+ log.info(`${relativeDest} already exists; continuing...`);
86
+ log.debug(`Tried to apply patch:\n\n${patch}`);
87
+ }
88
+ else {
89
+ throw new error_1.DocutilsError(`Could not write to ${relativeDest}. Reason: ${err.message}`, {
90
+ cause: err,
91
+ });
92
+ }
93
+ }
94
+ }
95
+ else {
96
+ log.info('No changes to %s', relativeDest);
97
+ }
98
+ log.success('Initialized %s', description);
99
+ return { path: dest, content: finalDestContent };
100
+ };
101
+ }
102
+ exports.createScaffoldTask = createScaffoldTask;
103
+ //# sourceMappingURL=scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../lib/scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare namespace Mike {
2
+ interface MikeOpts {
3
+ remote?: string;
4
+ prefix?: string;
5
+ branch?: string;
6
+ configFile: string;
7
+ }
8
+ }
9
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../lib/test.ts"],"names":[],"mappings":"AAAA,kBAAU,IAAI,CAAC;IACb,UAAiB,QAAQ;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;CACF"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../lib/test.ts"],"names":[],"mappings":""}
@@ -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 buildReference}
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 buildReference({ 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/typedoc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+CH;;;;;;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,cAAc,CAAC,EACnC,WAAW,EAAE,eAAe,EAC5B,GAAmB,EACnB,YAAY,EAAE,QAAQ,EACtB,QAA4B,EAC5B,KAAK,GACN,GAAE,qBAA0B,iBAwD5B"}
@@ -0,0 +1,122 @@
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.buildReference = 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
+ * Converts an object of string values to an array of arguments for CLI
36
+ */
37
+ const argify = lodash_1.default.flow(lodash_1.default.entries, lodash_1.default.flatten, (list) => list.map((v, idx) => (idx % 2 === 0 ? `--${v}` : v)));
38
+ /**
39
+ * Executes TypeDoc _in the current process_
40
+ *
41
+ * Monkeypatches TypeDoc's homebrew "glob" implementation because it is broken
42
+ * @param pkgRoot - Package root path
43
+ * @param opts - TypeDoc options
44
+ */
45
+ async function runTypedoc(pkgRoot, opts) {
46
+ monkeyPatchGlob(pkgRoot);
47
+ log.debug('Monkeypatched TypeDoc');
48
+ const args = argify(opts);
49
+ log.debug('TypeDoc args:', args);
50
+ const app = new typedoc_1.Application();
51
+ app.options.addReader(new typedoc_1.TypeDocReader());
52
+ app.options.addReader(new typedoc_1.ArgumentsReader(100, args));
53
+ app.bootstrap();
54
+ log.debug('Frozen options as computed by TypeDoc: %O', app.options.getRawValues());
55
+ const out = app.options.getValue('out');
56
+ const project = app.convert();
57
+ if (project) {
58
+ return await app.generateDocs(project, out);
59
+ }
60
+ throw new error_1.DocutilsError('TypeDoc found nothing to document. Is your package empty?');
61
+ }
62
+ exports.runTypedoc = runTypedoc;
63
+ /**
64
+ * Mapping of whatever our log level is to whatever TypeDoc's should be.
65
+ *
66
+ * TypeDoc's "info" is too verbose for our needs, and it's our default, so
67
+ * we map it to "warn".
68
+ */
69
+ const TypeDocLogLevelMap = {
70
+ debug: 'Verbose',
71
+ info: 'Warn',
72
+ warn: 'Warn',
73
+ error: 'Error',
74
+ };
75
+ /**
76
+ * Build reference documentation via TypeDoc
77
+ * @param opts - Options
78
+ */
79
+ async function buildReference({ typedocJson: typeDocJsonPath, cwd = process.cwd(), tsconfigJson: tsconfig, logLevel = constants_1.DEFAULT_LOG_LEVEL, title, } = {}) {
80
+ const stop = (0, util_1.stopwatch)('buildReference');
81
+ typeDocJsonPath = typeDocJsonPath ?? (await (0, fs_1.findTypeDocJsonPath)(cwd));
82
+ if (!typeDocJsonPath) {
83
+ throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_TYPEDOC_JSON} from ${cwd}; run "${constants_1.NAME_BIN}" to create it`);
84
+ }
85
+ const pkgRoot = support_1.fs.findRoot(cwd);
86
+ const relativePath = (0, util_1.relative)(cwd);
87
+ const relativeTypeDocJsonPath = relativePath(typeDocJsonPath);
88
+ log.debug(`Using ${relativeTypeDocJsonPath} as typedoc.json`);
89
+ let typeDocJson;
90
+ // we only need typedoc.json to make sure we have a custom "out" path.
91
+ try {
92
+ typeDocJson = (0, fs_1.readTypedocJson)(typeDocJsonPath);
93
+ log.debug('Contents of %s: %O', relativeTypeDocJsonPath, typeDocJson);
94
+ }
95
+ catch (err) {
96
+ log.error(err);
97
+ throw new error_1.DocutilsError(`Could not read ${relativeTypeDocJsonPath}; run "${constants_1.NAME_BIN} init" to create it`);
98
+ }
99
+ // if for some reason "out" is not in typedoc.json, we want to use our default path.
100
+ // otherwise, typedoc's default behavior is to write to the "docs" dir, which is the same dir that
101
+ // we use (by default) as a source dir for the mkdocs site--which might contain files under vcs.
102
+ let out;
103
+ if (!typeDocJson.out) {
104
+ 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));
105
+ log.debug('Overriding "out" option with %s', out);
106
+ }
107
+ else {
108
+ out = typeDocJson.out;
109
+ log.debug(`Found "out" option in ${constants_1.NAME_TYPEDOC_JSON}: ${out}`);
110
+ }
111
+ const extraTypedocOpts = lodash_1.default.pickBy({ tsconfig, name: title, out, logLevel: TypeDocLogLevelMap[logLevel] }, Boolean);
112
+ log.debug('Extra typedoc opts: %O', extraTypedocOpts);
113
+ try {
114
+ await runTypedoc(pkgRoot, extraTypedocOpts);
115
+ log.success('Reference docs built at %s (%dms)', node_path_1.default.isAbsolute(out) ? relativePath(out) : out, stop());
116
+ }
117
+ catch (err) {
118
+ log.error(err);
119
+ }
120
+ }
121
+ exports.buildReference = buildReference;
122
+ //# sourceMappingURL=typedoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedoc.js","sourceRoot":"","sources":["../../lib/typedoc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Utility types
3
+ * @module
4
+ */
5
+ import type { Jsonify, JsonValue, TsConfigJson as TsConfigJsonBase } from 'type-fest';
6
+ import type { TypeDocOptions } from 'typedoc';
7
+ /**
8
+ * A `tsconfig.json` file w/ `$schema` prop
9
+ */
10
+ export declare type TsConfigJson = Jsonify<TsConfigJsonBase & {
11
+ $schema?: string;
12
+ }>;
13
+ /**
14
+ * A `typedoc.json` file w/ `$schema` and `extends` props
15
+ */
16
+ export declare type TypeDocJson = Jsonify<Partial<TypeDocOptions> & {
17
+ $schema?: string;
18
+ extends?: string;
19
+ }>;
20
+ export declare type MkDocsYml = Jsonify<{
21
+ copyright?: string;
22
+ dev_addr?: string;
23
+ docs_dir?: string;
24
+ extra_css?: string[];
25
+ extra_javascript?: string[];
26
+ extra_templates?: string[];
27
+ extra?: Record<string, JsonValue>;
28
+ hooks?: string[];
29
+ INHERIT?: string;
30
+ markdown_extensions?: (string | Record<string, JsonValue>)[];
31
+ nav?: (string | Record<string, string>)[];
32
+ plugins?: (string | Record<string, JsonValue>)[];
33
+ repo_name?: string;
34
+ repo_url?: string;
35
+ site_dir?: string;
36
+ /**
37
+ * This is _actually_ required by mkdocs
38
+ */
39
+ site_name?: string;
40
+ site_description?: string;
41
+ strict?: boolean;
42
+ theme?: MkDocsYmlTheme;
43
+ use_directory_urls?: boolean;
44
+ watch?: string[];
45
+ }>;
46
+ export declare type MkDocsYmlTheme = string | ({
47
+ name: string;
48
+ locale?: string;
49
+ custom_dir?: string;
50
+ static_templates?: string[];
51
+ } & Record<string, JsonValue>);
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAC,OAAO,EAAE,SAAS,EAAe,YAAY,IAAI,gBAAgB,EAAC,MAAM,WAAW,CAAC;AACjG,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,oBAAY,YAAY,GAAG,OAAO,CAChC,gBAAgB,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CACF,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW,GAAG,OAAO,CAC/B,OAAO,CAAC,cAAc,CAAC,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CACF,CAAC;AAEF,oBAAY,SAAS,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7D,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAAC;AAEH,oBAAY,cAAc,GACtB,MAAM,GACN,CAAC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Utility types
4
+ * @module
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Utilities
3
+ * @module
4
+ */
5
+ import _ from 'lodash';
6
+ import type { SubProcess } from 'teen_process';
7
+ /**
8
+ * Computes a relative path, prepending `./`
9
+ */
10
+ export declare const relative: _.CurriedFunction2<string, string, string>;
11
+ /**
12
+ * A stopwatch-like thing
13
+ *
14
+ * Used for displaying elapsed time in milliseconds
15
+ * @param id - Unique identifier
16
+ * @returns Function that returns the elapsed time in milliseconds
17
+ */
18
+ export declare function stopwatch(id: string): () => number;
19
+ export declare namespace stopwatch {
20
+ var cache: Map<string, number>;
21
+ }
22
+ export declare type TupleToObject<T extends readonly any[], M extends Record<Exclude<keyof T, keyof any[]>, PropertyKey>> = {
23
+ [K in Exclude<keyof T, keyof any[]> as M[K]]: T[K];
24
+ };
25
+ /**
26
+ * Type guard to narrow an array to a string array
27
+ * @param value any value
28
+ * @returns `true` if the array is `string[]`
29
+ */
30
+ export declare const isStringArray: (value: any) => value is string[];
31
+ /**
32
+ * Converts an object of string values to an array of arguments for CLI
33
+ *
34
+ * Supports `boolean` and `number` values as well. `boolean`s are assumed to be flags which default
35
+ * to `false`, so they will only be added to the array if the value is `true`.
36
+ */
37
+ export declare const argify: (obj: Record<string, string | number | boolean | undefined>) => string[];
38
+ /**
39
+ * Conversion of the parameters of {@linkcode Subprocess.start} to an object.
40
+ */
41
+ export declare type TeenProcessSubprocessStartOpts = Partial<TupleToObject<Parameters<SubProcess['start']>, ['startDetector', 'detach', 'timeoutMs']>>;
42
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,QAAQ,4CAEpB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAQnC;yBARe,SAAS;;;AAWzB,oBAAY,aAAa,CACvB,CAAC,SAAS,SAAS,GAAG,EAAE,EACxB,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,IAC1D;KAAE,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAC,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,aAAa,UACjB,GAAG,sBACU,CAAC;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,KAAK,MAAM,EAcxF,CAAC;AAEJ;;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,56 @@
1
+ "use strict";
2
+ /**
3
+ * Utilities
4
+ * @module
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.argify = exports.isStringArray = exports.stopwatch = exports.relative = void 0;
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const node_path_1 = __importDefault(require("node:path"));
13
+ /**
14
+ * Computes a relative path, prepending `./`
15
+ */
16
+ exports.relative = lodash_1.default.curry((from, to) => `.${node_path_1.default.sep}${node_path_1.default.relative(from, to)}`);
17
+ /**
18
+ * A stopwatch-like thing
19
+ *
20
+ * Used for displaying elapsed time in milliseconds
21
+ * @param id - Unique identifier
22
+ * @returns Function that returns the elapsed time in milliseconds
23
+ */
24
+ function stopwatch(id) {
25
+ const start = Date.now();
26
+ stopwatch.cache.set(id, start);
27
+ return () => {
28
+ const result = Date.now() - stopwatch.cache.get(id);
29
+ stopwatch.cache.delete(id);
30
+ return result;
31
+ };
32
+ }
33
+ exports.stopwatch = stopwatch;
34
+ stopwatch.cache = new Map();
35
+ /**
36
+ * Type guard to narrow an array to a string array
37
+ * @param value any value
38
+ * @returns `true` if the array is `string[]`
39
+ */
40
+ exports.isStringArray = lodash_1.default.overEvery(lodash_1.default.isArray, lodash_1.default.partial(lodash_1.default.every, lodash_1.default, lodash_1.default.isString));
41
+ /**
42
+ * Converts an object of string values to an array of arguments for CLI
43
+ *
44
+ * Supports `boolean` and `number` values as well. `boolean`s are assumed to be flags which default
45
+ * to `false`, so they will only be added to the array if the value is `true`.
46
+ */
47
+ exports.argify = lodash_1.default.flow(lodash_1.default.entries, lodash_1.default.flatten, (list) => list.map((value, idx) => {
48
+ if (value === true) {
49
+ return `--${value}`;
50
+ }
51
+ else if (value === false || value === undefined) {
52
+ return;
53
+ }
54
+ return idx % 2 === 0 ? `--${value}` : value;
55
+ }), lodash_1.default.compact);
56
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/util.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,oDAAuB;AACvB,0DAA6B;AAG7B;;GAEG;AACU,QAAA,QAAQ,GAAG,gBAAC,CAAC,KAAK,CAC7B,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CAAC,IAAI,mBAAI,CAAC,GAAG,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAC/E,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,EAAU;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACrD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AARD,8BAQC;AACD,SAAS,CAAC,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAO5C;;;;GAIG;AACU,QAAA,aAAa,GAAG,gBAAC,CAAC,SAAS,CAAC,gBAAC,CAAC,OAAO,EAAE,gBAAC,CAAC,OAAO,CAAC,gBAAC,CAAC,KAAK,EAAE,gBAAC,EAAE,gBAAC,CAAC,QAAQ,CAAC,CAE/D,CAAC;AAEvB;;;;;GAKG;AACU,QAAA,MAAM,GACjB,gBAAC,CAAC,IAAI,CACJ,gBAAC,CAAC,OAAO,EACT,gBAAC,CAAC,OAAO,EACT,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACtB,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,KAAK,KAAK,EAAE,CAAC;KACrB;SAAM,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE;QACjD,OAAO;KACR;IACD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC,CAAC,EACJ,gBAAC,CAAC,OAAO,CACV,CAAC"}