@thegetty/quire-cli 1.0.0-rc.45 → 1.0.0-rc.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -36
- package/README.md +0 -9
- package/bin/cli.js +1 -46
- package/package.json +10 -27
- package/src/Command.js +6 -26
- package/src/commands/README.md +122 -213
- package/src/commands/build.js +37 -45
- package/src/commands/clean.js +19 -33
- package/src/commands/conf.js +43 -0
- package/src/commands/create.js +14 -42
- package/src/commands/epub.js +31 -67
- package/src/commands/index.js +2 -9
- package/src/commands/info.js +86 -88
- package/src/commands/pdf.js +82 -63
- package/src/commands/preview.js +31 -32
- package/src/commands/validate.js +20 -64
- package/src/commands/version.js +43 -0
- package/src/errors/validation/validation-error.js +11 -20
- package/src/helpers/clean.js +1 -1
- package/src/helpers/is-quire.js +31 -0
- package/src/helpers/test-cwd.js +6 -5
- package/src/helpers/which.js +4 -10
- package/src/lib/11ty/README.md +19 -135
- package/src/lib/11ty/api.js +93 -235
- package/src/lib/11ty/cli.js +37 -112
- package/src/lib/11ty/index.js +5 -64
- package/src/lib/11ty/paths.js +103 -0
- package/src/lib/README.md +0 -330
- package/src/lib/conf/README.md +69 -86
- package/src/lib/conf/config.js +3 -5
- package/src/lib/conf/defaults.js +0 -65
- package/src/lib/conf/schema.js +9 -103
- package/src/lib/epub/README.md +2 -133
- package/src/lib/epub/epub.js +11 -36
- package/src/lib/epub/index.js +21 -111
- package/src/lib/epub/pandoc.js +4 -33
- package/src/lib/git/README.md +2 -151
- package/src/lib/git/index.js +13 -217
- package/src/lib/i18n/README.md +3 -0
- package/src/lib/i18n/config.js +53 -0
- package/src/lib/i18n/index.js +43 -0
- package/src/lib/i18n/localeService.js +58 -0
- package/src/lib/pdf/README.md +0 -131
- package/src/lib/pdf/index.js +21 -124
- package/src/lib/pdf/paged.js +52 -100
- package/src/lib/pdf/prince.js +37 -115
- package/src/lib/pdf/split.js +33 -61
- package/src/lib/quire/README.md +19 -0
- package/src/lib/quire/index.js +353 -0
- package/src/lib/reporter/README.md +2 -211
- package/src/lib/reporter/index.js +0 -607
- package/src/main.js +48 -221
- package/src/packageConfig.js +0 -17
- package/src/validators/utils.js +1 -2
- package/man/quire.1 +0 -341
- package/man/quire.1.md +0 -232
- package/schemas/config.schema.json +0 -194
- package/schemas/figures.schema.json +0 -56
- package/schemas/layout.schema.json +0 -5
- package/schemas/objects.schema.json +0 -62
- package/schemas/publication.schema.json +0 -140
- package/schemas/references.schema.json +0 -29
- package/src/Command.spec.js +0 -99
- package/src/commands/build.spec.js +0 -113
- package/src/commands/build.test.js +0 -397
- package/src/commands/clean.spec.js +0 -118
- package/src/commands/clean.test.js +0 -382
- package/src/commands/config.js +0 -238
- package/src/commands/config.spec.js +0 -107
- package/src/commands/config.test.js +0 -845
- package/src/commands/create.spec.js +0 -112
- package/src/commands/create.test.js +0 -415
- package/src/commands/doctor.js +0 -251
- package/src/commands/doctor.spec.js +0 -115
- package/src/commands/doctor.test.js +0 -1409
- package/src/commands/epub.spec.js +0 -114
- package/src/commands/epub.test.js +0 -503
- package/src/commands/help.js +0 -60
- package/src/commands/help.test.js +0 -132
- package/src/commands/info.spec.js +0 -72
- package/src/commands/info.test.js +0 -512
- package/src/commands/pdf.spec.js +0 -114
- package/src/commands/pdf.test.js +0 -464
- package/src/commands/preview.spec.js +0 -97
- package/src/commands/preview.test.js +0 -250
- package/src/commands/use.js +0 -56
- package/src/commands/use.spec.js +0 -61
- package/src/commands/use.test.js +0 -280
- package/src/commands/validate.spec.js +0 -90
- package/src/commands/validate.test.js +0 -378
- package/src/commands/workflows.js +0 -70
- package/src/errors/build/build-failed-error.js +0 -19
- package/src/errors/build/config-field-missing-error.js +0 -20
- package/src/errors/build/config-file-not-found-error.js +0 -20
- package/src/errors/build/index.js +0 -11
- package/src/errors/help/help-topic-not-found-error.js +0 -30
- package/src/errors/help/index.js +0 -8
- package/src/errors/index.js +0 -58
- package/src/errors/input/index.js +0 -8
- package/src/errors/input/invalid-input-error.js +0 -21
- package/src/errors/install/dependency-install-error.js +0 -19
- package/src/errors/install/directory-not-empty-error.js +0 -25
- package/src/errors/install/index.js +0 -12
- package/src/errors/install/invalid-path-error.js +0 -31
- package/src/errors/install/invalid-starter-error.js +0 -27
- package/src/errors/install/version-not-found-error.js +0 -35
- package/src/errors/output/epub-generation-error.js +0 -19
- package/src/errors/output/index.js +0 -14
- package/src/errors/output/invalid-epub-library-error.js +0 -20
- package/src/errors/output/invalid-pdf-library-error.js +0 -20
- package/src/errors/output/missing-build-output-error.js +0 -21
- package/src/errors/output/pdf-generation-error.js +0 -24
- package/src/errors/output/tool-not-found-error.js +0 -37
- package/src/errors/project/index.js +0 -10
- package/src/errors/project/not-in-project-error.js +0 -20
- package/src/errors/project/project-create-error.js +0 -21
- package/src/errors/quire-error.js +0 -27
- package/src/errors/validation/index.js +0 -3
- package/src/errors/validation/unknown-config-key-error.js +0 -27
- package/src/errors/validation/unknown-config-operation-error.js +0 -24
- package/src/helpers/docs-url.js +0 -32
- package/src/helpers/pager.js +0 -59
- package/src/helpers/pager.test.js +0 -85
- package/src/helpers/suggest-similar.js +0 -124
- package/src/helpers/suggest-similar.test.js +0 -108
- package/src/helpers/test-cwd.test.js +0 -192
- package/src/lib/11ty/index.test.js +0 -655
- package/src/lib/commander/index.js +0 -103
- package/src/lib/commander/index.test.js +0 -86
- package/src/lib/commander/options.js +0 -237
- package/src/lib/commander/options.test.js +0 -205
- package/src/lib/conf/build-status.js +0 -103
- package/src/lib/conf/build-status.test.js +0 -247
- package/src/lib/conf/config.test.js +0 -281
- package/src/lib/conf/format.js +0 -60
- package/src/lib/conf/format.test.js +0 -106
- package/src/lib/conf/helpers.js +0 -91
- package/src/lib/conf/helpers.test.js +0 -136
- package/src/lib/conf/index.js +0 -22
- package/src/lib/constants.js +0 -28
- package/src/lib/doctor/README.md +0 -667
- package/src/lib/doctor/checks/environment/cli-version.js +0 -62
- package/src/lib/doctor/checks/environment/cli-version.test.js +0 -132
- package/src/lib/doctor/checks/environment/git-available.js +0 -77
- package/src/lib/doctor/checks/environment/git-available.test.js +0 -52
- package/src/lib/doctor/checks/environment/index.js +0 -13
- package/src/lib/doctor/checks/environment/node-version.js +0 -66
- package/src/lib/doctor/checks/environment/node-version.test.js +0 -17
- package/src/lib/doctor/checks/environment/npm-available.js +0 -66
- package/src/lib/doctor/checks/environment/npm-available.test.js +0 -52
- package/src/lib/doctor/checks/environment/os-info.js +0 -48
- package/src/lib/doctor/checks/environment/os-info.test.js +0 -81
- package/src/lib/doctor/checks/environment/runtime-info.js +0 -51
- package/src/lib/doctor/checks/environment/runtime-info.test.js +0 -132
- package/src/lib/doctor/checks/outputs/epub-output.js +0 -119
- package/src/lib/doctor/checks/outputs/epub-output.test.js +0 -277
- package/src/lib/doctor/checks/outputs/index.js +0 -10
- package/src/lib/doctor/checks/outputs/pdf-output.js +0 -144
- package/src/lib/doctor/checks/outputs/pdf-output.test.js +0 -377
- package/src/lib/doctor/checks/outputs/stale-build.js +0 -122
- package/src/lib/doctor/checks/outputs/stale-build.test.js +0 -282
- package/src/lib/doctor/checks/project/data-files.js +0 -56
- package/src/lib/doctor/checks/project/data-files.test.js +0 -125
- package/src/lib/doctor/checks/project/dependencies.js +0 -53
- package/src/lib/doctor/checks/project/dependencies.test.js +0 -71
- package/src/lib/doctor/checks/project/index.js +0 -11
- package/src/lib/doctor/checks/project/quire-11ty.js +0 -98
- package/src/lib/doctor/checks/project/quire-11ty.test.js +0 -170
- package/src/lib/doctor/checks/project/quire-project.js +0 -38
- package/src/lib/doctor/checks/project/quire-project.test.js +0 -47
- package/src/lib/doctor/checks/tools/index.js +0 -10
- package/src/lib/doctor/checks/tools/pandoc-available.js +0 -82
- package/src/lib/doctor/checks/tools/pandoc-available.test.js +0 -73
- package/src/lib/doctor/checks/tools/prince-available.js +0 -81
- package/src/lib/doctor/checks/tools/prince-available.test.js +0 -73
- package/src/lib/doctor/constants.js +0 -39
- package/src/lib/doctor/formatDuration.js +0 -108
- package/src/lib/doctor/formatDuration.test.js +0 -76
- package/src/lib/doctor/formatters/human.js +0 -257
- package/src/lib/doctor/formatters/human.test.js +0 -463
- package/src/lib/doctor/formatters/index.js +0 -8
- package/src/lib/doctor/formatters/json.js +0 -78
- package/src/lib/doctor/formatters/json.test.js +0 -174
- package/src/lib/doctor/formatters/shared.js +0 -129
- package/src/lib/doctor/formatters/shared.test.js +0 -194
- package/src/lib/doctor/index.js +0 -271
- package/src/lib/doctor/index.test.js +0 -797
- package/src/lib/epub/engines.js +0 -46
- package/src/lib/epub/index.test.js +0 -518
- package/src/lib/epub/pandoc.test.js +0 -122
- package/src/lib/epub/schema.js +0 -21
- package/src/lib/error/README.md +0 -170
- package/src/lib/error/handler.js +0 -107
- package/src/lib/git/index.spec.js +0 -80
- package/src/lib/git/index.test.js +0 -453
- package/src/lib/help/frontmatter.js +0 -77
- package/src/lib/help/frontmatter.test.js +0 -139
- package/src/lib/help/index.js +0 -146
- package/src/lib/help/index.test.js +0 -188
- package/src/lib/help/topics/configuration.md +0 -77
- package/src/lib/help/topics/debugging.md +0 -69
- package/src/lib/help/topics/epub.md +0 -74
- package/src/lib/help/topics/pdf.md +0 -74
- package/src/lib/help/topics/publishing.md +0 -80
- package/src/lib/help/topics/workflows.md +0 -50
- package/src/lib/installer/index.js +0 -309
- package/src/lib/installer/index.spec.js +0 -83
- package/src/lib/installer/index.test.js +0 -545
- package/src/lib/logger/README.md +0 -424
- package/src/lib/logger/debug.js +0 -132
- package/src/lib/logger/debug.spec.js +0 -130
- package/src/lib/logger/debug.test.js +0 -128
- package/src/lib/logger/index.js +0 -228
- package/src/lib/logger/index.spec.js +0 -131
- package/src/lib/logger/index.test.js +0 -578
- package/src/lib/npm/README.md +0 -127
- package/src/lib/npm/index.js +0 -198
- package/src/lib/npm/index.spec.js +0 -60
- package/src/lib/npm/index.test.js +0 -355
- package/src/lib/pdf/engines.js +0 -46
- package/src/lib/pdf/index.test.js +0 -708
- package/src/lib/pdf/paged.test.js +0 -366
- package/src/lib/pdf/prince.test.js +0 -202
- package/src/lib/pdf/schema.js +0 -21
- package/src/lib/pdf/split.test.js +0 -445
- package/src/lib/platform.js +0 -95
- package/src/lib/process/manager.js +0 -110
- package/src/lib/process/manager.test.js +0 -55
- package/src/lib/project/build.js +0 -162
- package/src/lib/project/build.test.js +0 -275
- package/src/lib/project/config.js +0 -48
- package/src/lib/project/config.test.js +0 -134
- package/src/lib/project/detect.js +0 -47
- package/src/lib/project/detect.test.js +0 -157
- package/src/lib/project/index.js +0 -56
- package/src/lib/project/output-paths.js +0 -87
- package/src/lib/project/output-paths.test.js +0 -66
- package/src/lib/project/paths.js +0 -272
- package/src/lib/project/version.js +0 -110
- package/src/lib/project/version.test.js +0 -350
- package/src/lib/reporter/index.test.js +0 -862
- package/src/main.spec.js +0 -61
- package/src/main.test.js +0 -347
- package/src/validators/validate-data-files.js +0 -154
- package/src/validators/validate-data-files.test.js +0 -217
package/src/lib/doctor/index.js
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Doctor module - diagnostic checks for Quire environment
|
|
3
|
-
*
|
|
4
|
-
* @module lib/doctor
|
|
5
|
-
*/
|
|
6
|
-
import createDebug from '#debug'
|
|
7
|
-
|
|
8
|
-
// Import checks from domain submodules
|
|
9
|
-
import {
|
|
10
|
-
checkOsInfo,
|
|
11
|
-
checkCliVersion,
|
|
12
|
-
checkNodeVersion,
|
|
13
|
-
checkRuntimeInfo,
|
|
14
|
-
checkNpmAvailable,
|
|
15
|
-
checkGitAvailable,
|
|
16
|
-
} from './checks/environment/index.js'
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
checkPrinceAvailable,
|
|
20
|
-
checkPandocAvailable,
|
|
21
|
-
} from './checks/tools/index.js'
|
|
22
|
-
|
|
23
|
-
import {
|
|
24
|
-
checkQuireProject,
|
|
25
|
-
checkDependencies,
|
|
26
|
-
checkOutdatedQuire11ty,
|
|
27
|
-
checkDataFiles,
|
|
28
|
-
} from './checks/project/index.js'
|
|
29
|
-
|
|
30
|
-
import {
|
|
31
|
-
checkStaleBuild,
|
|
32
|
-
checkPdfOutput,
|
|
33
|
-
checkEpubOutput,
|
|
34
|
-
} from './checks/outputs/index.js'
|
|
35
|
-
|
|
36
|
-
// Re-export constants
|
|
37
|
-
export { DOCS_BASE_URL, REQUIRED_NODE_VERSION, QUIRE_11TY_PACKAGE } from './constants.js'
|
|
38
|
-
|
|
39
|
-
// Re-export individual checks
|
|
40
|
-
export {
|
|
41
|
-
// Environment
|
|
42
|
-
checkOsInfo,
|
|
43
|
-
checkCliVersion,
|
|
44
|
-
checkNodeVersion,
|
|
45
|
-
checkRuntimeInfo,
|
|
46
|
-
checkNpmAvailable,
|
|
47
|
-
checkGitAvailable,
|
|
48
|
-
// Tools
|
|
49
|
-
checkPrinceAvailable,
|
|
50
|
-
checkPandocAvailable,
|
|
51
|
-
// Project
|
|
52
|
-
checkQuireProject,
|
|
53
|
-
checkDependencies,
|
|
54
|
-
checkOutdatedQuire11ty,
|
|
55
|
-
checkDataFiles,
|
|
56
|
-
// Outputs
|
|
57
|
-
checkStaleBuild,
|
|
58
|
-
checkPdfOutput,
|
|
59
|
-
checkEpubOutput,
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const debug = createDebug('lib:doctor')
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Default timeout for async checks (in milliseconds)
|
|
66
|
-
* Prevents hanging checks from blocking the doctor command
|
|
67
|
-
*/
|
|
68
|
-
export const DEFAULT_CHECK_TIMEOUT = 10_000 // 10 seconds
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Check result type
|
|
72
|
-
* @typedef {Object} CheckResult
|
|
73
|
-
* @property {boolean} ok - Whether the check passed
|
|
74
|
-
* @property {'error'|'warn'|'na'|'timeout'} [level] - Severity level (default: 'error')
|
|
75
|
-
* @property {string|null} message - Optional message with details
|
|
76
|
-
* @property {string|null} [details] - Additional details (shown in verbose mode)
|
|
77
|
-
* @property {string|null} [remediation] - Steps to fix the issue (when ok is false)
|
|
78
|
-
* @property {string|null} [docsUrl] - Link to relevant documentation (when ok is false)
|
|
79
|
-
*/
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Run a check function with a timeout
|
|
83
|
-
* @param {Function} checkFn - The check function to run
|
|
84
|
-
* @param {string} checkId - ID of the check (for error messages)
|
|
85
|
-
* @param {number} [timeout=DEFAULT_CHECK_TIMEOUT] - Timeout in milliseconds
|
|
86
|
-
* @returns {Promise<CheckResult>}
|
|
87
|
-
*/
|
|
88
|
-
async function runCheckWithTimeout(checkFn, checkId, timeout = DEFAULT_CHECK_TIMEOUT) {
|
|
89
|
-
let timeoutId
|
|
90
|
-
|
|
91
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
92
|
-
timeoutId = setTimeout(() => {
|
|
93
|
-
reject(new Error(`Check '${checkId}' timed out after ${timeout}ms`))
|
|
94
|
-
}, timeout)
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
try {
|
|
98
|
-
return await Promise.race([checkFn(), timeoutPromise])
|
|
99
|
-
} catch (error) {
|
|
100
|
-
debug('Check %s failed with error: %s', checkId, error.message)
|
|
101
|
-
return {
|
|
102
|
-
ok: false,
|
|
103
|
-
level: 'timeout',
|
|
104
|
-
message: `skipped (timed out after ${timeout}ms)`,
|
|
105
|
-
remediation: `The '${checkId}' check is taking too long to complete. This may indicate a network issue or a problem with the tool being checked.`,
|
|
106
|
-
}
|
|
107
|
-
} finally {
|
|
108
|
-
clearTimeout(timeoutId)
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* All available diagnostic checks organized by section
|
|
114
|
-
* Each check has an `id` for CLI filtering (short, lowercase, hyphenated)
|
|
115
|
-
*/
|
|
116
|
-
export const checkSections = [
|
|
117
|
-
{
|
|
118
|
-
name: 'Environment',
|
|
119
|
-
checks: [
|
|
120
|
-
{ id: 'os', name: 'Operating system', check: checkOsInfo },
|
|
121
|
-
{ id: 'cli', name: 'Quire CLI version', check: checkCliVersion },
|
|
122
|
-
{ id: 'node', name: 'Node.js version', check: checkNodeVersion },
|
|
123
|
-
{ id: 'runtime', name: 'Node.js runtime', check: checkRuntimeInfo },
|
|
124
|
-
{ id: 'npm', name: 'npm', check: checkNpmAvailable },
|
|
125
|
-
{ id: 'git', name: 'Git', check: checkGitAvailable },
|
|
126
|
-
],
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: 'Tools',
|
|
130
|
-
checks: [
|
|
131
|
-
{ id: 'prince', name: 'PrinceXML', check: checkPrinceAvailable },
|
|
132
|
-
{ id: 'pandoc', name: 'Pandoc', check: checkPandocAvailable },
|
|
133
|
-
],
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
name: 'Project',
|
|
137
|
-
checks: [
|
|
138
|
-
{ id: 'project', name: 'Quire project', check: checkQuireProject },
|
|
139
|
-
{ id: 'deps', name: 'Dependencies', check: checkDependencies },
|
|
140
|
-
{ id: '11ty', name: 'quire-11ty version', check: checkOutdatedQuire11ty },
|
|
141
|
-
{ id: 'data', name: 'Data files', check: checkDataFiles },
|
|
142
|
-
],
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: 'Outputs',
|
|
146
|
-
checks: [
|
|
147
|
-
{ id: 'build', name: 'Build status', check: checkStaleBuild },
|
|
148
|
-
{ id: 'pdf', name: 'PDF output', check: checkPdfOutput },
|
|
149
|
-
{ id: 'epub', name: 'EPUB output', check: checkEpubOutput },
|
|
150
|
-
],
|
|
151
|
-
},
|
|
152
|
-
]
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Valid check IDs for filtering individual checks
|
|
156
|
-
*/
|
|
157
|
-
export const CHECK_IDS = checkSections.flatMap((s) => s.checks.map((c) => c.id))
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* All available diagnostic checks (flat list for backwards compatibility)
|
|
161
|
-
*/
|
|
162
|
-
export const checks = [
|
|
163
|
-
{ name: 'Operating system', check: checkOsInfo },
|
|
164
|
-
{ name: 'Quire CLI version', check: checkCliVersion },
|
|
165
|
-
{ name: 'Node.js version', check: checkNodeVersion },
|
|
166
|
-
{ name: 'Node.js runtime', check: checkRuntimeInfo },
|
|
167
|
-
{ name: 'npm', check: checkNpmAvailable },
|
|
168
|
-
{ name: 'Git', check: checkGitAvailable },
|
|
169
|
-
{ name: 'PrinceXML', check: checkPrinceAvailable },
|
|
170
|
-
{ name: 'Pandoc', check: checkPandocAvailable },
|
|
171
|
-
{ name: 'Quire project', check: checkQuireProject },
|
|
172
|
-
{ name: 'Dependencies', check: checkDependencies },
|
|
173
|
-
{ name: 'quire-11ty version', check: checkOutdatedQuire11ty },
|
|
174
|
-
{ name: 'Data files', check: checkDataFiles },
|
|
175
|
-
{ name: 'Build status', check: checkStaleBuild },
|
|
176
|
-
{ name: 'PDF output', check: checkPdfOutput },
|
|
177
|
-
{ name: 'EPUB output', check: checkEpubOutput },
|
|
178
|
-
]
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Run all diagnostic checks (flat list)
|
|
182
|
-
* @returns {Promise<Array<{name: string, ok: boolean, message: string|null}>>}
|
|
183
|
-
*/
|
|
184
|
-
export async function runAllChecks() {
|
|
185
|
-
debug('Running all diagnostic checks')
|
|
186
|
-
const results = []
|
|
187
|
-
|
|
188
|
-
for (const { name, check } of checks) {
|
|
189
|
-
const result = await check()
|
|
190
|
-
results.push({ name, ...result })
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return results
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Valid section names for filtering
|
|
198
|
-
*/
|
|
199
|
-
export const SECTION_NAMES = ['environment', 'tools', 'project', 'outputs']
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Run all diagnostic checks organized by section
|
|
203
|
-
* @param {Object} [options] - Filter options
|
|
204
|
-
* @param {string[]} [options.sections] - Optional array of section names to run (lowercase)
|
|
205
|
-
* @param {string[]} [options.checks] - Optional array of check IDs to run
|
|
206
|
-
* @param {number} [options.timeout] - Timeout in milliseconds for each check (default: DEFAULT_CHECK_TIMEOUT)
|
|
207
|
-
* @returns {Promise<Array<{section: string, results: Array<{id: string, name: string, ok: boolean, message: string|null}>}>>}
|
|
208
|
-
*/
|
|
209
|
-
export async function runAllChecksWithSections(options = {}) {
|
|
210
|
-
const {
|
|
211
|
-
sections: filterSections = null,
|
|
212
|
-
checks: filterChecks = null,
|
|
213
|
-
timeout = DEFAULT_CHECK_TIMEOUT,
|
|
214
|
-
} = options
|
|
215
|
-
|
|
216
|
-
// Handle legacy call signature: runAllChecksWithSections(['environment'])
|
|
217
|
-
const sectionsFilter = Array.isArray(options) ? options : filterSections
|
|
218
|
-
|
|
219
|
-
debug('Running diagnostic checks with sections, filter: %o, checks: %o, timeout: %d', sectionsFilter, filterChecks, timeout)
|
|
220
|
-
const sections = []
|
|
221
|
-
|
|
222
|
-
for (const { name: sectionName, checks: sectionChecks } of checkSections) {
|
|
223
|
-
// Skip sections not in filter (if section filter is provided and no check filter)
|
|
224
|
-
if (sectionsFilter && !filterChecks && !sectionsFilter.includes(sectionName.toLowerCase())) {
|
|
225
|
-
continue
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
const results = []
|
|
229
|
-
for (const { id, name, check } of sectionChecks) {
|
|
230
|
-
// Skip checks not in filter (if check filter is provided)
|
|
231
|
-
if (filterChecks && !filterChecks.includes(id)) {
|
|
232
|
-
continue
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
const result = await runCheckWithTimeout(check, id, timeout)
|
|
236
|
-
results.push({ id, name, ...result })
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// Only include section if it has results
|
|
240
|
-
if (results.length > 0) {
|
|
241
|
-
sections.push({ section: sectionName, results })
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return sections
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
export default {
|
|
249
|
-
checks,
|
|
250
|
-
checkSections,
|
|
251
|
-
checkCliVersion,
|
|
252
|
-
checkDataFiles,
|
|
253
|
-
checkDependencies,
|
|
254
|
-
checkEpubOutput,
|
|
255
|
-
checkGitAvailable,
|
|
256
|
-
checkNodeVersion,
|
|
257
|
-
checkNpmAvailable,
|
|
258
|
-
checkOsInfo,
|
|
259
|
-
checkOutdatedQuire11ty,
|
|
260
|
-
checkPdfOutput,
|
|
261
|
-
checkPandocAvailable,
|
|
262
|
-
checkPrinceAvailable,
|
|
263
|
-
checkRuntimeInfo,
|
|
264
|
-
checkQuireProject,
|
|
265
|
-
checkStaleBuild,
|
|
266
|
-
runAllChecks,
|
|
267
|
-
runAllChecksWithSections,
|
|
268
|
-
CHECK_IDS,
|
|
269
|
-
SECTION_NAMES,
|
|
270
|
-
DEFAULT_CHECK_TIMEOUT,
|
|
271
|
-
}
|