@sp-days-framework/docusaurus-plugin-slidev 1.1.0-beta2 → 1.1.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 (56) hide show
  1. package/docs/advanced-configuration.mdx +103 -24
  2. package/docs/changelog.mdx +41 -9
  3. package/docs/install.mdx +28 -19
  4. package/docs/slide-directory.mdx +184 -0
  5. package/docs/slidev-link.mdx +40 -0
  6. package/lib/plugin/builder.d.ts +9 -3
  7. package/lib/plugin/builder.d.ts.map +1 -1
  8. package/lib/plugin/builder.js +130 -39
  9. package/lib/plugin/builder.js.map +1 -1
  10. package/lib/plugin/index.d.ts.map +1 -1
  11. package/lib/plugin/index.js +108 -26
  12. package/lib/plugin/index.js.map +1 -1
  13. package/lib/plugin/scanner.d.ts +9 -2
  14. package/lib/plugin/scanner.d.ts.map +1 -1
  15. package/lib/plugin/scanner.js +180 -29
  16. package/lib/plugin/scanner.js.map +1 -1
  17. package/lib/theme/SlidevCard/index.d.ts.map +1 -1
  18. package/lib/theme/SlidevCard/index.js +1 -2
  19. package/lib/theme/SlidevCard/index.js.map +1 -1
  20. package/lib/theme/SlidevCard/styles.module.css +6 -2
  21. package/lib/theme/SlidevCategoryCard/index.d.ts +11 -0
  22. package/lib/theme/SlidevCategoryCard/index.d.ts.map +1 -0
  23. package/lib/theme/SlidevCategoryCard/index.js +31 -0
  24. package/lib/theme/SlidevCategoryCard/index.js.map +1 -0
  25. package/lib/theme/SlidevCategoryCard/styles.module.css +158 -0
  26. package/lib/theme/SlidevLink/index.d.ts +32 -0
  27. package/lib/theme/SlidevLink/index.d.ts.map +1 -0
  28. package/lib/theme/SlidevLink/index.js +139 -0
  29. package/lib/theme/SlidevLink/index.js.map +1 -0
  30. package/lib/theme/SlidevLink/styles.module.css +228 -0
  31. package/lib/theme/SlidevListItem/index.d.ts +18 -0
  32. package/lib/theme/SlidevListItem/index.d.ts.map +1 -0
  33. package/lib/theme/SlidevListItem/index.js +44 -0
  34. package/lib/theme/SlidevListItem/index.js.map +1 -0
  35. package/lib/theme/SlidevListItem/styles.module.css +128 -0
  36. package/lib/theme/SlidevOverview/index.d.ts +1 -0
  37. package/lib/theme/SlidevOverview/index.d.ts.map +1 -1
  38. package/lib/theme/SlidevOverview/index.js +156 -71
  39. package/lib/theme/SlidevOverview/index.js.map +1 -1
  40. package/lib/theme/SlidevOverview/styles.module.css +176 -147
  41. package/lib/types/index.d.ts +85 -6
  42. package/lib/types/index.d.ts.map +1 -1
  43. package/lib/utils/fileSystem.d.ts +53 -0
  44. package/lib/utils/fileSystem.d.ts.map +1 -1
  45. package/lib/utils/fileSystem.js +151 -0
  46. package/lib/utils/fileSystem.js.map +1 -1
  47. package/lib/utils/icons.d.ts +34 -0
  48. package/lib/utils/icons.d.ts.map +1 -1
  49. package/lib/utils/icons.js +60 -0
  50. package/lib/utils/icons.js.map +1 -1
  51. package/lib/utils/logger.d.ts +11 -2
  52. package/lib/utils/logger.d.ts.map +1 -1
  53. package/lib/utils/logger.js +64 -8
  54. package/lib/utils/logger.js.map +1 -1
  55. package/package.json +2 -1
  56. package/publish-package-docs.js +11 -3
@@ -14,8 +14,21 @@ const child_process_1 = require("child_process");
14
14
  const util_1 = require("util");
15
15
  const path_1 = __importDefault(require("path"));
16
16
  const fs_1 = __importDefault(require("fs"));
17
+ const os_1 = __importDefault(require("os"));
17
18
  const logger_1 = require("../utils/logger");
