@baiyibai-antora/extensions 1.0.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 (28) hide show
  1. package/CHANGELOG.adoc +130 -0
  2. package/LICENSE +21 -0
  3. package/README.adoc +645 -0
  4. package/dist/extensions/asciidoctorconfig/index.d.ts +71 -0
  5. package/dist/extensions/asciidoctorconfig/index.d.ts.map +1 -0
  6. package/dist/extensions/asciidoctorconfig/index.js +207 -0
  7. package/dist/extensions/asciidoctorconfig/index.js.map +1 -0
  8. package/dist/extensions/assembler-rename-pdf/index.d.ts +79 -0
  9. package/dist/extensions/assembler-rename-pdf/index.d.ts.map +1 -0
  10. package/dist/extensions/assembler-rename-pdf/index.js +267 -0
  11. package/dist/extensions/assembler-rename-pdf/index.js.map +1 -0
  12. package/dist/extensions/assembler-ruby-preflight/index.d.ts +76 -0
  13. package/dist/extensions/assembler-ruby-preflight/index.d.ts.map +1 -0
  14. package/dist/extensions/assembler-ruby-preflight/index.js +458 -0
  15. package/dist/extensions/assembler-ruby-preflight/index.js.map +1 -0
  16. package/dist/extensions/collector-writer/index.d.ts +79 -0
  17. package/dist/extensions/collector-writer/index.d.ts.map +1 -0
  18. package/dist/extensions/collector-writer/index.js +248 -0
  19. package/dist/extensions/collector-writer/index.js.map +1 -0
  20. package/dist/extensions/external-asset-downloader/index.d.ts +73 -0
  21. package/dist/extensions/external-asset-downloader/index.d.ts.map +1 -0
  22. package/dist/extensions/external-asset-downloader/index.js +387 -0
  23. package/dist/extensions/external-asset-downloader/index.js.map +1 -0
  24. package/dist/extensions/vale-integration/index.d.ts +76 -0
  25. package/dist/extensions/vale-integration/index.d.ts.map +1 -0
  26. package/dist/extensions/vale-integration/index.js +409 -0
  27. package/dist/extensions/vale-integration/index.js.map +1 -0
  28. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extensions/assembler-ruby-preflight/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;CAC7C;AAUD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AAED,UAAU,QAAQ;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,UAAU,QAAQ;IAChB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;IAC3C,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACjF,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CAC7F;AA2aD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CA6DhD"}
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+ /**
3
+ * @baiyibai-antora/docs-extensions - assembler-ruby-preflight
4
+ *
5
+ * Coordinates Ruby/Ghostscript version checks and gem bundling for PDF generation.
6
+ * Supports per-platform configuration (Windows, Linux, macOS).
7
+ *
8
+ * Configuration in antora-playbook.yml:
9
+ *
10
+ * antora:
11
+ * extensions:
12
+ * - require: '@baiyibai-antora/docs-extensions/extensions/assembler-ruby-preflight'
13
+ * preflight:
14
+ * enabled: true
15
+ * quiet: true
16
+ * gemfile_path: './assembler-themes/Gemfile'
17
+ * use_system_gems: false
18
+ * platforms:
19
+ * win32:
20
+ * ruby_version: '3.3.8'
21
+ * gs_version: '10.05.1'
22
+ * check_ruby: true
23
+ * check_gs: true
24
+ * linux:
25
+ * ruby_version: '3.3.8'
26
+ * check_ruby: true
27
+ * darwin:
28
+ * ruby_version: '3.3.8'
29
+ * gs_version: '10.05.1'
30
+ * check_ruby: true
31
+ * check_gs: true
32
+ */
33
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
34
+ if (k2 === undefined) k2 = k;
35
+ var desc = Object.getOwnPropertyDescriptor(m, k);
36
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
37
+ desc = { enumerable: true, get: function() { return m[k]; } };
38
+ }
39
+ Object.defineProperty(o, k2, desc);
40
+ }) : (function(o, m, k, k2) {
41
+ if (k2 === undefined) k2 = k;
42
+ o[k2] = m[k];
43
+ }));
44
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
45
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
46
+ }) : function(o, v) {
47
+ o["default"] = v;
48
+ });
49
+ var __importStar = (this && this.__importStar) || (function () {
50
+ var ownKeys = function(o) {
51
+ ownKeys = Object.getOwnPropertyNames || function (o) {
52
+ var ar = [];
53
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
54
+ return ar;
55
+ };
56
+ return ownKeys(o);
57
+ };
58
+ return function (mod) {
59
+ if (mod && mod.__esModule) return mod;
60
+ var result = {};
61
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
62
+ __setModuleDefault(result, mod);
63
+ return result;
64
+ };
65
+ })();
66
+ Object.defineProperty(exports, "__esModule", { value: true });
67
+ exports.register = register;
68
+ const node_child_process_1 = require("node:child_process");
69
+ const fsp = __importStar(require("node:fs/promises"));
70
+ const path = __importStar(require("path"));
71
+ const colors = {
72
+ red: (s) => `\x1b[31m${s}\x1b[0m`,
73
+ green: (s) => `\x1b[32m${s}\x1b[0m`,
74
+ yellow: (s) => `\x1b[33m${s}\x1b[0m`,
75
+ blue: (s) => `\x1b[34m${s}\x1b[0m`,
76
+ magenta: (s) => `\x1b[35m${s}\x1b[0m`,
77
+ cyan: (s) => `\x1b[36m${s}\x1b[0m`,
78
+ };
79
+ const currentPlatform = process.platform;
80
+ let quietMode = true;
81
+ function timestamp() {
82
+ return new Date().toISOString().split('T')[1].replace('Z', '');
83
+ }
84
+ function logEvent(message) {
85
+ console.log(`[${timestamp()}] \x1b[94mEVENT\x1b[0m (antora-assembler-ruby-preflight): \x1b[94m${message}\x1b[0m`);
86
+ }
87
+ function makeLogger(hostLogger) {
88
+ const log = hostLogger || console;
89
+ return {
90
+ debug: (m) => {
91
+ if (!quietMode)
92
+ (log.debug ? log.debug(m) : console.debug(m));
93
+ },
94
+ info: (m) => {
95
+ if (!quietMode)
96
+ (log.info ? log.info(m) : console.log(m));
97
+ },
98
+ warn: (m) => {
99
+ (log.warn ? log.warn(m) : console.warn(m));
100
+ },
101
+ error: (m) => {
102
+ (log.error ? log.error(m) : console.error(m));
103
+ },
104
+ event: (m) => logEvent(m),
105
+ };
106
+ }
107
+ function pick(obj, keys, def) {
108
+ for (const k of keys) {
109
+ if (obj && obj[k] !== undefined)
110
+ return obj[k];
111
+ }
112
+ return def;
113
+ }
114
+ function getDefaultPlatformConfig() {
115
+ return {
116
+ win32: {
117
+ check_ruby: true,
118
+ check_gs: true,
119
+ },
120
+ linux: {
121
+ check_ruby: true,
122
+ check_gs: false,
123
+ },
124
+ darwin: {
125
+ check_ruby: true,
126
+ check_gs: true,
127
+ },
128
+ };
129
+ }
130
+ function readConfig(playbook) {
131
+ const defaultPlatforms = getDefaultPlatformConfig();
132
+ const extEntries = playbook?.antora?.extensions || [];
133
+ const me = extEntries.find((e) => {
134
+ const req = e && e.require ? String(e.require) : '';
135
+ return req.includes('assembler-ruby-preflight') ||
136
+ req.includes('assembler-preflight');
137
+ }) || {};
138
+ const raw = (me.preflight || {});
139
+ const gemfile_path = pick(raw, ['gemfile_path', 'gemfilePath', 'gemfilepath'], '');
140
+ const rawPlatforms = raw.platforms || {};
141
+ const normalizePlatformConfig = (raw) => ({
142
+ ruby_version: (raw.ruby_version ?? raw.rubyversion),
143
+ ruby_revision: (raw.ruby_revision ?? raw.rubyrevision),
144
+ ruby_guidance: (raw.ruby_guidance ?? raw.rubyguidance),
145
+ gs_version: (raw.gs_version ?? raw.ghostscriptversion),
146
+ gs_guidance: (raw.gs_guidance ?? raw.gsguidance),
147
+ check_ruby: (raw.check_ruby ?? raw.checkruby ?? true),
148
+ check_gs: (raw.check_gs ?? raw.checkgs ?? false),
149
+ });
150
+ const platforms = {
151
+ win32: normalizePlatformConfig({ ...defaultPlatforms.win32, ...rawPlatforms.win32 }),
152
+ linux: normalizePlatformConfig({ ...defaultPlatforms.linux, ...rawPlatforms.linux }),
153
+ darwin: normalizePlatformConfig({ ...defaultPlatforms.darwin, ...rawPlatforms.darwin }),
154
+ };
155
+ if (!gemfile_path && !platforms[currentPlatform].check_ruby && !platforms[currentPlatform].check_gs) {
156
+ return null;
157
+ }
158
+ return {
159
+ enabled: pick(raw, ['enabled'], true),
160
+ quiet: pick(raw, ['quiet'], true),
161
+ gemfile_path,
162
+ use_system_gems: pick(raw, ['use_system_gems', 'useSystemGems', 'usesystemgems'], false),
163
+ platforms,
164
+ };
165
+ }
166
+ function run(cmd, args = [], options = {}) {
167
+ const { shell = false, cwd = process.cwd() } = options;
168
+ const res = (0, node_child_process_1.spawnSync)(cmd, args, {
169
+ shell,
170
+ cwd,
171
+ encoding: 'utf8',
172
+ stdio: ['ignore', 'pipe', 'pipe'],
173
+ });
174
+ return {
175
+ code: res.status ?? (res.error ? 1 : 0),
176
+ out: res.stdout || '',
177
+ err: res.stderr || (res.error ? String(res.error) : ''),
178
+ };
179
+ }
180
+ function runShell(cmd, cwd) {
181
+ if (!quietMode) {
182
+ console.log(`$ ${cmd}`);
183
+ }
184
+ const res = (0, node_child_process_1.spawnSync)(cmd, {
185
+ shell: true,
186
+ cwd,
187
+ encoding: 'utf8',
188
+ stdio: ['ignore', 'pipe', 'pipe'],
189
+ });
190
+ if (!quietMode && res.stdout) {
191
+ console.log(res.stdout.trim());
192
+ }
193
+ if (!quietMode && res.stderr) {
194
+ console.error(res.stderr.trim());
195
+ }
196
+ return {
197
+ code: res.status ?? (res.error ? 1 : 0),
198
+ out: res.stdout || '',
199
+ err: res.stderr || (res.error ? String(res.error) : ''),
200
+ };
201
+ }
202
+ async function fileExists(filePath) {
203
+ try {
204
+ await fsp.access(filePath);
205
+ return true;
206
+ }
207
+ catch {
208
+ return false;
209
+ }
210
+ }
211
+ function checkRuby(expectedVersion, expectedRevision, rubyGuidance, logger) {
212
+ const result = run('ruby', ['-v']);
213
+ if (result.code !== 0) {
214
+ logger.event('PDF creation cannot continue: Ruby is not installed or not in PATH');
215
+ if (rubyGuidance) {
216
+ logger.event(`${rubyGuidance}`);
217
+ }
218
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
219
+ process.exit(0);
220
+ }
221
+ const installedVersion = result.out.trim();
222
+ logger.debug(`Ruby version: ${installedVersion}`);
223
+ const versionMatch = installedVersion.match(/ruby\s+([\d.]+)/);
224
+ const revisionMatch = installedVersion.match(/revision\s+([a-f0-9]+)/);
225
+ if (!versionMatch) {
226
+ logger.event(`PDF creation cannot continue: Could not parse Ruby version from: ${installedVersion}`);
227
+ process.exit(0);
228
+ }
229
+ const installedVer = versionMatch[1];
230
+ const installedRev = revisionMatch ? revisionMatch[1] : null;
231
+ if (expectedVersion && installedVer !== expectedVersion) {
232
+ const foundVer = installedRev ? `${installedVer} - ${installedRev}` : installedVer;
233
+ const expectedVer = expectedRevision ? `${expectedVersion} - ${expectedRevision}` : expectedVersion;
234
+ logger.event('PDF creation cannot continue due to a Ruby version revision mismatch');
235
+ logger.event(`Found: ${foundVer}`);
236
+ logger.event(`Expected: ${expectedVer}`);
237
+ if (rubyGuidance) {
238
+ logger.event(`${rubyGuidance}`);
239
+ }
240
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
241
+ process.exit(0);
242
+ }
243
+ if (expectedRevision) {
244
+ if (!installedRev) {
245
+ logger.event('PDF creation cannot continue: Ruby revision not found in output');
246
+ logger.event(`Ruby version output: ${installedVersion}`);
247
+ if (rubyGuidance) {
248
+ logger.event(`${rubyGuidance}`);
249
+ }
250
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
251
+ process.exit(0);
252
+ }
253
+ if (installedRev !== expectedRevision) {
254
+ const foundVer = `${installedVer}-${installedRev}`;
255
+ const expectedVer = `${expectedVersion}-${expectedRevision}`;
256
+ logger.event('PDF creation cannot continue due to a Version-Revision mismatch');
257
+ logger.event(`Found: ${foundVer}`);
258
+ logger.event(`Expected: ${expectedVer}`);
259
+ if (rubyGuidance) {
260
+ logger.event(`Resolve this issue by installing ${rubyGuidance}`);
261
+ }
262
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
263
+ process.exit(0);
264
+ }
265
+ }
266
+ logger.info(`Ruby OK: ${installedVersion}`);
267
+ return true;
268
+ }
269
+ function checkGhostscript(expectedVersion, gsGuidance, logger) {
270
+ const cmd = currentPlatform === 'win32' ? 'gswin64c' : 'gs';
271
+ const result = run(cmd, ['--version']);
272
+ if (result.code !== 0) {
273
+ if (currentPlatform === 'win32') {
274
+ const result32 = run('gswin32c', ['--version']);
275
+ if (result32.code === 0) {
276
+ const version = result32.out.trim();
277
+ logger.debug(`Ghostscript version: ${version}`);
278
+ if (expectedVersion && version !== expectedVersion) {
279
+ logger.event('PDF creation cannot continue due to a Ghostscript version mismatch');
280
+ logger.event(`Found: ${version} (32-bit)`);
281
+ logger.event(`Expected: ${expectedVersion}`);
282
+ if (gsGuidance) {
283
+ logger.event(`${gsGuidance}`);
284
+ }
285
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
286
+ process.exit(0);
287
+ }
288
+ logger.info(`Ghostscript (32-bit) OK: ${version}`);
289
+ return true;
290
+ }
291
+ }
292
+ logger.event('PDF creation cannot continue: Ghostscript is not installed or not in PATH');
293
+ if (gsGuidance) {
294
+ logger.event(`${gsGuidance}`);
295
+ }
296
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
297
+ process.exit(0);
298
+ }
299
+ const installedVersion = result.out.trim();
300
+ logger.debug(`Ghostscript version: ${installedVersion}`);
301
+ if (expectedVersion && installedVersion !== expectedVersion) {
302
+ logger.event('PDF creation cannot continue due to a Ghostscript version mismatch');
303
+ logger.event(`Found: ${installedVersion}`);
304
+ logger.event(`Expected: ${expectedVersion}`);
305
+ if (gsGuidance) {
306
+ logger.event(`${gsGuidance}`);
307
+ }
308
+ logger.event('Stopping the build. Retry the build after resolving the issue.');
309
+ process.exit(0);
310
+ }
311
+ logger.info(`Ghostscript OK: ${installedVersion}`);
312
+ return true;
313
+ }
314
+ function parseMissingGems(bundleCheckOutput) {
315
+ const gems = [];
316
+ const lines = bundleCheckOutput.split('\n');
317
+ for (const line of lines) {
318
+ const match = line.match(/^\s*\*\s+([a-z0-9_-]+)\s+\(([0-9.]+)\)/i);
319
+ if (match) {
320
+ gems.push({
321
+ name: match[1],
322
+ version: match[2],
323
+ });
324
+ }
325
+ }
326
+ return gems;
327
+ }
328
+ async function copyGemfile(sourcePath, targetPath, logger) {
329
+ try {
330
+ const content = await fsp.readFile(sourcePath);
331
+ await fsp.writeFile(targetPath, content);
332
+ logger.info(`Copied Gemfile: ${sourcePath} -> ${targetPath}`);
333
+ return true;
334
+ }
335
+ catch (err) {
336
+ logger.error(`Failed to copy Gemfile: ${err.message}`);
337
+ return false;
338
+ }
339
+ }
340
+ async function runBundleSetup(cwd, logger, use_system_gems) {
341
+ logger.debug('Running bundle check...');
342
+ const checkResult = runShell('bundle check', cwd);
343
+ if (checkResult.code === 0) {
344
+ logger.debug('Gemfile dependencies are satisfied');
345
+ return true;
346
+ }
347
+ if (use_system_gems) {
348
+ logger.error('System gems are missing - PDFs cannot be rendered.');
349
+ const missingGems = parseMissingGems(checkResult.out + '\n' + checkResult.err);
350
+ if (missingGems.length > 0) {
351
+ logger.error('To fix this, either:');
352
+ logger.error('Option 1: Install the gems to the system manually with these commands:');
353
+ missingGems.forEach(gem => {
354
+ logger.error(` gem install ${gem.name} --version ${gem.version}`);
355
+ });
356
+ logger.error('Option 2: Set use_system_gems to false in the antora-playbook.yml.');
357
+ logger.error(' preflight:');
358
+ logger.error(' use_system_gems: false');
359
+ }
360
+ else {
361
+ logger.error('Run "bundle check" manually to see which gems are missing.');
362
+ logger.error('Then install them with: gem install <gem-name> --version <version>');
363
+ logger.error('Or set use_system_gems: false in the antora-playbook.yml to use vendor/bundle mode.');
364
+ }
365
+ logger.error('Stopping Antora execution to prevent errors.');
366
+ return false;
367
+ }
368
+ logger.warn("Gemfile dependencies not met. Running 'bundle install'...");
369
+ logger.debug('Using local vendor/bundle installation (use_system_gems=false)');
370
+ runShell('bundle config set --local path vendor/bundle', cwd);
371
+ const installResult = runShell('bundle install', cwd);
372
+ if (installResult.code !== 0) {
373
+ logger.error(`'bundle install' failed: ${installResult.err || installResult.out}`);
374
+ return false;
375
+ }
376
+ logger.event("'bundle install' completed successfully");
377
+ if (!use_system_gems) {
378
+ logger.debug('Running bundle cache...');
379
+ const cacheResult = runShell('bundle cache', cwd);
380
+ if (cacheResult.code !== 0) {
381
+ logger.warn(`'bundle cache' returned ${cacheResult.code}: ${cacheResult.err || cacheResult.out}`);
382
+ }
383
+ const vendorPath = path.join(cwd, 'vendor');
384
+ try {
385
+ await fsp.rm(vendorPath, { recursive: true, force: true });
386
+ logger.debug("'/vendor' directory removed successfully");
387
+ }
388
+ catch (e) {
389
+ logger.warn(`Error cleaning vendor directory: ${e.message}`);
390
+ }
391
+ }
392
+ return true;
393
+ }
394
+ async function bundleGems(cfg, logger) {
395
+ const cwd = process.cwd();
396
+ const sourceGemfile = path.resolve(cwd, cfg.gemfile_path);
397
+ const targetGemfile = path.join(cwd, 'Gemfile');
398
+ const gemfileLock = path.join(cwd, 'Gemfile.lock');
399
+ if (await fileExists(gemfileLock)) {
400
+ logger.info('Gemfile.lock exists, skipping Ruby gem setup');
401
+ return true;
402
+ }
403
+ if (!await fileExists(targetGemfile)) {
404
+ if (!await fileExists(sourceGemfile)) {
405
+ logger.error(`Gemfile not found: ${sourceGemfile}`);
406
+ logger.warn(`Ensure Gemfile is at the configured gemfile_path or set gemfile_path in package.json`);
407
+ return false;
408
+ }
409
+ if (!await copyGemfile(sourceGemfile, targetGemfile, logger)) {
410
+ return false;
411
+ }
412
+ }
413
+ if (!await runBundleSetup(cwd, logger, cfg.use_system_gems)) {
414
+ return false;
415
+ }
416
+ return true;
417
+ }
418
+ function register(context) {
419
+ const antoraLogger = context.getLogger ? context.getLogger('antora-assembler-ruby-preflight') : undefined;
420
+ const logger = makeLogger(antoraLogger);
421
+ context.on('playbookBuilt', ({ playbook }) => {
422
+ const cfg = readConfig(playbook);
423
+ if (!cfg) {
424
+ logger.info('Preflight not configured, skipping');
425
+ return;
426
+ }
427
+ if (!cfg.enabled) {
428
+ logger.info('Preflight disabled');
429
+ return;
430
+ }
431
+ quietMode = cfg.quiet;
432
+ const platformCfg = cfg.platforms[currentPlatform] || cfg.platforms.linux;
433
+ logger.debug(`Checking system dependencies for ${currentPlatform}`);
434
+ if (platformCfg.check_ruby && platformCfg.ruby_version) {
435
+ checkRuby(platformCfg.ruby_version, platformCfg.ruby_revision, platformCfg.ruby_guidance, logger);
436
+ }
437
+ if (platformCfg.check_gs && platformCfg.gs_version) {
438
+ checkGhostscript(platformCfg.gs_version, platformCfg.gs_guidance, logger);
439
+ }
440
+ logger.debug('System dependency checks complete');
441
+ });
442
+ context.once('documentsConverted', async ({ playbook }) => {
443
+ const cfg = readConfig(playbook);
444
+ if (!cfg || !cfg.enabled || !cfg.gemfile_path) {
445
+ return;
446
+ }
447
+ quietMode = cfg.quiet;
448
+ logger.event('Setting up Ruby gems');
449
+ const success = await bundleGems(cfg, logger);
450
+ if (success) {
451
+ logger.event('Preflight complete');
452
+ }
453
+ else {
454
+ process.exit(1);
455
+ }
456
+ });
457
+ }
458
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/assembler-ruby-preflight/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoeH,4BA6DC;AA/hBD,2DAA+C;AAC/C,sDAAwC;AACxC,2CAA6B;AA6D7B,MAAM,MAAM,GAAG;IACb,GAAG,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;IACjD,KAAK,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;IACnD,MAAM,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;IACpD,IAAI,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;IAClD,OAAO,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;IACrD,IAAI,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS;CACnD,CAAC;AAEF,MAAM,eAAe,GAAG,OAAO,CAAC,QAAoB,CAAC;AAErD,IAAI,SAAS,GAAG,IAAI,CAAC;AAErB,SAAS,SAAS;IAChB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,qEAAqE,OAAO,SAAS,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,UAAU,CAAC,UAAyB;IAC3C,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC;IAClC,OAAO;QACL,KAAK,EAAE,CAAC,CAAS,EAAQ,EAAE;YACzB,IAAI,CAAC,SAAS;gBAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,EAAE,CAAC,CAAS,EAAQ,EAAE;YACxB,IAAI,CAAC,SAAS;gBAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,EAAE,CAAC,CAAS,EAAQ,EAAE;YACxB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,EAAE,CAAC,CAAS,EAAQ,EAAE;YACzB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,EAAE,CAAC,CAAS,EAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAI,GAAwC,EAAE,IAAc,EAAE,GAAM;IAC/E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,CAAC,CAAM,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;SACf;QACD,KAAK,EAAE;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB;QACD,MAAM,EAAE;YACN,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,MAAM,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;IAEpD,MAAM,UAAU,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;IACtD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACxC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnF,MAAM,YAAY,GAAG,GAAG,CAAC,SAAsD,IAAI,EAAE,CAAC;IAEtF,MAAM,uBAAuB,GAAG,CAAC,GAA4B,EAAkB,EAAE,CAAC,CAAC;QACjF,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAuB;QACzE,aAAa,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAuB;QAC5E,aAAa,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAuB;QAC5E,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,kBAAkB,CAAuB;QAC5E,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,CAAuB;QACtE,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,CAAY;QAChE,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,CAAY;KAC5D,CAAC,CAAC;IAEH,MAAM,SAAS,GAAqC;QAClD,KAAK,EAAE,uBAAuB,CAAC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACpF,KAAK,EAAE,uBAAuB,CAAC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACpF,MAAM,EAAE,uBAAuB,CAAC,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;KACxF,CAAC;IAEF,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QACrC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;QACjC,YAAY;QACZ,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC;QACxF,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAE,UAA6C,EAAE;IAC5F,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,GAAG,GAAG,IAAA,8BAAS,EAAC,GAAG,EAAE,IAAI,EAAE;QAC/B,KAAK;QACL,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;QACrB,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,8BAAS,EAAC,GAAG,EAAE;QACzB,KAAK,EAAE,IAAI;QACX,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;QACrB,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,eAAuB,EACvB,gBAAoC,EACpC,YAAgC,EAChC,MAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACnF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,oEAAoE,gBAAgB,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,IAAI,eAAe,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QACnF,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,MAAM,gBAAgB,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QAEpG,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAC;YACzD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,YAAY,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,GAAG,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAE7D,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;YACzC,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CACvB,eAAuB,EACvB,UAA8B,EAC9B,MAAc;IAEd,MAAM,GAAG,GAAG,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;gBAEhD,IAAI,eAAe,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;oBACnD,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;oBACnF,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,WAAW,CAAC,CAAC;oBAC9C,MAAM,CAAC,KAAK,CAAC,aAAa,eAAe,EAAE,CAAC,CAAC;oBAC7C,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;oBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,4BAA4B,OAAO,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC1F,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAC;IAEzD,IAAI,eAAe,IAAI,gBAAgB,KAAK,eAAe,EAAE,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,CAAC,aAAa,gBAAgB,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,aAAa,eAAe,EAAE,CAAC,CAAC;QAC7C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,mBAAmB,gBAAgB,EAAE,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,SAAS,gBAAgB,CAAC,iBAAyB;IACjD,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,UAAkB,EAAE,UAAkB,EAAE,MAAc;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,OAAO,UAAU,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,MAAc,EAAE,eAAwB;IACjF,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAElD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACvF,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAE7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC/E,QAAQ,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAEtD,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,4BAA4B,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAExD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,2BAA2B,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,oCAAqC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAoB,EAAE,MAAc;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;YACpG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,QAAQ,CAAC,OAAiB;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAExC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;QAEtB,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,oCAAoC,eAAe,EAAE,CAAC,CAAC;QAEpE,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YACvD,SAAS,CACP,WAAW,CAAC,YAAY,EACxB,WAAW,CAAC,aAAa,EACzB,WAAW,CAAC,aAAa,EACzB,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YACnD,gBAAgB,CACd,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,WAAW,EACvB,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;QAEtB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE9C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @baiyibai-antora/docs-extensions - collector-writer
3
+ *
4
+ * Copies assets discovered by @antora/collector-extension from the Antora
5
+ * content catalog into local folders for downstream use (themes, vale rules, etc.).
6
+ *
7
+ * Configuration in antora-playbook.yml:
8
+ *
9
+ * antora:
10
+ * extensions:
11
+ * - require: '@antora/collector-extension'
12
+ * - require: '@baiyibai-antora/docs-extensions/extensions/collector-writer'
13
+ * collectorWriter:
14
+ * enabled: true
15
+ * quiet: false
16
+ * targets:
17
+ * - component: vale-styles
18
+ * write_dir: ./vale-rules
19
+ * ephemeral: true
20
+ * - component: pdf-themes
21
+ * write_dir: ./assembler-themes
22
+ * ephemeral: false
23
+ */
24
+ interface TargetConfig {
25
+ component?: string;
26
+ write_dir?: string;
27
+ writeDir?: string;
28
+ writedir?: string;
29
+ ephemeral?: boolean | string;
30
+ target?: string;
31
+ }
32
+ interface CollectorWriterConfig {
33
+ enabled: boolean;
34
+ quiet: boolean;
35
+ output_dir: string;
36
+ targets: TargetConfig[];
37
+ required: TargetConfig[];
38
+ }
39
+ interface AntoraLogger {
40
+ debug?: (msg: string) => void;
41
+ info?: (msg: string) => void;
42
+ warn?: (msg: string) => void;
43
+ error?: (msg: string) => void;
44
+ }
45
+ interface ExtensionEntry {
46
+ require?: string;
47
+ collectorWriter?: Partial<CollectorWriterConfig>;
48
+ collectorwriter?: Partial<CollectorWriterConfig>;
49
+ }
50
+ interface Playbook {
51
+ dir?: string;
52
+ antora?: {
53
+ extensions?: ExtensionEntry[];
54
+ };
55
+ }
56
+ interface VirtualFile {
57
+ src?: {
58
+ component?: string;
59
+ relative?: string;
60
+ extname?: string;
61
+ basename?: string;
62
+ stem?: string;
63
+ };
64
+ path?: string;
65
+ contents: Buffer | Uint8Array;
66
+ }
67
+ interface ContentCatalog {
68
+ getFiles: () => VirtualFile[];
69
+ }
70
+ interface Registry {
71
+ getLogger?: (name: string) => AntoraLogger;
72
+ once: (event: string, callback: (context: {
73
+ playbook: Playbook;
74
+ contentCatalog?: ContentCatalog;
75
+ }) => Promise<void>) => void;
76
+ }
77
+ export declare function register(context: Registry): void;
78
+ export {};
79
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extensions/collector-writer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AASD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAClD;AAED,UAAU,QAAQ;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,WAAW,EAAE,CAAC;CAC/B;AAED,UAAU,QAAQ;IAChB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;IAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CAC9H;AAoDD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAgKhD"}