@slidev/parser 0.22.7 → 0.24.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.
@@ -22,7 +22,13 @@ var __spreadValues = (a, b) => {
22
22
  };
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
- var __commonJS = (cb, mod) => function __require() {
25
+ var __require = typeof require !== "undefined" ? require : (x) => {
26
+ throw new Error('Dynamic require of "' + x + '" is not supported');
27
+ };
28
+ var __esm = (fn, res) => function __init() {
29
+ return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res;
30
+ };
31
+ var __commonJS = (cb, mod) => function __require2() {
26
32
  return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
27
33
  };
28
34
  var __reExport = (target, module, desc) => {
@@ -37,9 +43,18 @@ var __toModule = (module) => {
37
43
  return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
38
44
  };
39
45
 
40
- // ../../node_modules/.pnpm/@antfu+utils@0.2.4/node_modules/@antfu/utils/dist/index.js
46
+ // ../../node_modules/.pnpm/tsup@5.1.0_typescript@4.4.3/node_modules/tsup/assets/cjs_shims.js
47
+ var importMetaUrlShim;
48
+ var init_cjs_shims = __esm({
49
+ "../../node_modules/.pnpm/tsup@5.1.0_typescript@4.4.3/node_modules/tsup/assets/cjs_shims.js"() {
50
+ importMetaUrlShim = typeof document === "undefined" ? new (__require("url")).URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
51
+ }
52
+ });
53
+
54
+ // ../../node_modules/.pnpm/@antfu+utils@0.3.0/node_modules/@antfu/utils/dist/index.js
41
55
  var require_dist = __commonJS({
42
- "../../node_modules/.pnpm/@antfu+utils@0.2.4/node_modules/@antfu/utils/dist/index.js"(exports) {
56
+ "../../node_modules/.pnpm/@antfu+utils@0.3.0/node_modules/@antfu/utils/dist/index.js"(exports) {
57
+ init_cjs_shims();
43
58
  "use strict";
44
59
  Object.defineProperty(exports, "__esModule", { value: true });
45
60
  function clamp(n, min, max) {
@@ -60,11 +75,20 @@ var require_dist = __commonJS({
60
75
  function mergeArrayable(...args) {
61
76
  return args.flatMap((i) => toArray2(i));
62
77
  }
63
- function partition(array, filter) {
64
- const pass = [];
65
- const fail = [];
66
- array.forEach((e, idx, arr) => (filter(e, idx, arr) ? pass : fail).push(e));
67
- return [pass, fail];
78
+ function partition(array, ...filters) {
79
+ const result = new Array(filters.length + 1).fill(null).map(() => []);
80
+ array.forEach((e, idx, arr) => {
81
+ let i = 0;
82
+ for (const filter of filters) {
83
+ if (filter(e, idx, arr)) {
84
+ result[i].push(e);
85
+ return;
86
+ }
87
+ i += 1;
88
+ }
89
+ result[i].push(e);
90
+ });
91
+ return result;
68
92
  }
69
93
  function uniq3(array) {
70
94
  return Array.from(new Set(array));
@@ -118,7 +142,7 @@ var require_dist = __commonJS({
118
142
  if (!condition)
119
143
  throw new Error(message);
120
144
  };
121
- var toString2 = Object.prototype.toString;
145
+ var toString2 = (v) => Object.prototype.toString.call(v);
122
146
  var noop = () => {
123
147
  };
124
148
  function notNullish(v) {
@@ -149,6 +173,14 @@ var require_dist = __commonJS({
149
173
  return prefix + str;
150
174
  return str;
151
175
  }
176
+ function template(str, ...args) {
177
+ return str.replace(/{(\d+)}/g, (match, key) => {
178
+ const index = Number(key);
179
+ if (Number.isNaN(index))
180
+ return match;
181
+ return args[index];
182
+ });
183
+ }
152
184
  var timestamp = () => +Date.now();
153
185
  function batchInvoke(functions) {
154
186
  functions.forEach((fn) => fn && fn());
@@ -233,6 +265,29 @@ var require_dist = __commonJS({
233
265
  resolve();
234
266
  }, ms));
235
267
  }
268
+ function createPromiseLock() {
269
+ const locks = [];
270
+ return {
271
+ async run(fn) {
272
+ const p = fn();
273
+ locks.push(p);
274
+ try {
275
+ return await p;
276
+ } finally {
277
+ remove(locks, p);
278
+ }
279
+ },
280
+ async wait() {
281
+ await Promise.allSettled(locks);
282
+ },
283
+ isWaiting() {
284
+ return Boolean(locks.length);
285
+ },
286
+ clear() {
287
+ locks.length = 0;
288
+ }
289
+ };
290
+ }
236
291
  function throttle(delay, noTrailing, callback, debounceMode) {
237
292
  var timeoutID;
238
293
  var cancelled = false;
@@ -289,6 +344,7 @@ var require_dist = __commonJS({
289
344
  exports.clamp = clamp;
290
345
  exports.clampArrayRange = clampArrayRange;
291
346
  exports.clearUndefined = clearUndefined;
347
+ exports.createPromiseLock = createPromiseLock;
292
348
  exports.createSingletonPromise = createSingletonPromise;
293
349
  exports.debounce = debounce;
294
350
  exports.deepMerge = deepMerge;
@@ -324,6 +380,7 @@ var require_dist = __commonJS({
324
380
  exports.sleep = sleep;
325
381
  exports.sum = sum;
326
382
  exports.tap = tap;
383
+ exports.template = template;
327
384
  exports.throttle = throttle;
328
385
  exports.timestamp = timestamp;
329
386
  exports.toArray = toArray2;
@@ -333,10 +390,16 @@ var require_dist = __commonJS({
333
390
  });
334
391
 
335
392
  // src/core.ts
336
- var import_utils3 = __toModule(require_dist());
393
+ init_cjs_shims();
394
+ var import_utils4 = __toModule(require_dist());
337
395
  var _jsyaml = require('js-yaml'); var _jsyaml2 = _interopRequireDefault(_jsyaml);
338
396
 
397
+ // src/config.ts
398
+ init_cjs_shims();
399
+ var import_utils2 = __toModule(require_dist());
400
+
339
401
  // src/utils.ts
402
+ init_cjs_shims();
340
403
  var import_utils = __toModule(require_dist());
341
404
  function parseRangeString(total, rangeStr) {
342
405
  if (!rangeStr || rangeStr === "all" || rangeStr === "*")
@@ -374,7 +437,7 @@ function resolveConfig(headmatter, themeMeta = {}) {
374
437
  theme: "default",
375
438
  title: "Slidev",
376
439
  titleTemplate: "%s - Slidev",
377
- remoteAssets: true,
440
+ remoteAssets: false,
378
441
  monaco: "dev",
379
442
  download: false,
380
443
  info: false,
@@ -386,10 +449,12 @@ function resolveConfig(headmatter, themeMeta = {}) {
386
449
  canvasWidth: 980,
387
450
  selectable: false,
388
451
  themeConfig: {},
389
- fonts: {}
452
+ fonts: {},
453
+ drawings: {}
390
454
  };
391
455
  const config = __spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, defaultConfig), themeMeta.defaults), headmatter.config), headmatter), {
392
- fonts: resolveFonts(__spreadValues(__spreadValues(__spreadValues({}, (_a = themeMeta.defaults) == null ? void 0 : _a.fonts), (_b = headmatter.config) == null ? void 0 : _b.fonts), headmatter == null ? void 0 : headmatter.fonts))
456
+ fonts: resolveFonts(__spreadValues(__spreadValues(__spreadValues({}, (_a = themeMeta.defaults) == null ? void 0 : _a.fonts), (_b = headmatter.config) == null ? void 0 : _b.fonts), headmatter == null ? void 0 : headmatter.fonts)),
457
+ drawings: resolveDarwings(headmatter.drawings)
393
458
  });
394
459
  if (config.colorSchema !== "dark" && config.colorSchema !== "light")
395
460
  config.colorSchema = "auto";
@@ -402,6 +467,86 @@ function resolveConfig(headmatter, themeMeta = {}) {
402
467
  console.warn(`[slidev] Syntax highlighter "${config.highlighter}" does not supported by the theme`);
403
468
  return config;
404
469
  }
470
+ function resolveFonts(fonts = {}) {
471
+ const {
472
+ fallbacks = true,
473
+ italic = false,
474
+ provider = "google"
475
+ } = fonts;
476
+ let sans = (0, import_utils2.toArray)(fonts.sans).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
477
+ let serif = (0, import_utils2.toArray)(fonts.serif).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
478
+ let mono = (0, import_utils2.toArray)(fonts.mono).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
479
+ const weights = (0, import_utils2.toArray)(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
480
+ const custom = (0, import_utils2.toArray)(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
481
+ const local = (0, import_utils2.toArray)(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
482
+ const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? (0, import_utils2.uniq)([...sans, ...serif, ...mono, ...custom]) : [];
483
+ webfonts.filter((i) => local.includes(i));
484
+ function toQuoted(font) {
485
+ if (/^(['"]).*\1$/.test(font))
486
+ return font;
487
+ return `"${font}"`;
488
+ }
489
+ if (fallbacks) {
490
+ sans = (0, import_utils2.uniq)([
491
+ ...sans.map(toQuoted),
492
+ "ui-sans-serif",
493
+ "system-ui",
494
+ "-apple-system",
495
+ "BlinkMacSystemFont",
496
+ '"Segoe UI"',
497
+ "Roboto",
498
+ '"Helvetica Neue"',
499
+ "Arial",
500
+ '"Noto Sans"',
501
+ "sans-serif",
502
+ '"Apple Color Emoji"',
503
+ '"Segoe UI Emoji"',
504
+ '"Segoe UI Symbol"',
505
+ '"Noto Color Emoji"'
506
+ ]);
507
+ serif = (0, import_utils2.uniq)([
508
+ ...serif.map(toQuoted),
509
+ "ui-serif",
510
+ "Georgia",
511
+ "Cambria",
512
+ '"Times New Roman"',
513
+ "Times",
514
+ "serif"
515
+ ]);
516
+ mono = (0, import_utils2.uniq)([
517
+ ...mono.map(toQuoted),
518
+ "ui-monospace",
519
+ "SFMono-Regular",
520
+ "Menlo",
521
+ "Monaco",
522
+ "Consolas",
523
+ '"Liberation Mono"',
524
+ '"Courier New"',
525
+ "monospace"
526
+ ]);
527
+ }
528
+ return {
529
+ sans,
530
+ serif,
531
+ mono,
532
+ webfonts,
533
+ provider,
534
+ local,
535
+ italic,
536
+ weights
537
+ };
538
+ }
539
+ function resolveDarwings(options = {}) {
540
+ const {
541
+ enabled = true,
542
+ persist = false
543
+ } = options;
544
+ const persistPath = typeof persist === "string" ? persist : persist ? ".slidev/drawings" : false;
545
+ return {
546
+ enabled,
547
+ persist: persistPath
548
+ };
549
+ }
405
550
 
406
551
  // src/core.ts
407
552
  function stringify(data) {
@@ -448,7 +593,7 @@ function matter(code) {
448
593
  let data = {};
449
594
  const content = code.replace(/^---.*\r?\n([\s\S]*?)---/, (_, d) => {
450
595
  data = _jsyaml2.default.load(d);
451
- if (!(0, import_utils3.isObject)(data))
596
+ if (!(0, import_utils4.isObject)(data))
452
597
  data = {};
453
598
  return "";
454
599
  });
@@ -531,77 +676,8 @@ function parse(markdown, filepath, themeMeta) {
531
676
  themeMeta
532
677
  };
533
678
  }
534
- function resolveFonts(fonts = {}) {
535
- const {
536
- fallbacks = true,
537
- italic = false,
538
- provider = "google"
539
- } = fonts;
540
- let sans = (0, import_utils3.toArray)(fonts.sans).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
541
- let serif = (0, import_utils3.toArray)(fonts.serif).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
542
- let mono = (0, import_utils3.toArray)(fonts.mono).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
543
- const weights = (0, import_utils3.toArray)(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
544
- const custom = (0, import_utils3.toArray)(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
545
- const local = (0, import_utils3.toArray)(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
546
- const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? (0, import_utils3.uniq)([...sans, ...serif, ...mono, ...custom]) : [];
547
- webfonts.filter((i) => local.includes(i));
548
- function toQuoted(font) {
549
- if (/^(['"]).*\1$/.test(font))
550
- return font;
551
- return `"${font}"`;
552
- }
553
- if (fallbacks) {
554
- sans = (0, import_utils3.uniq)([
555
- ...sans.map(toQuoted),
556
- "ui-sans-serif",
557
- "system-ui",
558
- "-apple-system",
559
- "BlinkMacSystemFont",
560
- '"Segoe UI"',
561
- "Roboto",
562
- '"Helvetica Neue"',
563
- "Arial",
564
- '"Noto Sans"',
565
- "sans-serif",
566
- '"Apple Color Emoji"',
567
- '"Segoe UI Emoji"',
568
- '"Segoe UI Symbol"',
569
- '"Noto Color Emoji"'
570
- ]);
571
- serif = (0, import_utils3.uniq)([
572
- ...serif.map(toQuoted),
573
- "ui-serif",
574
- "Georgia",
575
- "Cambria",
576
- '"Times New Roman"',
577
- "Times",
578
- "serif"
579
- ]);
580
- mono = (0, import_utils3.uniq)([
581
- ...mono.map(toQuoted),
582
- "ui-monospace",
583
- "SFMono-Regular",
584
- "Menlo",
585
- "Monaco",
586
- "Consolas",
587
- '"Liberation Mono"',
588
- '"Courier New"',
589
- "monospace"
590
- ]);
591
- }
592
- return {
593
- sans,
594
- serif,
595
- mono,
596
- webfonts,
597
- provider,
598
- local,
599
- italic,
600
- weights
601
- };
602
- }
603
679
  function mergeFeatureFlags(a, b) {
604
- return (0, import_utils3.objectMap)(a, (k, v) => [k, v || b[k]]);
680
+ return (0, import_utils4.objectMap)(a, (k, v) => [k, v || b[k]]);
605
681
  }
606
682
  function scanMonacoModules(md) {
607
683
  const typeModules = new Set();
@@ -609,7 +685,7 @@ function scanMonacoModules(md) {
609
685
  options = options || "";
610
686
  lang = lang.trim();
611
687
  if (lang === "ts" || lang === "typescript") {
612
- Array.from(code.matchAll(/\s+from\s+(["'])([\/\w@-]+)\1/g)).map((i) => i[2]).filter(import_utils3.isTruthy).map((i) => typeModules.add(i));
688
+ Array.from(code.matchAll(/\s+from\s+(["'])([\/\w@-]+)\1/g)).map((i) => i[2]).filter(import_utils4.isTruthy).map((i) => typeModules.add(i));
613
689
  }
614
690
  return "";
615
691
  });
@@ -632,4 +708,5 @@ function scanMonacoModules(md) {
632
708
 
633
709
 
634
710
 
635
- exports.__spreadValues = __spreadValues; exports.parseRangeString = parseRangeString; exports.parseAspectRatio = parseAspectRatio; exports.resolveConfig = resolveConfig; exports.stringify = stringify; exports.filterDisabled = filterDisabled; exports.stringifySlide = stringifySlide; exports.prettifySlide = prettifySlide; exports.prettify = prettify; exports.detectFeatures = detectFeatures; exports.parseSlide = parseSlide; exports.parse = parse; exports.resolveFonts = resolveFonts; exports.mergeFeatureFlags = mergeFeatureFlags; exports.scanMonacoModules = scanMonacoModules;
711
+
712
+ exports.__spreadValues = __spreadValues; exports.init_cjs_shims = init_cjs_shims; exports.parseRangeString = parseRangeString; exports.parseAspectRatio = parseAspectRatio; exports.resolveConfig = resolveConfig; exports.resolveFonts = resolveFonts; exports.stringify = stringify; exports.filterDisabled = filterDisabled; exports.stringifySlide = stringifySlide; exports.prettifySlide = prettifySlide; exports.prettify = prettify; exports.detectFeatures = detectFeatures; exports.parseSlide = parseSlide; exports.parse = parse; exports.mergeFeatureFlags = mergeFeatureFlags; exports.scanMonacoModules = scanMonacoModules;
@@ -22,7 +22,10 @@ var __spreadValues = (a, b) => {
22
22
  };
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
- var __commonJS = (cb, mod) => function __require() {
25
+ var __require = typeof require !== "undefined" ? require : (x) => {
26
+ throw new Error('Dynamic require of "' + x + '" is not supported');
27
+ };
28
+ var __commonJS = (cb, mod) => function __require2() {
26
29
  return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
27
30
  };
28
31
  var __reExport = (target, module, desc) => {
@@ -37,9 +40,9 @@ var __toModule = (module) => {
37
40
  return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
38
41
  };
39
42
 
40
- // ../../node_modules/.pnpm/@antfu+utils@0.2.4/node_modules/@antfu/utils/dist/index.js
43
+ // ../../node_modules/.pnpm/@antfu+utils@0.3.0/node_modules/@antfu/utils/dist/index.js
41
44
  var require_dist = __commonJS({
42
- "../../node_modules/.pnpm/@antfu+utils@0.2.4/node_modules/@antfu/utils/dist/index.js"(exports) {
45
+ "../../node_modules/.pnpm/@antfu+utils@0.3.0/node_modules/@antfu/utils/dist/index.js"(exports) {
43
46
  "use strict";
44
47
  Object.defineProperty(exports, "__esModule", { value: true });
45
48
  function clamp(n, min, max) {
@@ -60,11 +63,20 @@ var require_dist = __commonJS({
60
63
  function mergeArrayable(...args) {
61
64
  return args.flatMap((i) => toArray2(i));
62
65
  }
63
- function partition(array, filter) {
64
- const pass = [];
65
- const fail = [];
66
- array.forEach((e, idx, arr) => (filter(e, idx, arr) ? pass : fail).push(e));
67
- return [pass, fail];
66
+ function partition(array, ...filters) {
67
+ const result = new Array(filters.length + 1).fill(null).map(() => []);
68
+ array.forEach((e, idx, arr) => {
69
+ let i = 0;
70
+ for (const filter of filters) {
71
+ if (filter(e, idx, arr)) {
72
+ result[i].push(e);
73
+ return;
74
+ }
75
+ i += 1;
76
+ }
77
+ result[i].push(e);
78
+ });
79
+ return result;
68
80
  }
69
81
  function uniq3(array) {
70
82
  return Array.from(new Set(array));
@@ -118,7 +130,7 @@ var require_dist = __commonJS({
118
130
  if (!condition)
119
131
  throw new Error(message);
120
132
  };
121
- var toString2 = Object.prototype.toString;
133
+ var toString2 = (v) => Object.prototype.toString.call(v);
122
134
  var noop = () => {
123
135
  };
124
136
  function notNullish(v) {
@@ -149,6 +161,14 @@ var require_dist = __commonJS({
149
161
  return prefix + str;
150
162
  return str;
151
163
  }
164
+ function template(str, ...args) {
165
+ return str.replace(/{(\d+)}/g, (match, key) => {
166
+ const index = Number(key);
167
+ if (Number.isNaN(index))
168
+ return match;
169
+ return args[index];
170
+ });
171
+ }
152
172
  var timestamp = () => +Date.now();
153
173
  function batchInvoke(functions) {
154
174
  functions.forEach((fn) => fn && fn());
@@ -233,6 +253,29 @@ var require_dist = __commonJS({
233
253
  resolve();
234
254
  }, ms));
235
255
  }
256
+ function createPromiseLock() {
257
+ const locks = [];
258
+ return {
259
+ async run(fn) {
260
+ const p = fn();
261
+ locks.push(p);
262
+ try {
263
+ return await p;
264
+ } finally {
265
+ remove(locks, p);
266
+ }
267
+ },
268
+ async wait() {
269
+ await Promise.allSettled(locks);
270
+ },
271
+ isWaiting() {
272
+ return Boolean(locks.length);
273
+ },
274
+ clear() {
275
+ locks.length = 0;
276
+ }
277
+ };
278
+ }
236
279
  function throttle(delay, noTrailing, callback, debounceMode) {
237
280
  var timeoutID;
238
281
  var cancelled = false;
@@ -289,6 +332,7 @@ var require_dist = __commonJS({
289
332
  exports.clamp = clamp;
290
333
  exports.clampArrayRange = clampArrayRange;
291
334
  exports.clearUndefined = clearUndefined;
335
+ exports.createPromiseLock = createPromiseLock;
292
336
  exports.createSingletonPromise = createSingletonPromise;
293
337
  exports.debounce = debounce;
294
338
  exports.deepMerge = deepMerge;
@@ -324,6 +368,7 @@ var require_dist = __commonJS({
324
368
  exports.sleep = sleep;
325
369
  exports.sum = sum;
326
370
  exports.tap = tap;
371
+ exports.template = template;
327
372
  exports.throttle = throttle;
328
373
  exports.timestamp = timestamp;
329
374
  exports.toArray = toArray2;
@@ -333,9 +378,12 @@ var require_dist = __commonJS({
333
378
  });
334
379
 
335
380
  // src/core.ts
336
- var import_utils3 = __toModule(require_dist());
381
+ var import_utils4 = __toModule(require_dist());
337
382
  import YAML from "js-yaml";
338
383
 
384
+ // src/config.ts
385
+ var import_utils2 = __toModule(require_dist());
386
+
339
387
  // src/utils.ts
340
388
  var import_utils = __toModule(require_dist());
341
389
  function parseRangeString(total, rangeStr) {
@@ -374,7 +422,7 @@ function resolveConfig(headmatter, themeMeta = {}) {
374
422
  theme: "default",
375
423
  title: "Slidev",
376
424
  titleTemplate: "%s - Slidev",
377
- remoteAssets: true,
425
+ remoteAssets: false,
378
426
  monaco: "dev",
379
427
  download: false,
380
428
  info: false,
@@ -386,10 +434,12 @@ function resolveConfig(headmatter, themeMeta = {}) {
386
434
  canvasWidth: 980,
387
435
  selectable: false,
388
436
  themeConfig: {},
389
- fonts: {}
437
+ fonts: {},
438
+ drawings: {}
390
439
  };
391
440
  const config = __spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, defaultConfig), themeMeta.defaults), headmatter.config), headmatter), {
392
- fonts: resolveFonts(__spreadValues(__spreadValues(__spreadValues({}, (_a = themeMeta.defaults) == null ? void 0 : _a.fonts), (_b = headmatter.config) == null ? void 0 : _b.fonts), headmatter == null ? void 0 : headmatter.fonts))
441
+ fonts: resolveFonts(__spreadValues(__spreadValues(__spreadValues({}, (_a = themeMeta.defaults) == null ? void 0 : _a.fonts), (_b = headmatter.config) == null ? void 0 : _b.fonts), headmatter == null ? void 0 : headmatter.fonts)),
442
+ drawings: resolveDarwings(headmatter.drawings)
393
443
  });
394
444
  if (config.colorSchema !== "dark" && config.colorSchema !== "light")
395
445
  config.colorSchema = "auto";
@@ -402,6 +452,86 @@ function resolveConfig(headmatter, themeMeta = {}) {
402
452
  console.warn(`[slidev] Syntax highlighter "${config.highlighter}" does not supported by the theme`);
403
453
  return config;
404
454
  }
455
+ function resolveFonts(fonts = {}) {
456
+ const {
457
+ fallbacks = true,
458
+ italic = false,
459
+ provider = "google"
460
+ } = fonts;
461
+ let sans = (0, import_utils2.toArray)(fonts.sans).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
462
+ let serif = (0, import_utils2.toArray)(fonts.serif).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
463
+ let mono = (0, import_utils2.toArray)(fonts.mono).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
464
+ const weights = (0, import_utils2.toArray)(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
465
+ const custom = (0, import_utils2.toArray)(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
466
+ const local = (0, import_utils2.toArray)(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
467
+ const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? (0, import_utils2.uniq)([...sans, ...serif, ...mono, ...custom]) : [];
468
+ webfonts.filter((i) => local.includes(i));
469
+ function toQuoted(font) {
470
+ if (/^(['"]).*\1$/.test(font))
471
+ return font;
472
+ return `"${font}"`;
473
+ }
474
+ if (fallbacks) {
475
+ sans = (0, import_utils2.uniq)([
476
+ ...sans.map(toQuoted),
477
+ "ui-sans-serif",
478
+ "system-ui",
479
+ "-apple-system",
480
+ "BlinkMacSystemFont",
481
+ '"Segoe UI"',
482
+ "Roboto",
483
+ '"Helvetica Neue"',
484
+ "Arial",
485
+ '"Noto Sans"',
486
+ "sans-serif",
487
+ '"Apple Color Emoji"',
488
+ '"Segoe UI Emoji"',
489
+ '"Segoe UI Symbol"',
490
+ '"Noto Color Emoji"'
491
+ ]);
492
+ serif = (0, import_utils2.uniq)([
493
+ ...serif.map(toQuoted),
494
+ "ui-serif",
495
+ "Georgia",
496
+ "Cambria",
497
+ '"Times New Roman"',
498
+ "Times",
499
+ "serif"
500
+ ]);
501
+ mono = (0, import_utils2.uniq)([
502
+ ...mono.map(toQuoted),
503
+ "ui-monospace",
504
+ "SFMono-Regular",
505
+ "Menlo",
506
+ "Monaco",
507
+ "Consolas",
508
+ '"Liberation Mono"',
509
+ '"Courier New"',
510
+ "monospace"
511
+ ]);
512
+ }
513
+ return {
514
+ sans,
515
+ serif,
516
+ mono,
517
+ webfonts,
518
+ provider,
519
+ local,
520
+ italic,
521
+ weights
522
+ };
523
+ }
524
+ function resolveDarwings(options = {}) {
525
+ const {
526
+ enabled = true,
527
+ persist = false
528
+ } = options;
529
+ const persistPath = typeof persist === "string" ? persist : persist ? ".slidev/drawings" : false;
530
+ return {
531
+ enabled,
532
+ persist: persistPath
533
+ };
534
+ }
405
535
 
406
536
  // src/core.ts
407
537
  function stringify(data) {
@@ -448,7 +578,7 @@ function matter(code) {
448
578
  let data = {};
449
579
  const content = code.replace(/^---.*\r?\n([\s\S]*?)---/, (_, d) => {
450
580
  data = YAML.load(d);
451
- if (!(0, import_utils3.isObject)(data))
581
+ if (!(0, import_utils4.isObject)(data))
452
582
  data = {};
453
583
  return "";
454
584
  });
@@ -531,77 +661,8 @@ function parse(markdown, filepath, themeMeta) {
531
661
  themeMeta
532
662
  };
533
663
  }
534
- function resolveFonts(fonts = {}) {
535
- const {
536
- fallbacks = true,
537
- italic = false,
538
- provider = "google"
539
- } = fonts;
540
- let sans = (0, import_utils3.toArray)(fonts.sans).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
541
- let serif = (0, import_utils3.toArray)(fonts.serif).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
542
- let mono = (0, import_utils3.toArray)(fonts.mono).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
543
- const weights = (0, import_utils3.toArray)(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
544
- const custom = (0, import_utils3.toArray)(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
545
- const local = (0, import_utils3.toArray)(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
546
- const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? (0, import_utils3.uniq)([...sans, ...serif, ...mono, ...custom]) : [];
547
- webfonts.filter((i) => local.includes(i));
548
- function toQuoted(font) {
549
- if (/^(['"]).*\1$/.test(font))
550
- return font;
551
- return `"${font}"`;
552
- }
553
- if (fallbacks) {
554
- sans = (0, import_utils3.uniq)([
555
- ...sans.map(toQuoted),
556
- "ui-sans-serif",
557
- "system-ui",
558
- "-apple-system",
559
- "BlinkMacSystemFont",
560
- '"Segoe UI"',
561
- "Roboto",
562
- '"Helvetica Neue"',
563
- "Arial",
564
- '"Noto Sans"',
565
- "sans-serif",
566
- '"Apple Color Emoji"',
567
- '"Segoe UI Emoji"',
568
- '"Segoe UI Symbol"',
569
- '"Noto Color Emoji"'
570
- ]);
571
- serif = (0, import_utils3.uniq)([
572
- ...serif.map(toQuoted),
573
- "ui-serif",
574
- "Georgia",
575
- "Cambria",
576
- '"Times New Roman"',
577
- "Times",
578
- "serif"
579
- ]);
580
- mono = (0, import_utils3.uniq)([
581
- ...mono.map(toQuoted),
582
- "ui-monospace",
583
- "SFMono-Regular",
584
- "Menlo",
585
- "Monaco",
586
- "Consolas",
587
- '"Liberation Mono"',
588
- '"Courier New"',
589
- "monospace"
590
- ]);
591
- }
592
- return {
593
- sans,
594
- serif,
595
- mono,
596
- webfonts,
597
- provider,
598
- local,
599
- italic,
600
- weights
601
- };
602
- }
603
664
  function mergeFeatureFlags(a, b) {
604
- return (0, import_utils3.objectMap)(a, (k, v) => [k, v || b[k]]);
665
+ return (0, import_utils4.objectMap)(a, (k, v) => [k, v || b[k]]);
605
666
  }
606
667
  function scanMonacoModules(md) {
607
668
  const typeModules = new Set();
@@ -609,7 +670,7 @@ function scanMonacoModules(md) {
609
670
  options = options || "";
610
671
  lang = lang.trim();
611
672
  if (lang === "ts" || lang === "typescript") {
612
- Array.from(code.matchAll(/\s+from\s+(["'])([\/\w@-]+)\1/g)).map((i) => i[2]).filter(import_utils3.isTruthy).map((i) => typeModules.add(i));
673
+ Array.from(code.matchAll(/\s+from\s+(["'])([\/\w@-]+)\1/g)).map((i) => i[2]).filter(import_utils4.isTruthy).map((i) => typeModules.add(i));
613
674
  }
614
675
  return "";
615
676
  });
@@ -621,6 +682,7 @@ export {
621
682
  parseRangeString,
622
683
  parseAspectRatio,
623
684
  resolveConfig,
685
+ resolveFonts,
624
686
  stringify,
625
687
  filterDisabled,
626
688
  stringifySlide,
@@ -629,7 +691,6 @@ export {
629
691
  detectFeatures,
630
692
  parseSlide,
631
693
  parse,
632
- resolveFonts,
633
694
  mergeFeatureFlags,
634
695
  scanMonacoModules
635
696
  };
package/dist/core.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SlidevThemeMeta, SlidevConfig, SlidevMarkdown, SlideInfoBase, SlidevFeatureFlags, FontOptions, ResolvedFontOptions } from '@slidev/types';
1
+ import { SlidevThemeMeta, SlidevConfig, FontOptions, ResolvedFontOptions, SlidevMarkdown, SlideInfoBase, SlidevFeatureFlags } from '@slidev/types';
2
2
 
3
3
  /**
4
4
  * 1,3-5,8 => [1, 3, 4, 5, 8]
@@ -10,6 +10,7 @@ declare function parseRangeString(total: number, rangeStr?: string): number[];
10
10
  declare function parseAspectRatio(str: string | number): number;
11
11
 
12
12
  declare function resolveConfig(headmatter: any, themeMeta?: SlidevThemeMeta): SlidevConfig;
13
+ declare function resolveFonts(fonts?: FontOptions): ResolvedFontOptions;
13
14
 
14
15
  declare function stringify(data: SlidevMarkdown): string;
15
16
  declare function filterDisabled(data: SlidevMarkdown): SlidevMarkdown;
@@ -19,7 +20,6 @@ declare function prettify(data: SlidevMarkdown): SlidevMarkdown;
19
20
  declare function detectFeatures(code: string): SlidevFeatureFlags;
20
21
  declare function parseSlide(raw: string): SlideInfoBase;
21
22
  declare function parse(markdown: string, filepath?: string, themeMeta?: SlidevThemeMeta): SlidevMarkdown;
22
- declare function resolveFonts(fonts?: FontOptions): ResolvedFontOptions;
23
23
  declare function mergeFeatureFlags(a: SlidevFeatureFlags, b: SlidevFeatureFlags): SlidevFeatureFlags;
24
24
  declare function scanMonacoModules(md: string): string[];
25
25
 
package/dist/core.js CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
 
15
15
 
16
- var _chunkI7XP7O2Cjs = require('./chunk-I7XP7O2C.js');
16
+ var _chunk2N4XNXCXjs = require('./chunk-2N4XNXCX.js');
17
17
 
18
18
 
19
19
 
@@ -29,4 +29,4 @@ var _chunkI7XP7O2Cjs = require('./chunk-I7XP7O2C.js');
29
29
 
30
30
 
31
31
 
32
- exports.detectFeatures = _chunkI7XP7O2Cjs.detectFeatures; exports.filterDisabled = _chunkI7XP7O2Cjs.filterDisabled; exports.mergeFeatureFlags = _chunkI7XP7O2Cjs.mergeFeatureFlags; exports.parse = _chunkI7XP7O2Cjs.parse; exports.parseAspectRatio = _chunkI7XP7O2Cjs.parseAspectRatio; exports.parseRangeString = _chunkI7XP7O2Cjs.parseRangeString; exports.parseSlide = _chunkI7XP7O2Cjs.parseSlide; exports.prettify = _chunkI7XP7O2Cjs.prettify; exports.prettifySlide = _chunkI7XP7O2Cjs.prettifySlide; exports.resolveConfig = _chunkI7XP7O2Cjs.resolveConfig; exports.resolveFonts = _chunkI7XP7O2Cjs.resolveFonts; exports.scanMonacoModules = _chunkI7XP7O2Cjs.scanMonacoModules; exports.stringify = _chunkI7XP7O2Cjs.stringify; exports.stringifySlide = _chunkI7XP7O2Cjs.stringifySlide;
32
+ exports.detectFeatures = _chunk2N4XNXCXjs.detectFeatures; exports.filterDisabled = _chunk2N4XNXCXjs.filterDisabled; exports.mergeFeatureFlags = _chunk2N4XNXCXjs.mergeFeatureFlags; exports.parse = _chunk2N4XNXCXjs.parse; exports.parseAspectRatio = _chunk2N4XNXCXjs.parseAspectRatio; exports.parseRangeString = _chunk2N4XNXCXjs.parseRangeString; exports.parseSlide = _chunk2N4XNXCXjs.parseSlide; exports.prettify = _chunk2N4XNXCXjs.prettify; exports.prettifySlide = _chunk2N4XNXCXjs.prettifySlide; exports.resolveConfig = _chunk2N4XNXCXjs.resolveConfig; exports.resolveFonts = _chunk2N4XNXCXjs.resolveFonts; exports.scanMonacoModules = _chunk2N4XNXCXjs.scanMonacoModules; exports.stringify = _chunk2N4XNXCXjs.stringify; exports.stringifySlide = _chunk2N4XNXCXjs.stringifySlide;
package/dist/core.mjs CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  scanMonacoModules,
14
14
  stringify,
15
15
  stringifySlide
16
- } from "./chunk-WPUFEJRV.mjs";
16
+ } from "./chunk-CGPSJTRI.mjs";
17
17
  export {
18
18
  detectFeatures,
19
19
  filterDisabled,
package/dist/fs.js CHANGED
@@ -14,15 +14,17 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkI7XP7O2Cjs = require('./chunk-I7XP7O2C.js');
17
+
18
+ var _chunk2N4XNXCXjs = require('./chunk-2N4XNXCX.js');
18
19
 
19
20
  // src/fs.ts
21
+ _chunk2N4XNXCXjs.init_cjs_shims.call(void 0, );
20
22
  var _fs = require('fs');
21
23
  var _path = require('path');
22
24
  async function load(filepath, themeMeta, content) {
23
25
  const dir = _path.dirname.call(void 0, filepath);
24
26
  const markdown = content != null ? content : await _fs.promises.readFile(filepath, "utf-8");
25
- const data = _chunkI7XP7O2Cjs.parse.call(void 0, markdown, filepath, themeMeta);
27
+ const data = _chunk2N4XNXCXjs.parse.call(void 0, markdown, filepath, themeMeta);
26
28
  const entries = new Set([
27
29
  filepath
28
30
  ]);
@@ -31,15 +33,15 @@ async function load(filepath, themeMeta, content) {
31
33
  continue;
32
34
  const path = _path.resolve.call(void 0, dir, slide.frontmatter.src);
33
35
  const raw = await _fs.promises.readFile(path, "utf-8");
34
- const source = _chunkI7XP7O2Cjs.parseSlide.call(void 0, raw);
35
- const inline = _chunkI7XP7O2Cjs.__spreadValues.call(void 0, {}, slide);
36
- slide.source = _chunkI7XP7O2Cjs.__spreadValues.call(void 0, {
36
+ const source = _chunk2N4XNXCXjs.parseSlide.call(void 0, raw);
37
+ const inline = _chunk2N4XNXCXjs.__spreadValues.call(void 0, {}, slide);
38
+ slide.source = _chunk2N4XNXCXjs.__spreadValues.call(void 0, {
37
39
  filepath: path
38
40
  }, source);
39
41
  slide.inline = inline;
40
42
  Object.assign(slide, slide.source);
41
- slide.frontmatter = _chunkI7XP7O2Cjs.__spreadValues.call(void 0, _chunkI7XP7O2Cjs.__spreadValues.call(void 0, {}, slide.source.frontmatter), inline.frontmatter);
42
- data.features = _chunkI7XP7O2Cjs.mergeFeatureFlags.call(void 0, data.features, _chunkI7XP7O2Cjs.detectFeatures.call(void 0, raw));
43
+ slide.frontmatter = _chunk2N4XNXCXjs.__spreadValues.call(void 0, _chunk2N4XNXCXjs.__spreadValues.call(void 0, {}, slide.source.frontmatter), inline.frontmatter);
44
+ data.features = _chunk2N4XNXCXjs.mergeFeatureFlags.call(void 0, data.features, _chunk2N4XNXCXjs.detectFeatures.call(void 0, raw));
43
45
  entries.add(path);
44
46
  }
45
47
  data.entries = Array.from(entries);
@@ -47,10 +49,10 @@ async function load(filepath, themeMeta, content) {
47
49
  }
48
50
  async function save(data, filepath) {
49
51
  filepath = filepath || data.filepath;
50
- await _fs.promises.writeFile(filepath, _chunkI7XP7O2Cjs.stringify.call(void 0, data), "utf-8");
52
+ await _fs.promises.writeFile(filepath, _chunk2N4XNXCXjs.stringify.call(void 0, data), "utf-8");
51
53
  }
52
54
  async function saveExternalSlide(slide) {
53
- await _fs.promises.writeFile(slide.filepath, _chunkI7XP7O2Cjs.stringifySlide.call(void 0, slide), "utf-8");
55
+ await _fs.promises.writeFile(slide.filepath, _chunk2N4XNXCXjs.stringifySlide.call(void 0, slide), "utf-8");
54
56
  }
55
57
 
56
58
 
@@ -70,4 +72,4 @@ async function saveExternalSlide(slide) {
70
72
 
71
73
 
72
74
 
73
- exports.detectFeatures = _chunkI7XP7O2Cjs.detectFeatures; exports.filterDisabled = _chunkI7XP7O2Cjs.filterDisabled; exports.load = load; exports.mergeFeatureFlags = _chunkI7XP7O2Cjs.mergeFeatureFlags; exports.parse = _chunkI7XP7O2Cjs.parse; exports.parseAspectRatio = _chunkI7XP7O2Cjs.parseAspectRatio; exports.parseRangeString = _chunkI7XP7O2Cjs.parseRangeString; exports.parseSlide = _chunkI7XP7O2Cjs.parseSlide; exports.prettify = _chunkI7XP7O2Cjs.prettify; exports.prettifySlide = _chunkI7XP7O2Cjs.prettifySlide; exports.resolveConfig = _chunkI7XP7O2Cjs.resolveConfig; exports.resolveFonts = _chunkI7XP7O2Cjs.resolveFonts; exports.save = save; exports.saveExternalSlide = saveExternalSlide; exports.scanMonacoModules = _chunkI7XP7O2Cjs.scanMonacoModules; exports.stringify = _chunkI7XP7O2Cjs.stringify; exports.stringifySlide = _chunkI7XP7O2Cjs.stringifySlide;
75
+ exports.detectFeatures = _chunk2N4XNXCXjs.detectFeatures; exports.filterDisabled = _chunk2N4XNXCXjs.filterDisabled; exports.load = load; exports.mergeFeatureFlags = _chunk2N4XNXCXjs.mergeFeatureFlags; exports.parse = _chunk2N4XNXCXjs.parse; exports.parseAspectRatio = _chunk2N4XNXCXjs.parseAspectRatio; exports.parseRangeString = _chunk2N4XNXCXjs.parseRangeString; exports.parseSlide = _chunk2N4XNXCXjs.parseSlide; exports.prettify = _chunk2N4XNXCXjs.prettify; exports.prettifySlide = _chunk2N4XNXCXjs.prettifySlide; exports.resolveConfig = _chunk2N4XNXCXjs.resolveConfig; exports.resolveFonts = _chunk2N4XNXCXjs.resolveFonts; exports.save = save; exports.saveExternalSlide = saveExternalSlide; exports.scanMonacoModules = _chunk2N4XNXCXjs.scanMonacoModules; exports.stringify = _chunk2N4XNXCXjs.stringify; exports.stringifySlide = _chunk2N4XNXCXjs.stringifySlide;
package/dist/fs.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  scanMonacoModules,
15
15
  stringify,
16
16
  stringifySlide
17
- } from "./chunk-WPUFEJRV.mjs";
17
+ } from "./chunk-CGPSJTRI.mjs";
18
18
 
19
19
  // src/fs.ts
20
20
  import { promises as fs } from "fs";
package/dist/index.js CHANGED
@@ -13,9 +13,11 @@
13
13
 
14
14
 
15
15
 
16
- var _chunkI7XP7O2Cjs = require('./chunk-I7XP7O2C.js');
17
16
 
17
+ var _chunk2N4XNXCXjs = require('./chunk-2N4XNXCX.js');
18
18
 
19
+ // src/index.ts
20
+ _chunk2N4XNXCXjs.init_cjs_shims.call(void 0, );
19
21
 
20
22
 
21
23
 
@@ -29,4 +31,6 @@ var _chunkI7XP7O2Cjs = require('./chunk-I7XP7O2C.js');
29
31
 
30
32
 
31
33
 
32
- exports.detectFeatures = _chunkI7XP7O2Cjs.detectFeatures; exports.filterDisabled = _chunkI7XP7O2Cjs.filterDisabled; exports.mergeFeatureFlags = _chunkI7XP7O2Cjs.mergeFeatureFlags; exports.parse = _chunkI7XP7O2Cjs.parse; exports.parseAspectRatio = _chunkI7XP7O2Cjs.parseAspectRatio; exports.parseRangeString = _chunkI7XP7O2Cjs.parseRangeString; exports.parseSlide = _chunkI7XP7O2Cjs.parseSlide; exports.prettify = _chunkI7XP7O2Cjs.prettify; exports.prettifySlide = _chunkI7XP7O2Cjs.prettifySlide; exports.resolveConfig = _chunkI7XP7O2Cjs.resolveConfig; exports.resolveFonts = _chunkI7XP7O2Cjs.resolveFonts; exports.scanMonacoModules = _chunkI7XP7O2Cjs.scanMonacoModules; exports.stringify = _chunkI7XP7O2Cjs.stringify; exports.stringifySlide = _chunkI7XP7O2Cjs.stringifySlide;
34
+
35
+
36
+ exports.detectFeatures = _chunk2N4XNXCXjs.detectFeatures; exports.filterDisabled = _chunk2N4XNXCXjs.filterDisabled; exports.mergeFeatureFlags = _chunk2N4XNXCXjs.mergeFeatureFlags; exports.parse = _chunk2N4XNXCXjs.parse; exports.parseAspectRatio = _chunk2N4XNXCXjs.parseAspectRatio; exports.parseRangeString = _chunk2N4XNXCXjs.parseRangeString; exports.parseSlide = _chunk2N4XNXCXjs.parseSlide; exports.prettify = _chunk2N4XNXCXjs.prettify; exports.prettifySlide = _chunk2N4XNXCXjs.prettifySlide; exports.resolveConfig = _chunk2N4XNXCXjs.resolveConfig; exports.resolveFonts = _chunk2N4XNXCXjs.resolveFonts; exports.scanMonacoModules = _chunk2N4XNXCXjs.scanMonacoModules; exports.stringify = _chunk2N4XNXCXjs.stringify; exports.stringifySlide = _chunk2N4XNXCXjs.stringifySlide;
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  scanMonacoModules,
14
14
  stringify,
15
15
  stringifySlide
16
- } from "./chunk-WPUFEJRV.mjs";
16
+ } from "./chunk-CGPSJTRI.mjs";
17
17
  export {
18
18
  detectFeatures,
19
19
  filterDisabled,
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@slidev/parser",
3
- "version": "0.22.7",
4
- "engines": {
5
- "node": ">=14.0.0"
6
- },
3
+ "version": "0.24.0",
7
4
  "description": "Markdown parser for Slidev",
5
+ "homepage": "https://sli.dev",
6
+ "bugs": "https://github.com/slidevjs/slidev/issues",
8
7
  "license": "MIT",
9
8
  "repository": {
10
9
  "type": "git",
@@ -33,14 +32,15 @@
33
32
  "main": "dist/index.js",
34
33
  "module": "dist/index.mjs",
35
34
  "types": "dist/index.d.ts",
36
- "homepage": "https://sli.dev",
37
- "bugs": "https://github.com/slidevjs/slidev/issues",
38
35
  "dependencies": {
39
- "@slidev/types": "0.22.7",
36
+ "@slidev/types": "0.24.0",
40
37
  "js-yaml": "^4.1.0"
41
38
  },
39
+ "engines": {
40
+ "node": ">=14.0.0"
41
+ },
42
42
  "scripts": {
43
- "build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts --format cjs,esm --dts",
43
+ "build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts --format cjs,esm --dts --splitting",
44
44
  "dev": "nr build --watch"
45
45
  }
46
46
  }