19
+ const fileSystem_1 = require("../utils/fileSystem");
18
20
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
21
+ /**
22
+ * Derives the URL path from the path option
23
+ * e.g., './slidev' -> 'slidev', './presentations' -> 'presentations'
24
+ */
25
+ function getUrlPathFromPath(pathOption) {
26
+ // Remove leading ./ or / and trailing /
27
+ const normalized = pathOption.replace(/^\.?\//, "").replace(/\/$/, "");
28
+ // Get the last segment (folder name)
29
+ const segments = normalized.split("/");
30
+ return segments[segments.length - 1] || "slidev";
31
+ }
19
32
  /**
20
33
  * Validates a presentation file before building
21
34
  */
@@ -104,12 +117,16 @@ function checkThemeInstalled(themeName, siteDir) {
104
117
  }
105
118
  /**
106
119
  * Builds a single Slidev presentation with real-time output streaming
120
+ * Uses isolated build directories to prevent race conditions during parallel builds
107
121
  */
108
122
  /**
109
123
  * Builds a single Slidev presentation with real-time output streaming
124
+ * Uses isolated build directories to prevent race conditions during parallel builds
110
125
  */
111
- async function buildPresentation(presentation, options, context) {
126
+ async function buildPresentation(presentation, options, context, cacheDir) {
112
127
  const startTime = Date.now();
128
+ let isolatedSourcePath;
129
+ let isolatedDir;
113
130
  try {
114
131
  // Validate presentation before building
115
132
  const validation = validatePresentation(presentation);
@@ -121,19 +138,34 @@ async function buildPresentation(presentation, options, context) {
121
138
  // Check if theme is installed
122
139
  const themeCheck = checkThemeInstalled(theme, context.siteDir);
123
140
  if (!themeCheck.installed && theme) {
124
- (0, logger_1.logWarn)(`Theme '${theme}' not found in package.json for ${(0, logger_1.formatCode)(presentation.id)}`);
125
- (0, logger_1.logWarn)(`Install with: npm install ${theme === "default" ? "@slidev/theme-default" : theme}`);
126
- (0, logger_1.logWarn)("Build may hang or fail - Slidev doesn't exit properly when theme is missing");
141
+ const installCommand = theme === "default" ? "@slidev/theme-default" : theme;
142
+ throw new Error(`Theme '${theme}' not found in package.json\n` +
143
+ `Install with: npm install ${installCommand}\n\n` +
144
+ `Slidev will hang indefinitely when a theme is missing.\n` +
145
+ `Ensure the theme is listed in your package.json dependencies.`);
127
146
  }
128
147
  // Build the base URL for the presentation
129
148
  const baseUrl = context.baseUrl.endsWith("/")
130
149
  ? context.baseUrl.slice(0, -1)
131
150
  : context.baseUrl;
132
- const base = `${baseUrl}/${options.outputDir}/${presentation.id}/`;
151
+ const urlPath = getUrlPathFromPath(options.path);
152
+ const base = `${baseUrl}/${urlPath}/${presentation.id}/`;
153
+ // Create isolated build directory to prevent race conditions
154
+ // Slidev creates index.html in the source directory during build,
155
+ // which causes conflicts when building multiple files from the same directory in parallel
156
+ let sourcePath = presentation.sourceAbsolutePath;
157
+ if (cacheDir) {
158
+ isolatedSourcePath = (0, fileSystem_1.createIsolatedBuildDir)(presentation.sourceAbsolutePath, presentation.id, cacheDir);
159
+ isolatedDir = path_1.default.dirname(isolatedSourcePath);
160
+ sourcePath = isolatedSourcePath;
161
+ if (options.verbose) {
162
+ (0, logger_1.logInfo)(`Using isolated build dir: ${(0, logger_1.formatPath)(isolatedDir)}`);
163
+ }
164
+ }
133
165
  // Construct the slidev build command arguments
134
166
  const args = [
135
167
  "build",
136
- presentation.sourceAbsolutePath,
168
+ sourcePath,
137
169
  "--out",
138
170
  presentation.outputPath,
139
171
  "--base",
@@ -152,9 +184,17 @@ async function buildPresentation(presentation, options, context) {
152
184
  }
153
185
  // Execute with spawn for real-time output and better control
154
186
  const result = await new Promise((resolve) => {
187
+ // Set environment variables to help theme locate source files
188
+ const env = {
189
+ ...process.env,
190
+ SLIDEV_ORIGINAL_SOURCE: presentation.sourceAbsolutePath,
191
+ SLIDEV_ORIGINAL_SOURCE_DIR: path_1.default.dirname(presentation.sourceAbsolutePath),
192
+ SLIDEV_SITE_DIR: context.siteDir,
193
+ };
155
194
  const child = (0, child_process_1.spawn)("slidev", args, {
156
195
  cwd: context.siteDir,
157
196
  stdio: options.verbose ? "inherit" : "pipe",
197
+ env,
158
198
  });
159
199
  let stdout = "";
160
200
  let stderr = "";
@@ -198,30 +238,25 @@ async function buildPresentation(presentation, options, context) {
198
238
  output.includes("building")) {
199
239
  hasSeenBuildStart = true;
200
240
  }
201
- // Show important progress messages
202
- if (output.includes("✓") ||
203
- output.includes("Building") ||
204
- output.includes("Rendering") ||
205
- output.includes("transforming")) {
206
- process.stdout.write(` ${output.trim()}\n`);
207
- }
241
+ // In non-verbose mode, suppress ALL Slidev output
242
+ // We show our own completion messages in buildAllPresentations
208
243
  });
209
244
  child.stderr?.on("data", (data) => {
210
245
  const output = data.toString();
211
246
  stderr += output;
212
247
  lastOutput = Date.now();
213
- // Show errors and important warnings immediately
214
- if (output.includes("error") ||
215
- output.includes("Error") ||
216
- output.includes("Failed") ||
248
+ // Only show critical build failures, not warnings
249
+ // Avoid false positives like "parse5 error code" which are non-fatal warnings
250
+ const isCriticalError = (output.includes("Failed") && !output.includes("parse5")) ||
217
251
  output.includes("Cannot find module") ||
218
- output.includes("ENOENT")) {
219
- process.stderr.write(` ⚠️ ${output.trim()}\n`);
220
- }
221
- // Filter and show other warnings
222
- const filtered = (0, logger_1.filterSlidevOutput)(output);
223
- if (filtered && filtered.trim() && !output.includes("error")) {
224
- process.stderr.write(` ${filtered.trim()}\n`);
252
+ output.includes("ENOENT") ||
253
+ output.includes("Build failed") ||
254
+ output.includes("SyntaxError") ||
255
+ output.includes("ReferenceError") ||
256
+ output.includes("TypeError");
257
+ if (isCriticalError) {
258
+ (0, logger_1.logError)(`Error in ${(0, logger_1.formatCode)(presentation.sourcePath)}:`);
259
+ process.stderr.write(` ${output.trim()}\n`);
225
260
  }
226
261
  });
227
262
  }
@@ -271,6 +306,10 @@ async function buildPresentation(presentation, options, context) {
271
306
  if (!result.success) {
272
307
  throw new Error(result.error);
273
308
  }
309
+ // Clean up isolated build directory after successful build
310
+ if (isolatedDir) {
311
+ (0, fileSystem_1.cleanupIsolatedBuildDir)(isolatedDir);
312
+ }
274
313
  return {
275
314
  id: presentation.id,
276
315
  success: true,
@@ -280,6 +319,10 @@ async function buildPresentation(presentation, options, context) {
280
319
  catch (error) {
281
320
  const duration = (Date.now() - startTime) / 1000;
282
321
  const errorMessage = error.message || String(error);
322
+ // Clean up isolated build directory even on error
323
+ if (isolatedDir) {
324
+ (0, fileSystem_1.cleanupIsolatedBuildDir)(isolatedDir);
325
+ }
283
326
  (0, logger_1.logError)(`Error building presentation ${(0, logger_1.formatCode)(presentation.id)}: ${errorMessage}`);
284
327
  // Show diagnostics for failed builds
285
328
  const issues = diagnosePresentationIssues(presentation, context.siteDir);
@@ -296,29 +339,77 @@ async function buildPresentation(presentation, options, context) {
296
339
  }
297
340
  }
298
341
  /**
299
- * Builds all presentations sequentially
300
- * Returns array of build results
342
+ * Calculates the effective concurrency limit
343
+ * @param maxParallelBuilds User-configured max parallel builds
344
+ * @returns Effective concurrency (capped at CPU count)
345
+ */
346
+ function getEffectiveConcurrency(maxParallelBuilds) {
347
+ const cpuCount = os_1.default.cpus().length;
348
+ const requested = maxParallelBuilds ?? 4;
349
+ return Math.max(1, Math.min(requested, cpuCount));
350
+ }
351
+ /**
352
+ * Builds all presentations with parallel execution using a worker pool pattern.
353
+ * Uses dynamic slot allocation - as soon as a build completes, a new one starts.
354
+ * This is more efficient than batch processing when build times vary.
355
+ *
356
+ * Each presentation is built in an isolated directory within .docusaurus
357
+ * to prevent race conditions from Slidev creating index.html in the source directory.
301
358
  */
302
359
  async function buildAllPresentations(presentations, options, context) {
303
- const results = [];
304
- // Build presentations sequentially (not in parallel)
305
- for (let i = 0; i < presentations.length; i++) {
306
- const presentation = presentations[i];
307
- (0, logger_1.logInfo)(`[${i + 1}/${presentations.length}] Building: ${(0, logger_1.formatCode)(presentation.id)}`);
308
- const result = await buildPresentation(presentation, options, context);
309
- results.push(result);
310
- // Add a small delay between builds to avoid resource contention
311
- if (i < presentations.length - 1) {
312
- await new Promise((resolve) => setTimeout(resolve, 500));
360
+ const totalStartTime = Date.now();
361
+ const total = presentations.length;
362
+ const concurrency = getEffectiveConcurrency(options.maxParallelBuilds);
363
+ // Get cache directory for isolated builds
364
+ const cacheDir = (0, fileSystem_1.getSlidevCacheDir)(context.siteDir, options.id);
365
+ // Results array indexed by original position for ordered output
366
+ const results = new Array(total);
367
+ let completedCount = 0;
368
+ // Log build start with concurrency info
369
+ if (concurrency > 1) {
370
+ (0, logger_1.logInfo)(`Building ${total} presentation(s) with ${concurrency} parallel workers...`);
371
+ }
372
+ else {
373
+ (0, logger_1.logInfo)(`Building ${total} presentation(s) sequentially...`);
374
+ }
375
+ // Create a queue of work items with their original indices
376
+ const queue = presentations.map((presentation, index) => ({ presentation, index }));
377
+ // Worker function that processes items from the queue
378
+ async function worker() {
379
+ while (queue.length > 0) {
380
+ const item = queue.shift();
381
+ if (!item)
382
+ break;
383
+ const { presentation, index } = item;
384
+ // Build the presentation in isolated directory (no "Building:" log, only completion)
385
+ const result = await buildPresentation(presentation, options, context, cacheDir);
386
+ results[index] = result;
387
+ completedCount++;
388
+ // Log completion immediately
389
+ if (result.success) {
390
+ (0, logger_1.logSuccess)(`[${completedCount}/${total}] ${presentation.sourcePath} (${result.duration?.toFixed(2)}s)`);
391
+ }
392
+ else {
393
+ (0, logger_1.logError)(`[${completedCount}/${total}] ${presentation.sourcePath} - FAILED`);
394
+ }
313
395
  }
314
396
  }
397
+ // Start workers up to the concurrency limit
398
+ // Each worker will keep pulling from the queue until it's empty
399
+ const workers = [];
400
+ const workerCount = Math.min(concurrency, total);
401
+ for (let i = 0; i < workerCount; i++) {
402
+ workers.push(worker());
403
+ }
404
+ // Wait for all workers to complete
405
+ await Promise.all(workers);
315
406
  // Summary
316
407
  const successful = results.filter((r) => r.success).length;
317
408
  const failed = results.filter((r) => !r.success).length;
318
- const totalTime = results.reduce((sum, r) => sum + (r.duration || 0), 0);
409
+ const totalTime = (Date.now() - totalStartTime) / 1000;
319
410
  if (failed > 0) {
320
411
  (0, logger_1.logWarn)(`Build complete: ${successful} successful, ${failed} failed (total: ${totalTime.toFixed(2)}s)`);
321
- // Log individual failures
412
+ // Log individual failures with details
322
413
  results
323
414
  .filter((r) => !r.success)
324
415
  .forEach((result) => {
@@ -326,7 +417,7 @@ async function buildAllPresentations(presentations, options, context) {
326
417
  });
327
418
  }
328
419
  else {
329
- (0, logger_1.logSuccess)(`All presentations built successfully in ${totalTime.toFixed(2)}s!`);
420
+ (0, logger_1.logSuccess)(`All ${total} presentations built successfully in ${totalTime.toFixed(2)}s!`);
330
421
  }
331
422
  return results;
332
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/plugin/builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAoIH,8CA4PC;AAMD,sDAkDC;AAKD,oDAUC;AAKD,gEA0GC;AApjBD,iDAA4C;AAC5C,+BAAiC;AACjC,gDAAwB;AACxB,4CAAoB;AAMpB,4CAQyB;AAEzB,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC;;GAEG;AACH,SAAS,oBAAoB,CAAC,YAAkC;IAI9D,uBAAuB;IACvB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,0BAA0B,YAAY,CAAC,kBAAkB,EAAE;SACnE,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC;QACH,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,kBAAkB,EAAE,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,4BAA4B,YAAY,CAAC,kBAAkB,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,sBAAsB;SAC9B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,cAAc;IAEhF,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EACH,yFAAyF;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,SAA6B,EAC7B,OAAe;IAEf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,8CAA8C;QAC9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,SAAS;gBAChB,QAAQ;gBACR,KAAK,EAAE,wBAAwB;aAChC,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG;YACd,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;SAC/B,CAAC;QAEF,oCAAoC;QACpC,MAAM,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC;QAEvC,OAAO;YACL,SAAS;YACT,KAAK,EAAE,SAAS;YAChB,QAAQ;YACR,KAAK,EAAE,SAAS;gBACd,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,SAAS,6BAA6B;SACrD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,QAAQ;YACR,KAAK,EAAE,0BAA0B,KAAK,EAAE;SACzC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,YAAkC,EAClC,OAAsB,EACtB,OAA6C;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,iEAAiE;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAElD,8BAA8B;QAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;YACnC,IAAA,gBAAO,EACL,UAAU,KAAK,mCAAmC,IAAA,mBAAU,EAC1D,YAAY,CAAC,EAAE,CAChB,EAAE,CACJ,CAAC;YACF,IAAA,gBAAO,EACL,6BACE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAClD,EAAE,CACH,CAAC;YACF,IAAA,gBAAO,EACL,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,EAAE,GAAG,CAAC;QAEnE,+CAA+C;QAC/C,MAAM,IAAI,GAAG;YACX,OAAO;YACP,YAAY,CAAC,kBAAkB;YAC/B,OAAO;YACP,YAAY,CAAC,UAAU;YACvB,QAAQ;YACR,IAAI;SACL,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAEtD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAA,gBAAO,EAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAA,gBAAO,EAAC,sBAAsB,IAAA,mBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,6DAA6D;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAC9B,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,QAAQ,EAAE,IAAI,EAAE;gBAClC,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;aAC5C,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAE9B,iEAAiE;YACjE,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC1C,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;gBAE7D,8DAA8D;gBAC9D,IACE,mBAAmB,GAAG,EAAE;oBACxB,CAAC,iBAAiB;oBAClB,CAAC,iBAAiB,EAClB,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC;oBACzB,IAAA,gBAAO,EACL,iBAAiB,mBAAmB,CAAC,OAAO,CAC1C,CAAC,CACF,gEAAgE,CAClE,CAAC;oBACF,IAAA,gBAAO,EAAC,sDAAsD,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,kBAAkB;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,QAAQ,GAAG,IAAI,CAAC;gBAChB,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEtB,+CAA+C;gBAC/C,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,sCAAsC;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,MAAM,CAAC;oBACjB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAExB,qBAAqB;oBACrB,IACE,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;wBAC/B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;wBACtC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC3B,CAAC;wBACD,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBAED,mCAAmC;oBACnC,IACE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACpB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC3B,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;wBAC5B,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC/B,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,MAAM,CAAC;oBACjB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAExB,iDAAiD;oBACjD,IACE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACxB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACzB,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACzB,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrD,CAAC;oBAED,iCAAiC;oBACjC,MAAM,QAAQ,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;oBAC5C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBAClC,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;iBAClD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBAElC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,mBAAmB,GAAG,CAC1B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;wBACzB,IAAI,CACL,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACb,MAAM,iBAAiB,GAAG,iBAAiB;wBACzC,CAAC,CAAC,yBAAyB;wBAC3B,CAAC,CAAC,wBAAwB,CAAC;oBAE7B,IAAI,QAAQ,GAAG,yBACb,OAAO,CAAC,YAAY,IAAI,EAC1B,MAAM,iBAAiB,oBAAoB,mBAAmB,QAAQ,CAAC;oBAEvE,oDAAoD;oBACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,QAAQ,IAAI,sBAAsB,CAAC;wBACnC,QAAQ,IAAI,qCAAqC,CAAC;wBAClD,QAAQ,IAAI,wDAAwD,CAAC;wBACrE,QAAQ,IAAI,6CAA6C,CAAC;wBAC1D,QAAQ,IAAI,sFAAsF,CAAC;oBACrG,CAAC;oBAED,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,2BAA2B,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE;qBAC9D,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO;YACL,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,OAAO,EAAE,IAAI;YACb,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAA,iBAAQ,EACN,+BAA+B,IAAA,mBAAU,EACvC,YAAY,CAAC,EAAE,CAChB,KAAK,YAAY,EAAE,CACrB,CAAC;QAEF,qCAAqC;QACrC,MAAM,MAAM,GAAG,0BAA0B,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAA,gBAAO,EAAC,gCAAgC,IAAA,mBAAU,EAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAO,EAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,YAAY;YACnB,QAAQ;SACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,qBAAqB,CACzC,aAAqC,EACrC,OAAsB,EACtB,OAA6C;IAE7C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,qDAAqD;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,gBAAO,EACL,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,eAAe,IAAA,mBAAU,EACxD,YAAY,CAAC,EAAE,CAChB,EAAE,CACJ,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,gEAAgE;QAChE,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,IAAA,gBAAO,EACL,mBAAmB,UAAU,gBAAgB,MAAM,mBAAmB,SAAS,CAAC,OAAO,CACrF,CAAC,CACF,IAAI,CACN,CAAC;QAEF,0BAA0B;QAC1B,OAAO;aACJ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aACzB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClB,IAAA,iBAAQ,EAAC,WAAW,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,IAAA,mBAAU,EACR,2CAA2C,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpE,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,iBAAQ,EACN,2EAA2E,CAC5E,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACxC,YAAkC,EAClC,OAAgB;IAEhB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAE1E,0BAA0B;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE3D,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CACT,uBAAuB,SAAS,4CAA4C,CAC7E,CAAC;gBACF,MAAM,CAAC,IAAI,CACT,uBACE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SACtD,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CACT,2BAA2B,UAAU,CAAC,IAAI,CACxC,IAAI,CACL,qCAAqC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IACE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,2BAA2B;QAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG;gBACd,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7D,CAAC;YACF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;gBACC,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,KAAK;gBACL,SAAS;gBACT,OAAO;gBACP,MAAM;gBACN,WAAW;gBACX,OAAO;gBACP,YAAY;gBACZ,aAAa;gBACb,UAAU;gBACV,QAAQ;aACT,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChB,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CACT,wBAAwB,aAAa,CAAC,IAAI,CACxC,IAAI,CACL,6BAA6B,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,6DAA6D,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG,CACb,YAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,IAAI,GAAG,IAAI,CACzD,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,qBAAqB,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/plugin/builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAuBlB;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAC9B,MAAM,CAAC,iBAAiB,CAAC,CAkH3B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,QAAQ,EAAE,OAAO,GAAG,CAAC;CACtB,GAAG,aAAa,CAyBhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAqFlB;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAC9B,MAAM,CAAC,iBAAiB,CAAC,CAuJ3B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,QAAQ,EAAE,OAAO,GAAG,CAAC;CACtB,GAAG,aAAa,CAkChB"}
@@ -16,26 +16,72 @@ const logger_1 = require("../utils/logger");
16
16
  const fileSystem_1 = require("../utils/fileSystem");
17
17
  // Default plugin options
18
18
  const DEFAULT_OPTIONS = {
19
- sourceDir: "./slidev",
20
- outputDir: "slides",
19
+ path: "./slidev",
21
20
  download: false,
22
- overviewPath: "/slidev",
23
- overviewTitle: "Slidev Presentations",
24
- overviewTagline: "Interactive presentation overview",
21
+ routeBasePath: "/slidev",
22
+ pageTitle: "Slidev Presentations",
23
+ pageTagline: "Interactive presentation overview",
25
24
  id: "default",
26
- buildTimeout: 60,
25
+ buildTimeout: 120, // Increased from 60s for large presentations
27
26
  verbose: false,
27
+ maxParallelBuilds: 4, // Parallel builds for faster build times
28
28
  };
29
+ /**
30
+ * Derives the URL path from the path option
31
+ * e.g., './slidev' -> 'slidev', './presentations' -> 'presentations'
32
+ */
33
+ function getUrlPathFromPath(pathOption) {
34
+ // Remove leading ./ or / and trailing /
35
+ const normalized = pathOption.replace(/^\.?\//, "").replace(/\/$/, "");
36
+ // Get the last segment (folder name)
37
+ const segments = normalized.split("/");
38
+ return segments[segments.length - 1] || "slidev";
39
+ }
40
+ const DEPRECATED_OPTIONS = {
41
+ sourceDir: {
42
+ newName: "path",
43
+ message: 'Use "path" instead of "sourceDir"',
44
+ },
45
+ overviewPath: {
46
+ newName: "routeBasePath",
47
+ message: 'Use "routeBasePath" instead of "overviewPath"',
48
+ },
49
+ overviewTitle: {
50
+ newName: "pageTitle",
51
+ message: 'Use "pageTitle" instead of "overviewTitle"',
52
+ },
53
+ overviewTagline: {
54
+ newName: "pageTagline",
55
+ message: 'Use "pageTagline" instead of "overviewTagline"',
56
+ },
57
+ };
58
+ /**
59
+ * Process options and handle deprecated names
60
+ */
61
+ function processDeprecatedOptions(options) {
62
+ const processed = { ...options };
63
+ for (const [oldName, { newName, message }] of Object.entries(DEPRECATED_OPTIONS)) {
64
+ if (oldName in processed && !(newName in processed)) {
65
+ (0, logger_1.logWarn)(`Deprecated option "${oldName}": ${message}`);
66
+ processed[newName] = processed[oldName];
67
+ delete processed[oldName];
68
+ }
69
+ }
70
+ return processed;
71
+ }
29
72
  /**
30
73
  * Main plugin function
31
74
  */
32
75
  function pluginSlidev(context, options) {
76
+ // Process deprecated options first
77
+ const processedOptions = processDeprecatedOptions(options);
33
78
  // Merge user options with defaults
34
79
  const pluginOptions = {
35
80
  ...DEFAULT_OPTIONS,
36
- ...options,
81
+ ...processedOptions,
37
82
  };
38
83
  let presentations = [];
84
+ let categories = [];
39
85
  const isDev = process.env.NODE_ENV === "development";
40
86
  return {
41
87
  name: "docusaurus-plugin-slidev",
@@ -43,31 +89,32 @@ function pluginSlidev(context, options) {
43
89
  * Load content phase: Scan for Slidev presentations and build them in production
44
90
  */
45
91
  async loadContent() {
46
- presentations = await (0, scanner_1.scanPresentations)(pluginOptions, {
92
+ const scanResult = await (0, scanner_1.scanPresentations)(pluginOptions, {
47
93
  siteDir: context.siteDir,
48
94
  baseUrl: context.baseUrl,
49
95
  });
96
+ presentations = scanResult.presentations;
97
+ categories = scanResult.categories;
50
98
  if (isDev && presentations.length > 0) {
51
99
  (0, logger_1.logInfo)("Presentations will be available after running 'npm run build'");
52
100
  }
53
101
  else if (!isDev && presentations.length > 0) {
54
- // Build presentations BEFORE Docusaurus builds
55
- // This ensures they're in the static directory when Docusaurus copies static files
102
+ // Build presentations to hidden cache directory
103
+ // They will be copied to final output in postBuild hook
56
104
  // Check if Slidev is installed
57
105
  const slidevInstalled = await (0, builder_1.checkSlidevInstalled)();
58
106
  if (!slidevInstalled) {
59
107
  throw new Error("Slidev CLI is not installed. Run: npm install @slidev/cli");
60
108
  }
61
- // Prepare output directory
62
- const outputPath = path_1.default.join(context.siteDir, "static", pluginOptions.outputDir);
63
- // Clean up old presentations in output directory
64
- (0, fileSystem_1.cleanupOutputDirectory)(outputPath);
65
109
  // Clean up Slidev artifacts in source directory
66
- const sourcePath = path_1.default.join(context.siteDir, pluginOptions.sourceDir);
110
+ const sourcePath = path_1.default.join(context.siteDir, pluginOptions.path);
67
111
  (0, fileSystem_1.cleanupSourceDirectory)(sourcePath);
68
- // Create .gitignore
69
- (0, fileSystem_1.createGitignore)(outputPath);
70
- // Build all presentations
112
+ // Clean up the Slidev cache directory (.docusaurus/docusaurus-plugin-slidev)
113
+ // This ensures a clean build state and prevents stale artifacts
114
+ const cacheDir = (0, fileSystem_1.getSlidevCacheDir)(context.siteDir, pluginOptions.id);
115
+ (0, fileSystem_1.cleanupSlidevCache)(cacheDir);
116
+ // Build all presentations to cache directory
117
+ // (each in an isolated directory to prevent race conditions)
71
118
  await (0, builder_1.buildAllPresentations)(presentations, pluginOptions, {
72
119
  siteDir: context.siteDir,
73
120
  baseUrl: context.baseUrl,
@@ -75,6 +122,7 @@ function pluginSlidev(context, options) {
75
122
  }
76
123
  return {
77
124
  presentations,
125
+ categories,
78
126
  config: pluginOptions,
79
127
  isDev,
80
128
  };
@@ -86,12 +134,20 @@ function pluginSlidev(context, options) {
86
134
  const { setGlobalData, addRoute } = actions;
87
135
  // Make presentation data available globally
88
136
  setGlobalData(content);
89
- // Add the overview page route
137
+ // Add the overview page route (root)
90
138
  addRoute({
91
- path: pluginOptions.overviewPath,
139
+ path: pluginOptions.routeBasePath,
92
140
  component: "@theme/SlidevOverview",
93
141
  exact: true,
94
142
  });
143
+ // Add routes for each category (nested views)
144
+ categories.forEach((category) => {
145
+ addRoute({
146
+ path: category.url,
147
+ component: "@theme/SlidevOverview",
148
+ exact: true,
149
+ });
150
+ });
95
151
  // Add routes for each individual presentation
96
152
  presentations.forEach((presentation) => {
97
153
  // Strip trailing slash from URL for route path
@@ -105,6 +161,26 @@ function pluginSlidev(context, options) {
105
161
  });
106
162
  });
107
163
  },
164
+ /**
165
+ * Post-build phase: Copy built presentations from cache to final output
166
+ * This keeps build artifacts hidden from the user's workspace (no static/slides/ directory)
167
+ */
168
+ async postBuild({ outDir }) {
169
+ // Skip in development mode - presentations aren't built
170
+ if (isDev) {
171
+ return;
172
+ }
173
+ // Skip if no presentations were found
174
+ if (presentations.length === 0) {
175
+ return;
176
+ }
177
+ // Copy built presentations from cache to final output
178
+ const cacheOutputDir = (0, fileSystem_1.getSlidevBuildOutputDir)(context.siteDir, pluginOptions.id);
179
+ const urlPath = getUrlPathFromPath(pluginOptions.path);
180
+ const finalOutputDir = path_1.default.join(outDir, urlPath);
181
+ (0, fileSystem_1.copyBuiltPresentationsToOutput)(cacheOutputDir, finalOutputDir);
182
+ (0, logger_1.logInfo)(`Copied ${presentations.length} presentation(s) to final output`);
183
+ },
108
184
  /**
109
185
  * Provide theme components
110
186
  */
@@ -123,23 +199,29 @@ function pluginSlidev(context, options) {
123
199
  * Validate plugin options using Docusaurus validation schema
124
200
  */
125
201
  function validateOptions({ options, validate, }) {
202
+ // Process deprecated options and aliases first
203
+ const processedOptions = processDeprecatedOptions(options);
126
204
  // Create schema using Joi from @docusaurus/utils-validation
127
205
  const schema = utils_validation_1.Joi.object({
128
- sourceDir: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.sourceDir),
129
- outputDir: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.outputDir),
206
+ path: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.path),
207
+ sourceDir: utils_validation_1.Joi.string().optional(), // Deprecated alias
130
208
  theme: utils_validation_1.Joi.string().optional(),
131
209
  download: utils_validation_1.Joi.boolean().default(DEFAULT_OPTIONS.download),
132
- overviewPath: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.overviewPath),
133
- overviewTitle: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.overviewTitle),
134
- overviewTagline: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.overviewTagline),
210
+ routeBasePath: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.routeBasePath),
211
+ overviewPath: utils_validation_1.Joi.string().optional(), // Deprecated alias
212
+ pageTitle: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.pageTitle),
213
+ overviewTitle: utils_validation_1.Joi.string().optional(), // Deprecated alias
214
+ pageTagline: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.pageTagline),
215
+ overviewTagline: utils_validation_1.Joi.string().optional(), // Deprecated alias
135
216
  id: utils_validation_1.Joi.string().default(DEFAULT_OPTIONS.id),
136
217
  buildTimeout: utils_validation_1.Joi.number()
137
218
  .min(10)
138
219
  .max(600)
139
220
  .default(DEFAULT_OPTIONS.buildTimeout),
140
221
  verbose: utils_validation_1.Joi.boolean().default(DEFAULT_OPTIONS.verbose),
222
+ maxParallelBuilds: utils_validation_1.Joi.number().min(1).default(DEFAULT_OPTIONS.maxParallelBuilds),
141
223
  });
142
- const { value, error } = schema.validate(options);
224
+ const { value, error } = schema.validate(processedOptions);
143
225
  if (error) {
144
226
  throw error;
145
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * Scanner utility for discovering Slidev presentations
3
3
  */
4
- import type { PresentationMetadata, PluginOptions } from "../types";
4
+ import type { PresentationMetadata, PluginOptions, CategoryMetadata } from "../types";
5
+ /**
6
+ * Result from scanning presentations
7
+ */
8
+ export interface ScanResult {
9
+ presentations: PresentationMetadata[];
10
+ categories: CategoryMetadata[];
11
+ }
5
12
  /**
6
13
  * Scans for Slidev presentations and extracts metadata
7
14
  */
8
15
  export declare function scanPresentations(options: PluginOptions, context: {
9
16
  siteDir: string;
10
17
  baseUrl: string;
11
- }): Promise<PresentationMetadata[]>;
18
+ }): Promise<ScanResult>;
12
19
  //# sourceMappingURL=scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/plugin/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,oBAAoB,EAEpB,aAAa,EACd,MAAM,UAAU,CAAC;AA0ElB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6DjC"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/plugin/scanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EACV,oBAAoB,EAEpB,aAAa,EACb,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAsPlB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,UAAU,CAAC,CA6FrB"}