@appium/docutils 0.2.0 → 0.2.2

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 (142) hide show
  1. package/build/lib/builder/deploy.d.ts +2 -2
  2. package/build/lib/builder/deploy.d.ts.map +1 -1
  3. package/build/lib/builder/deploy.js +6 -3
  4. package/build/lib/builder/deploy.js.map +1 -1
  5. package/build/lib/builder/nav.d.ts.map +1 -1
  6. package/build/lib/builder/nav.js +27 -19
  7. package/build/lib/builder/nav.js.map +1 -1
  8. package/build/lib/builder/reference.d.ts +1 -1
  9. package/build/lib/builder/reference.d.ts.map +1 -1
  10. package/build/lib/cli/command/build.d.ts +174 -176
  11. package/build/lib/cli/command/build.d.ts.map +1 -1
  12. package/build/lib/cli/command/build.js +3 -5
  13. package/build/lib/cli/command/build.js.map +1 -1
  14. package/build/lib/cli/command/init.d.ts +139 -141
  15. package/build/lib/cli/command/init.d.ts.map +1 -1
  16. package/build/lib/cli/command/init.js +3 -5
  17. package/build/lib/cli/command/init.js.map +1 -1
  18. package/build/lib/cli/command/validate.d.ts +63 -65
  19. package/build/lib/cli/command/validate.d.ts.map +1 -1
  20. package/build/lib/cli/command/validate.js +3 -5
  21. package/build/lib/cli/command/validate.js.map +1 -1
  22. package/build/lib/cli/config.js +1 -1
  23. package/build/lib/cli/config.js.map +1 -1
  24. package/build/lib/init.d.ts +13 -22
  25. package/build/lib/init.d.ts.map +1 -1
  26. package/build/lib/logger.js +0 -4
  27. package/build/lib/logger.js.map +1 -1
  28. package/build/lib/model.d.ts +6 -10
  29. package/build/lib/model.d.ts.map +1 -1
  30. package/build/lib/scaffold.d.ts +5 -5
  31. package/build/lib/scaffold.d.ts.map +1 -1
  32. package/build/lib/util.d.ts +2 -2
  33. package/build/lib/util.d.ts.map +1 -1
  34. package/build/lib/validate.d.ts +1 -1
  35. package/build/lib/validate.d.ts.map +1 -1
  36. package/lib/builder/deploy.ts +10 -4
  37. package/lib/builder/nav.ts +28 -22
  38. package/lib/cli/command/build.ts +4 -7
  39. package/lib/cli/command/init.ts +4 -7
  40. package/lib/cli/command/validate.ts +6 -7
  41. package/lib/logger.ts +6 -11
  42. package/lib/model.ts +3 -9
  43. package/package.json +8 -8
  44. package/requirements.txt +1 -1
  45. package/build/lib/build/mkdocs.d.ts +0 -58
  46. package/build/lib/build/mkdocs.d.ts.map +0 -1
  47. package/build/lib/build/mkdocs.js +0 -80
  48. package/build/lib/build/mkdocs.js.map +0 -1
  49. package/build/lib/build/typedoc.d.ts +0 -55
  50. package/build/lib/build/typedoc.d.ts.map +0 -1
  51. package/build/lib/build/typedoc.js +0 -120
  52. package/build/lib/build/typedoc.js.map +0 -1
  53. package/build/lib/build-api.d.ts +0 -18
  54. package/build/lib/build-api.d.ts.map +0 -1
  55. package/build/lib/build-api.js +0 -75
  56. package/build/lib/build-api.js.map +0 -1
  57. package/build/lib/build.d.ts +0 -21
  58. package/build/lib/build.d.ts.map +0 -1
  59. package/build/lib/build.js +0 -71
  60. package/build/lib/build.js.map +0 -1
  61. package/build/lib/cli/command/deploy.d.ts +0 -1
  62. package/build/lib/cli/command/deploy.d.ts.map +0 -1
  63. package/build/lib/cli/command/deploy.js +0 -2
  64. package/build/lib/cli/command/deploy.js.map +0 -1
  65. package/build/lib/cli/command-init.d.ts +0 -143
  66. package/build/lib/cli/command-init.d.ts.map +0 -1
  67. package/build/lib/cli/command-init.js +0 -164
  68. package/build/lib/cli/command-init.js.map +0 -1
  69. package/build/lib/cli/command-validate.d.ts +0 -52
  70. package/build/lib/cli/command-validate.d.ts.map +0 -1
  71. package/build/lib/cli/command-validate.js +0 -66
  72. package/build/lib/cli/command-validate.js.map +0 -1
  73. package/build/lib/cli/init.d.ts +0 -143
  74. package/build/lib/cli/init.d.ts.map +0 -1
  75. package/build/lib/cli/init.js +0 -164
  76. package/build/lib/cli/init.js.map +0 -1
  77. package/build/lib/cli/options.d.ts +0 -1
  78. package/build/lib/cli/options.d.ts.map +0 -1
  79. package/build/lib/cli/options.js +0 -2
  80. package/build/lib/cli/options.js.map +0 -1
  81. package/build/lib/cli/validate.d.ts +0 -1
  82. package/build/lib/cli/validate.d.ts.map +0 -1
  83. package/build/lib/cli/validate.js +0 -2
  84. package/build/lib/cli/validate.js.map +0 -1
  85. package/build/lib/cli.d.ts +0 -10
  86. package/build/lib/cli.d.ts.map +0 -1
  87. package/build/lib/cli.js +0 -328
  88. package/build/lib/cli.js.map +0 -1
  89. package/build/lib/init-task.d.ts +0 -49
  90. package/build/lib/init-task.d.ts.map +0 -1
  91. package/build/lib/init-task.js +0 -95
  92. package/build/lib/init-task.js.map +0 -1
  93. package/build/lib/io.d.ts +0 -1
  94. package/build/lib/io.d.ts.map +0 -1
  95. package/build/lib/io.js +0 -2
  96. package/build/lib/io.js.map +0 -1
  97. package/build/lib/mkdocs.d.ts +0 -58
  98. package/build/lib/mkdocs.d.ts.map +0 -1
  99. package/build/lib/mkdocs.js +0 -77
  100. package/build/lib/mkdocs.js.map +0 -1
  101. package/build/lib/nav.d.ts +0 -47
  102. package/build/lib/nav.d.ts.map +0 -1
  103. package/build/lib/nav.js +0 -132
  104. package/build/lib/nav.js.map +0 -1
  105. package/build/lib/test.d.ts +0 -9
  106. package/build/lib/test.d.ts.map +0 -1
  107. package/build/lib/test.js +0 -2
  108. package/build/lib/test.js.map +0 -1
  109. package/build/lib/typedoc.d.ts +0 -55
  110. package/build/lib/typedoc.d.ts.map +0 -1
  111. package/build/lib/typedoc.js +0 -122
  112. package/build/lib/typedoc.js.map +0 -1
  113. package/build/lib/types.d.ts +0 -52
  114. package/build/lib/types.d.ts.map +0 -1
  115. package/build/lib/types.js +0 -7
  116. package/build/lib/types.js.map +0 -1
  117. package/build/lib/validation/base-validator.d.ts +0 -218
  118. package/build/lib/validation/base-validator.d.ts.map +0 -1
  119. package/build/lib/validation/base-validator.js +0 -453
  120. package/build/lib/validation/base-validator.js.map +0 -1
  121. package/build/lib/validation/mkdocs-validator.d.ts +0 -5
  122. package/build/lib/validation/mkdocs-validator.d.ts.map +0 -1
  123. package/build/lib/validation/mkdocs-validator.js +0 -54
  124. package/build/lib/validation/mkdocs-validator.js.map +0 -1
  125. package/build/lib/validation/python-validator.d.ts +0 -1
  126. package/build/lib/validation/python-validator.d.ts.map +0 -1
  127. package/build/lib/validation/python-validator.js +0 -2
  128. package/build/lib/validation/python-validator.js.map +0 -1
  129. package/build/lib/validation/python.d.ts +0 -1
  130. package/build/lib/validation/python.d.ts.map +0 -1
  131. package/build/lib/validation/python.js +0 -2
  132. package/build/lib/validation/python.js.map +0 -1
  133. package/build/lib/validation/validate.d.ts +0 -221
  134. package/build/lib/validation/validate.d.ts.map +0 -1
  135. package/build/lib/validation/validate.js +0 -508
  136. package/build/lib/validation/validate.js.map +0 -1
  137. package/build/lib/validation/validator.d.ts +0 -220
  138. package/build/lib/validation/validator.d.ts.map +0 -1
  139. package/build/lib/validation/validator.js +0 -470
  140. package/build/lib/validation/validator.js.map +0 -1
  141. package/build/test/unit/mike.spec.js +0 -17
  142. package/build/test/unit/mike.spec.js.map +0 -1
@@ -1,453 +0,0 @@
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.BaseValidator = void 0;
7
- require("type-fest");
8
- /**
9
- * Validates an environment for building documentation
10
- *
11
- * @module
12
- */
13
- const support_1 = require("@appium/support");
14
- const chalk_1 = __importDefault(require("chalk"));
15
- const lodash_1 = __importDefault(require("lodash"));
16
- const node_events_1 = require("node:events");
17
- const node_path_1 = __importDefault(require("node:path"));
18
- const pluralize_1 = __importDefault(require("pluralize"));
19
- const semver_1 = require("semver");
20
- const teen_process_1 = require("teen_process");
21
- const constants_1 = require("../constants");
22
- const error_1 = require("../error");
23
- const fs_1 = require("../fs");
24
- const logger_1 = __importDefault(require("../logger"));
25
- const util_1 = require("../util");
26
- /**
27
- * Matches the Python version string from `python --version`
28
- */
29
- const PYTHON_VER_STR = 'Python 3.';
30
- /**
31
- * Matches the TypeScript version string from `tsc --version`
32
- */
33
- const TYPESCRIPT_VERSION_REGEX = /Version\s(\d+\.\d+\..+)/;
34
- /**
35
- * Matches the TypeDoc version string from `typedoc --version`
36
- */
37
- const TYPEDOC_VERSION_REGEX = /TypeDoc\s(\d+\.\d+\..+)/;
38
- const log = logger_1.default.withTag('validate');
39
- /**
40
- * This class is designed to run _all_ validation checks (as requested by the user), and emit events for
41
- * each failure encountered.
42
- *
43
- * Whenever a method _rejects or throws_, this is considered an "unexpected" error, and the validation
44
- * will abort.
45
- *
46
- * @todo Use [`strict-event-emitter-types`](https://npm.im/strict-event-emitter-types)
47
- */
48
- class BaseValidator extends node_events_1.EventEmitter {
49
- /**
50
- * Creates a listener to track errors emitted
51
- */
52
- constructor(opts = {}) {
53
- super();
54
- /**
55
- * List of validations to perform
56
- */
57
- this._validations = new Set();
58
- /**
59
- * Mapping of error messages to errors.
60
- *
61
- * Used to prevent duplicate emission of errors and track error count; if non-empty, the validation
62
- * process should be considered to have failed.
63
- *
64
- * Reset after {@linkcode BaseValidator.validate validate} completes.
65
- */
66
- this.emittedErrors = new Map();
67
- this.opts = Object.freeze(lodash_1.default.defaultsDeep(opts, { cwd: process.cwd() }));
68
- this.packageJsonPath = this.opts.packageJson;
69
- this.pythonPath = this.opts.pythonPath;
70
- this.cwd = this.opts.cwd;
71
- this.tsconfigJsonPath = this.opts.tsconfigJson;
72
- this.typeDocJsonPath = this.opts.typedocJson;
73
- this.npmPath = this.opts.npm;
74
- this.mkDocsYmlPath = this.opts.mkdocsYml;
75
- // this just tracks the emitted errors
76
- this.on(BaseValidator.FAILURE, (err) => {
77
- this.emittedErrors.set(err.message, err);
78
- });
79
- }
80
- get errorCount() {
81
- return this.emittedErrors.size;
82
- }
83
- /**
84
- * Runs the configured validations, then resets internal state upon completion or rejection.
85
- */
86
- async validate() {
87
- try {
88
- this.emit(BaseValidator.BEGIN, [...this._validations]);
89
- if (this._validations.has(constants_1.NAME_PYTHON)) {
90
- await this.validatePythonVersion();
91
- await this.validatePythonDeps();
92
- }
93
- if (this._validations.has(constants_1.NAME_MKDOCS)) {
94
- // await this.validateMkDocs();
95
- await this.validateMkDocsConfig();
96
- }
97
- if (this._validations.has(constants_1.NAME_NPM)) {
98
- await this.validateNpmVersion();
99
- }
100
- if (this._validations.has(constants_1.NAME_TYPESCRIPT)) {
101
- await this.validateTypeScript();
102
- await this.validateTypeScriptConfig();
103
- }
104
- if (this._validations.has(constants_1.NAME_TYPEDOC)) {
105
- await this.validateTypeDoc();
106
- await this.validateTypeDocConfig();
107
- }
108
- this.emit(BaseValidator.END, this.emittedErrors.size);
109
- }
110
- finally {
111
- this.reset();
112
- }
113
- }
114
- /**
115
- * If a thing like `err` has not already been emitted, emit
116
- * {@linkcode BaseValidator.FAILURE}.
117
- * @param err A validation error
118
- * @returns
119
- */
120
- fail(err) {
121
- const dErr = lodash_1.default.isString(err) ? new error_1.DocutilsError(err) : err;
122
- if (!this.emittedErrors.has(dErr.message)) {
123
- this.emit(BaseValidator.FAILURE, dErr);
124
- }
125
- }
126
- /**
127
- * Resolves with a the parent directory of `package.json`, if we can find it.
128
- */
129
- async findPkgDir() {
130
- return (this.pkgDir ??
131
- (this.pkgDir = this.packageJsonPath
132
- ? node_path_1.default.dirname(this.packageJsonPath)
133
- : await (0, fs_1.findPkgDir)(this.cwd)));
134
- }
135
- /**
136
- * Emits a {@linkcode BaseValidator.SUCCESS} event
137
- * @param message Success message
138
- */
139
- ok(message) {
140
- this.emit(BaseValidator.SUCCESS, message);
141
- }
142
- /**
143
- * Parses a `requirements.txt` file and returns an array of packages
144
- *
145
- * Caches the result.
146
- * @returns List of package data w/ name and version
147
- */
148
- async parseRequirementsTxt() {
149
- if (this.requirementsTxt) {
150
- return this.requirementsTxt;
151
- }
152
- let requiredPackages = [];
153
- try {
154
- let requirementsTxt = await support_1.fs.readFile(constants_1.REQUIREMENTS_TXT_PATH, 'utf8');
155
- requirementsTxt = requirementsTxt.trim();
156
- log.debug('Raw %s: %s', constants_1.NAME_REQUIREMENTS_TXT, requirementsTxt);
157
- for (const line of requirementsTxt.split(/\r?\n/)) {
158
- const [name, version] = line.trim().split('==');
159
- requiredPackages.push({ name, version });
160
- }
161
- log.debug('Parsed %s: %O', constants_1.NAME_REQUIREMENTS_TXT, requiredPackages);
162
- }
163
- catch {
164
- throw new error_1.DocutilsError(`Could not find ${constants_1.REQUIREMENTS_TXT_PATH}. This is a bug`);
165
- }
166
- return (this.requirementsTxt = requiredPackages);
167
- }
168
- /**
169
- * Resets the cache of emitted errors
170
- */
171
- reset() {
172
- this.emittedErrors.clear();
173
- }
174
- /**
175
- * Validates (sort of) an `mkdocs.yml` config file.
176
- *
177
- * It checks if the file exists, if it can be parsed as YAML, and if it has a `site_name` property.
178
- */
179
- async validateMkDocsConfig(mkDocsYmlPath) {
180
- mkDocsYmlPath = mkDocsYmlPath ?? this.mkDocsYmlPath ?? (await (0, fs_1.findMkDocsYml)(this.cwd));
181
- if (!mkDocsYmlPath) {
182
- return this.fail(`Could not find ${constants_1.NAME_MKDOCS_YML} from ${this.cwd}. Run "${constants_1.NAME_BIN} init" to create it`);
183
- }
184
- let mkDocsYml;
185
- try {
186
- mkDocsYml = await (0, fs_1.readMkDocsYml)(mkDocsYmlPath);
187
- }
188
- catch (e) {
189
- const err = e;
190
- if (err.code === constants_1.NAME_ERR_ENOENT) {
191
- return this.fail(`Could not find ${constants_1.NAME_MKDOCS_YML} at ${mkDocsYmlPath}. Use --mkdocs-yml to specify a different path.`);
192
- }
193
- return this.fail(`Could not parse ${mkDocsYmlPath}: ${err}`);
194
- }
195
- if (!mkDocsYml.site_name) {
196
- return this.fail(`Could not find required property "site_name" in ${mkDocsYmlPath}`);
197
- }
198
- this.ok(`MkDocs config at ${mkDocsYmlPath} OK`);
199
- }
200
- /**
201
- * Validates that the version of `npm` matches what's described in this package's `engines` field.
202
- *
203
- * This is required because other validators need `npm exec` to work, which is only available in npm 7+.
204
- */
205
- async validateNpmVersion() {
206
- const npmEngineRange = constants_1.DOCUTILS_PKG.engines?.npm;
207
- if (!npmEngineRange) {
208
- throw new error_1.DocutilsError('Could not find property engines.npm in package.json. This is a bug');
209
- }
210
- try {
211
- const npmPath = this.npmPath ?? (await (0, fs_1.whichNpm)());
212
- if (!npmPath) {
213
- throw new error_1.DocutilsError(`Could not find ${constants_1.NAME_NPM} in PATH. That seems weird, doesn't it?`);
214
- }
215
- const { stdout: npmVersion } = await (0, teen_process_1.exec)(npmPath, ['-v']);
216
- if (!(0, semver_1.satisfies)(npmVersion.trim(), npmEngineRange)) {
217
- this.fail(`${constants_1.NAME_NPM} is version ${npmVersion}, but ${npmEngineRange} is required`);
218
- return;
219
- }
220
- }
221
- catch {
222
- return this.fail(`Could not find ${this.npmPath} in PATH. Is it installed?`);
223
- }
224
- this.ok(`${constants_1.NAME_NPM} version OK`);
225
- }
226
- /**
227
- * Asserts that the dependencies as listed in `requirements.txt` are installed.
228
- *
229
- * @privateRemarks This lists all installed packages with `pip` and then compares them to the
230
- * contents of our `requirements.txt`. Versions _must_ match exactly.
231
- */
232
- async validatePythonDeps() {
233
- let pipListOutput;
234
- const pythonPath = this.pythonPath ?? (await (0, fs_1.whichPython)());
235
- if (!pythonPath) {
236
- return this.fail(`Could not find ${constants_1.NAME_PYTHON} in PATH. Is it installed?`);
237
- }
238
- try {
239
- ({ stdout: pipListOutput } = await (0, teen_process_1.exec)(pythonPath, [
240
- '-m',
241
- constants_1.NAME_PIP,
242
- 'list',
243
- '--format',
244
- 'json',
245
- ]));
246
- }
247
- catch {
248
- return this.fail(`Could not find ${constants_1.NAME_PIP} in PATH. Is it installed?`);
249
- }
250
- let installedPkgs;
251
- try {
252
- installedPkgs = JSON.parse(pipListOutput);
253
- }
254
- catch {
255
- throw new error_1.DocutilsError(`Could not parse output of "${constants_1.NAME_PIP} list" as JSON: ${pipListOutput}`);
256
- }
257
- const pkgsByName = lodash_1.default.mapValues(lodash_1.default.keyBy(installedPkgs, 'name'), 'version');
258
- log.debug('Installed Python packages: %O', pkgsByName);
259
- const requiredPackages = await this.parseRequirementsTxt();
260
- const missingPackages = [];
261
- const invalidVersionPackages = [];
262
- for (const reqdPkg of requiredPackages) {
263
- const version = pkgsByName[reqdPkg.name];
264
- if (!version) {
265
- missingPackages.push(reqdPkg);
266
- }
267
- if (version !== reqdPkg.version) {
268
- invalidVersionPackages.push([reqdPkg, { name: reqdPkg.name, version }]);
269
- }
270
- }
271
- const msgParts = [];
272
- if (missingPackages.length) {
273
- msgParts.push(`The following required ${(0, pluralize_1.default)('package', missingPackages.length)} could not be found:\n${missingPackages
274
- .map((p) => (0, chalk_1.default) `- {yellow ${p.name}} @ {yellow ${p.version}}`)
275
- .join('\n')}`);
276
- }
277
- if (invalidVersionPackages.length) {
278
- msgParts.push(`The following required ${(0, pluralize_1.default)('package', invalidVersionPackages.length)} are installed, but at the wrong version:\n${invalidVersionPackages
279
- .map(([expected, actual]) => (0, chalk_1.default) `- {yellow ${expected.name}} @ {yellow ${expected.version}} (found {red ${actual.version}})`)
280
- .join('\n')}`);
281
- }
282
- if (msgParts.length) {
283
- return this.fail(`Required Python dependency validation failed:\n\n${msgParts.join('\n\n')}`);
284
- }
285
- this.ok('Python dependencies OK');
286
- }
287
- /**
288
- * Asserts that the Python version is 3.x
289
- */
290
- async validatePythonVersion() {
291
- const pythonPath = this.pythonPath ?? (await (0, fs_1.whichPython)());
292
- if (!pythonPath) {
293
- return this.fail(`Could not find ${constants_1.NAME_PYTHON} in PATH. Is it installed?`);
294
- }
295
- try {
296
- const { stdout } = await (0, teen_process_1.exec)(pythonPath, ['--version']);
297
- if (!stdout.includes(PYTHON_VER_STR)) {
298
- return this.fail(`Could not find Python 3.x in PATH; found ${stdout}. Please use --python-path`);
299
- }
300
- }
301
- catch {
302
- return this.fail(`Could not find Python 3.x in PATH.`);
303
- }
304
- this.ok('Python version OK');
305
- }
306
- /**
307
- * Asserts TypeDoc is installed, runnable, the correct version, and that the config file is readable
308
- * and constaints required options
309
- */
310
- async validateTypeDoc() {
311
- const pkgDir = await this.findPkgDir();
312
- let rawTypeDocVersion;
313
- let typeDocVersion;
314
- try {
315
- ({ stdout: rawTypeDocVersion } = await (0, teen_process_1.exec)('npm', ['exec', constants_1.NAME_TYPEDOC, '--', '--version'], {
316
- cwd: pkgDir,
317
- }));
318
- }
319
- catch {
320
- return this.fail(`Could not find ${constants_1.NAME_TYPEDOC} executable from ${pkgDir}`);
321
- }
322
- if (rawTypeDocVersion) {
323
- let match = rawTypeDocVersion.match(TYPEDOC_VERSION_REGEX);
324
- if (match) {
325
- typeDocVersion = match[1];
326
- }
327
- else {
328
- throw new error_1.DocutilsError(`Could not parse TypeDoc version from "typedoc --version"; output was:\n ${rawTypeDocVersion}`);
329
- }
330
- const reqdTypeDocVersion = constants_1.DOCUTILS_PKG.dependencies.typedoc;
331
- if (!(0, semver_1.satisfies)(typeDocVersion, reqdTypeDocVersion)) {
332
- return this.fail(`Found TypeDoc version ${typeDocVersion}, but ${reqdTypeDocVersion} is required`);
333
- }
334
- this.ok('TypeDoc install OK');
335
- }
336
- }
337
- /**
338
- * Validates the `typedoc.json` file
339
- */
340
- async validateTypeDocConfig() {
341
- const pkgDir = await this.findPkgDir();
342
- if (!pkgDir) {
343
- return this.fail(new error_1.DocutilsError(`Could not find package.json in ${this.cwd}`));
344
- }
345
- const typeDocJsonPath = (this.typeDocJsonPath =
346
- this.typeDocJsonPath ?? node_path_1.default.join(pkgDir, constants_1.NAME_TYPEDOC_JSON));
347
- const relTypeDocJsonPath = (0, util_1.relative)(this.cwd, typeDocJsonPath);
348
- let typeDocJson;
349
- // handle the case where the user passes a JS file as the typedoc config
350
- // (which is allowed by TypeDoc)
351
- if (typeDocJsonPath.endsWith('.js')) {
352
- try {
353
- typeDocJson = require(typeDocJsonPath);
354
- }
355
- catch (err) {
356
- throw new error_1.DocutilsError(`TypeDoc config at ${relTypeDocJsonPath} threw an exception: ${err}`);
357
- }
358
- }
359
- else {
360
- try {
361
- typeDocJson = (0, fs_1.readTypedocJson)(typeDocJsonPath);
362
- }
363
- catch (e) {
364
- if (e instanceof SyntaxError) {
365
- return this.fail(new error_1.DocutilsError(`Unparseable ${constants_1.NAME_TYPEDOC_JSON} at ${relTypeDocJsonPath}: ${e}`));
366
- }
367
- return this.fail(new error_1.DocutilsError(`Missing ${constants_1.NAME_TYPEDOC_JSON} at ${relTypeDocJsonPath}; "${constants_1.NAME_BIN} init" can help`));
368
- }
369
- }
370
- if (!typeDocJson.out) {
371
- return this.fail(new error_1.DocutilsError(`Missing "out" property in ${relTypeDocJsonPath}; path "${constants_1.DEFAULT_REL_TYPEDOC_OUT_PATH} is recommended`));
372
- }
373
- this.ok('TypeDoc config OK');
374
- }
375
- /**
376
- * Asserts that TypeScript is installed, runnable, the correct version, and a parseable `tsconfig.json` exists.
377
- */
378
- async validateTypeScript() {
379
- const pkgDir = await this.findPkgDir();
380
- if (!pkgDir) {
381
- return this.fail(`Could not find package.json in ${this.cwd}`);
382
- }
383
- let typeScriptVersion;
384
- let rawTypeScriptVersion;
385
- try {
386
- ({ stdout: rawTypeScriptVersion } = await (0, teen_process_1.exec)(constants_1.NAME_NPM, ['exec', 'tsc', '--', '--version'], {
387
- cwd: pkgDir,
388
- }));
389
- }
390
- catch {
391
- return this.fail(`Could not find TypeScript compiler ("tsc") from ${pkgDir}`);
392
- }
393
- let match = rawTypeScriptVersion.match(TYPESCRIPT_VERSION_REGEX);
394
- if (match) {
395
- typeScriptVersion = match[1];
396
- }
397
- else {
398
- return this.fail(`Could not parse TypeScript version from "tsc --version"; output was:\n ${rawTypeScriptVersion}`);
399
- }
400
- const reqdTypeScriptVersion = constants_1.DOCUTILS_PKG.dependencies?.typescript;
401
- if (!reqdTypeScriptVersion) {
402
- throw new error_1.DocutilsError(`Could not find a dep for ${constants_1.NAME_TYPESCRIPT} in ${constants_1.NAME_PACKAGE_JSON}. This is a bug.`);
403
- }
404
- if (!(0, semver_1.satisfies)(typeScriptVersion, reqdTypeScriptVersion)) {
405
- return this.fail(`Found TypeScript version ${typeScriptVersion}, but ${reqdTypeScriptVersion} is required`);
406
- }
407
- this.ok('TypeScript install OK');
408
- }
409
- /**
410
- * Validates a `tsconfig.json` file
411
- */
412
- async validateTypeScriptConfig() {
413
- const pkgDir = await this.findPkgDir();
414
- if (!pkgDir) {
415
- return this.fail(new error_1.DocutilsError(`Could not find package.json in ${this.cwd}`));
416
- }
417
- const tsconfigJsonPath = (this.tsconfigJsonPath =
418
- this.tsconfigJsonPath ?? node_path_1.default.join(pkgDir, constants_1.NAME_TSCONFIG_JSON));
419
- const relTsconfigJsonPath = (0, util_1.relative)(this.cwd, tsconfigJsonPath);
420
- try {
421
- await (0, fs_1.readJson5)(tsconfigJsonPath);
422
- }
423
- catch (e) {
424
- if (e instanceof SyntaxError) {
425
- return this.fail(new error_1.DocutilsError(`Unparseable ${constants_1.NAME_TSCONFIG_JSON} at ${relTsconfigJsonPath}: ${e}`));
426
- }
427
- return this.fail(new error_1.DocutilsError(`Missing ${constants_1.NAME_TSCONFIG_JSON} at ${relTsconfigJsonPath}; "${constants_1.NAME_BIN} init" can help`));
428
- }
429
- this.ok('TypeScript config OK');
430
- }
431
- }
432
- exports.BaseValidator = BaseValidator;
433
- /**
434
- * Emitted when validation begins with a list of validation kinds to be performed
435
- * @event
436
- */
437
- BaseValidator.BEGIN = 'begin';
438
- /**
439
- * Emitted when validation ends with an error count
440
- * @event
441
- */
442
- BaseValidator.END = 'end';
443
- /**
444
- * Emitted when a validation fails, with the associated {@linkcode DocutilsError}
445
- * @event
446
- */
447
- BaseValidator.FAILURE = 'fail';
448
- /**
449
- * Emitted when a validation succeeds
450
- * @event
451
- */
452
- BaseValidator.SUCCESS = 'ok';
453
- //# sourceMappingURL=base-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-validator.js","sourceRoot":"","sources":["../../../lib/validation/base-validator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { DocutilsValidator } from './validator';
2
- export declare class MkDocsValidator extends DocutilsValidator {
3
- protected validateMkDocs(): Promise<void>;
4
- }
5
- //# sourceMappingURL=mkdocs-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mkdocs-validator.d.ts","sourceRoot":"","sources":["../../../lib/validation/mkdocs-validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAO9C,qBAAa,eAAgB,SAAQ,iBAAiB;cACpC,cAAc;CAyC/B"}
@@ -1,54 +0,0 @@
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.MkDocsValidator = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const teen_process_1 = require("teen_process");
9
- const constants_1 = require("../constants");
10
- const error_1 = require("../error");
11
- const fs_1 = require("../fs");
12
- const validator_1 = require("./validator");
13
- /**
14
- * Matches the MkDocs version string from `mkdocs --version`
15
- */
16
- const MKDOCS_VERSION_REGEX = /mkdocs,\s+version\s+(\d+\.\d+\.\S+)/;
17
- class MkDocsValidator extends validator_1.DocutilsValidator {
18
- async validateMkDocs() {
19
- let mkDocsPath;
20
- try {
21
- mkDocsPath = await (0, fs_1.whichMkDocs)();
22
- }
23
- catch {
24
- // _pretty sure_ the exception code is always ENOENT
25
- return this.fail(`Could not find ${constants_1.NAME_MKDOCS} executable in PATH. If it is installed, check your PATH environment variable.`);
26
- }
27
- let rawMkDocsVersion;
28
- try {
29
- ({ stdout: rawMkDocsVersion } = await (0, teen_process_1.exec)(mkDocsPath, ['--version']));
30
- }
31
- catch (err) {
32
- return this.fail(`${mkDocsPath} --version failed: ${err}`);
33
- }
34
- const match = rawMkDocsVersion.match(MKDOCS_VERSION_REGEX);
35
- if (match) {
36
- const version = match[1];
37
- const reqs = await this.parseRequirementsTxt();
38
- const mkDocsPipPkg = lodash_1.default.find(reqs, { name: constants_1.NAME_MKDOCS });
39
- if (!mkDocsPipPkg) {
40
- throw new error_1.DocutilsError(`No ${constants_1.NAME_MKDOCS} package in ${constants_1.REQUIREMENTS_TXT_PATH}. This is a bug.`);
41
- }
42
- const { version: mkDocsReqdVersion } = mkDocsPipPkg;
43
- if (version !== mkDocsReqdVersion) {
44
- return this.fail(`${constants_1.NAME_MKDOCS} at ${mkDocsPath} is v${version}, but ${constants_1.REQUIREMENTS_TXT_PATH} requires v${mkDocsReqdVersion}`);
45
- }
46
- }
47
- else {
48
- throw new error_1.DocutilsError(`Could not parse version from "${mkDocsPath} --version". This is a bug. Output was ${rawMkDocsVersion}`);
49
- }
50
- this.ok('MkDocs install OK');
51
- }
52
- }
53
- exports.MkDocsValidator = MkDocsValidator;
54
- //# sourceMappingURL=mkdocs-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mkdocs-validator.js","sourceRoot":"","sources":["../../../lib/validation/mkdocs-validator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,+CAAkC;AAClC,4CAAgE;AAChE,oCAAuC;AACvC,8BAAkC;AAClC,2CAA8C;AAE9C;;GAEG;AACH,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAEnE,MAAa,eAAgB,SAAQ,6BAAiB;IAC1C,KAAK,CAAC,cAAc;QAC5B,IAAI,UAA8B,CAAC;QACnC,IAAI;YACF,UAAU,GAAG,MAAM,IAAA,gBAAW,GAAE,CAAC;SAClC;QAAC,MAAM;YACN,oDAAoD;YACpD,OAAO,IAAI,CAAC,IAAI,CACd,kBAAkB,uBAAW,gFAAgF,CAC9G,CAAC;SACH;QAED,IAAI,gBAAoC,CAAC;QACzC,IAAI;YACF,CAAC,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACtE;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,sBAAsB,GAAG,EAAE,CAAC,CAAC;SAC5D;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,uBAAW,EAAC,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,qBAAa,CACrB,MAAM,uBAAW,eAAe,iCAAqB,kBAAkB,CACxE,CAAC;aACH;YACD,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAC,GAAG,YAAY,CAAC;YAClD,IAAI,OAAO,KAAK,iBAAiB,EAAE;gBACjC,OAAO,IAAI,CAAC,IAAI,CACd,GAAG,uBAAW,OAAO,UAAU,QAAQ,OAAO,SAAS,iCAAqB,cAAc,iBAAiB,EAAE,CAC9G,CAAC;aACH;SACF;aAAM;YACL,MAAM,IAAI,qBAAa,CACrB,iCAAiC,UAAU,0CAA0C,gBAAgB,EAAE,CACxG,CAAC;SACH;QAED,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;CACF;AA1CD,0CA0CC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=python-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python-validator.d.ts","sourceRoot":"","sources":["../../../lib/validation/python-validator.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=python-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python-validator.js","sourceRoot":"","sources":["../../../lib/validation/python-validator.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=python.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../lib/validation/python.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=python.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../lib/validation/python.ts"],"names":[],"mappings":""}