vitepress 1.0.2 → 1.1.1

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 (29) hide show
  1. package/dist/client/app/data.js +13 -3
  2. package/dist/client/app/router.js +16 -13
  3. package/dist/client/index.d.ts +4 -0
  4. package/dist/client/theme-default/components/VPLocalNavOutlineDropdown.vue +1 -1
  5. package/dist/client/theme-default/composables/langs.js +2 -3
  6. package/dist/client/theme-default/composables/sidebar.js +2 -3
  7. package/dist/client/theme-default/fonts/inter-italic-cyrillic-ext.woff2 +0 -0
  8. package/dist/client/theme-default/fonts/inter-italic-cyrillic.woff2 +0 -0
  9. package/dist/client/theme-default/fonts/inter-italic-greek-ext.woff2 +0 -0
  10. package/dist/client/theme-default/fonts/inter-italic-greek.woff2 +0 -0
  11. package/dist/client/theme-default/fonts/inter-italic-latin-ext.woff2 +0 -0
  12. package/dist/client/theme-default/fonts/inter-italic-latin.woff2 +0 -0
  13. package/dist/client/theme-default/fonts/inter-italic-vietnamese.woff2 +0 -0
  14. package/dist/client/theme-default/fonts/inter-roman-cyrillic-ext.woff2 +0 -0
  15. package/dist/client/theme-default/fonts/inter-roman-cyrillic.woff2 +0 -0
  16. package/dist/client/theme-default/fonts/inter-roman-greek-ext.woff2 +0 -0
  17. package/dist/client/theme-default/fonts/inter-roman-greek.woff2 +0 -0
  18. package/dist/client/theme-default/fonts/inter-roman-latin-ext.woff2 +0 -0
  19. package/dist/client/theme-default/fonts/inter-roman-latin.woff2 +0 -0
  20. package/dist/client/theme-default/fonts/inter-roman-vietnamese.woff2 +0 -0
  21. package/dist/client/theme-default/styles/fonts.css +64 -72
  22. package/dist/client/theme-default/styles/vars.css +7 -6
  23. package/dist/node/cli.js +1 -1
  24. package/dist/node/index.d.ts +311 -317
  25. package/dist/node/index.js +2 -2
  26. package/dist/node/{serve-CEVH7KNu.js → serve-BOsNJwDZ.js} +194 -91
  27. package/package.json +63 -63
  28. package/types/default-theme.d.ts +2 -2
  29. package/dist/client/theme-default/composables/hash.js +0 -9
@@ -1,7 +1,7 @@
1
1
  import { normalizePath } from 'vite';
2
2
  export { loadEnv } from 'vite';
3
- import { g as glob, c as createMarkdownRenderer, f as fs, m as matter, a as getDefaultExportFromCjs } from './serve-CEVH7KNu.js';
4
- export { S as ScaffoldThemeType, b as build, p as createServer, e as defineConfig, h as defineConfigWithTheme, d as defineLoader, n as init, j as mergeConfig, r as resolveConfig, l as resolvePages, k as resolveSiteData, i as resolveUserConfig, s as scaffold, o as serve } from './serve-CEVH7KNu.js';
3
+ import { g as glob, c as createMarkdownRenderer, f as fs, m as matter, a as getDefaultExportFromCjs } from './serve-BOsNJwDZ.js';
4
+ export { S as ScaffoldThemeType, b as build, p as createServer, e as defineConfig, h as defineConfigWithTheme, d as defineLoader, n as init, j as mergeConfig, r as resolveConfig, l as resolvePages, k as resolveSiteData, i as resolveUserConfig, s as scaffold, o as serve } from './serve-BOsNJwDZ.js';
5
5
  import path from 'path';
6
6
  import 'crypto';
7
7
  import 'module';
@@ -3479,6 +3479,9 @@ class AST {
3479
3479
  _glob: glob,
3480
3480
  });
3481
3481
  }
3482
+ get options() {
3483
+ return this.#options;
3484
+ }
3482
3485
  // returns the string match, the regexp source, whether there's magic
3483
3486
  // in the regexp (so a regular expression is required) and whether or
3484
3487
  // not the uflag is needed for the regular expression (for posix classes)
@@ -4074,6 +4077,7 @@ class Minimatch {
4074
4077
  globParts = this.levelOneOptimize(globParts);
4075
4078
  }
4076
4079
  else {
4080
+ // just collapse multiple ** portions into one
4077
4081
  globParts = this.adjascentGlobstarOptimize(globParts);
4078
4082
  }
4079
4083
  return globParts;
@@ -4563,7 +4567,11 @@ class Minimatch {
4563
4567
  fastTest = dotStarTest;
4564
4568
  }
4565
4569
  const re = AST.fromGlob(pattern, this.options).toMMPattern();
4566
- return fastTest ? Object.assign(re, { test: fastTest }) : re;
4570
+ if (fastTest && typeof re === 'object') {
4571
+ // Avoids overriding in frozen environments
4572
+ Reflect.defineProperty(re, 'test', { value: fastTest });
4573
+ }
4574
+ return re;
4567
4575
  }
4568
4576
  makeRe() {
4569
4577
  if (this.regexp || this.regexp === false)
@@ -7229,21 +7237,21 @@ const IFMT = 0b1111;
7229
7237
  // mask to unset low 4 bits
7230
7238
  const IFMT_UNKNOWN = ~IFMT;
7231
7239
  // set after successfully calling readdir() and getting entries.
7232
- const READDIR_CALLED = 16;
7240
+ const READDIR_CALLED = 0b0000_0001_0000;
7233
7241
  // set after a successful lstat()
7234
- const LSTAT_CALLED = 32;
7242
+ const LSTAT_CALLED = 0b0000_0010_0000;
7235
7243
  // set if an entry (or one of its parents) is definitely not a dir
7236
- const ENOTDIR = 64;
7244
+ const ENOTDIR = 0b0000_0100_0000;
7237
7245
  // set if an entry (or one of its parents) does not exist
7238
7246
  // (can also be set on lstat errors like EACCES or ENAMETOOLONG)
7239
- const ENOENT = 128;
7247
+ const ENOENT = 0b0000_1000_0000;
7240
7248
  // cannot have child entries -- also verify &IFMT is either IFDIR or IFLNK
7241
7249
  // set if we fail to readlink
7242
- const ENOREADLINK = 256;
7250
+ const ENOREADLINK = 0b0001_0000_0000;
7243
7251
  // set if we know realpath() will fail
7244
- const ENOREALPATH = 512;
7252
+ const ENOREALPATH = 0b0010_0000_0000;
7245
7253
  const ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
7246
- const TYPEMASK = 1023;
7254
+ const TYPEMASK = 0b0011_1111_1111;
7247
7255
  const entToType = (s) => s.isFile()
7248
7256
  ? IFREG
7249
7257
  : s.isDirectory()
@@ -7855,7 +7863,7 @@ class PathBase {
7855
7863
  /* c8 ignore stop */
7856
7864
  try {
7857
7865
  const read = await this.#fs.promises.readlink(this.fullpath());
7858
- const linkTarget = this.parent.resolve(read);
7866
+ const linkTarget = (await this.parent.realpath())?.resolve(read);
7859
7867
  if (linkTarget) {
7860
7868
  return (this.#linkTarget = linkTarget);
7861
7869
  }
@@ -7884,7 +7892,7 @@ class PathBase {
7884
7892
  /* c8 ignore stop */
7885
7893
  try {
7886
7894
  const read = this.#fs.readlinkSync(this.fullpath());
7887
- const linkTarget = this.parent.resolve(read);
7895
+ const linkTarget = (this.parent.realpathSync())?.resolve(read);
7888
7896
  if (linkTarget) {
7889
7897
  return (this.#linkTarget = linkTarget);
7890
7898
  }
@@ -7899,7 +7907,9 @@ class PathBase {
7899
7907
  this.#type |= READDIR_CALLED;
7900
7908
  // mark all remaining provisional children as ENOENT
7901
7909
  for (let p = children.provisional; p < children.length; p++) {
7902
- children[p].#markENOENT();
7910
+ const c = children[p];
7911
+ if (c)
7912
+ c.#markENOENT();
7903
7913
  }
7904
7914
  }
7905
7915
  #markENOENT() {
@@ -9429,6 +9439,12 @@ class Ignore {
9429
9439
  if (!parsed || !globParts) {
9430
9440
  throw new Error('invalid pattern object');
9431
9441
  }
9442
+ // strip off leading ./ portions
9443
+ // https://github.com/isaacs/node-glob/issues/570
9444
+ while (parsed[0] === '.' && globParts[0] === '.') {
9445
+ parsed.shift();
9446
+ globParts.shift();
9447
+ }
9432
9448
  /* c8 ignore stop */
9433
9449
  const p = new Pattern(parsed, globParts, 0, platform);
9434
9450
  const m = new Minimatch(p.globString(), mmopts);
@@ -9863,13 +9879,26 @@ class GlobUtil {
9863
9879
  e = rpc;
9864
9880
  }
9865
9881
  const needStat = e.isUnknown() || this.opts.stat;
9866
- return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
9882
+ const s = needStat ? await e.lstat() : e;
9883
+ if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {
9884
+ const target = await s.realpath();
9885
+ /* c8 ignore start */
9886
+ if (target && (target.isUnknown() || this.opts.stat)) {
9887
+ await target.lstat();
9888
+ }
9889
+ /* c8 ignore stop */
9890
+ }
9891
+ return this.matchCheckTest(s, ifDir);
9867
9892
  }
9868
9893
  matchCheckTest(e, ifDir) {
9869
9894
  return e &&
9870
9895
  (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&
9871
9896
  (!ifDir || e.canReaddir()) &&
9872
9897
  (!this.opts.nodir || !e.isDirectory()) &&
9898
+ (!this.opts.nodir ||
9899
+ !this.opts.follow ||
9900
+ !e.isSymbolicLink() ||
9901
+ !e.realpathCached()?.isDirectory()) &&
9873
9902
  !this.#ignored(e)
9874
9903
  ? e
9875
9904
  : undefined;
@@ -9885,7 +9914,14 @@ class GlobUtil {
9885
9914
  e = rpc;
9886
9915
  }
9887
9916
  const needStat = e.isUnknown() || this.opts.stat;
9888
- return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
9917
+ const s = needStat ? e.lstatSync() : e;
9918
+ if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) {
9919
+ const target = s.realpathSync();
9920
+ if (target && (target?.isUnknown() || this.opts.stat)) {
9921
+ target.lstatSync();
9922
+ }
9923
+ }
9924
+ return this.matchCheckTest(s, ifDir);
9889
9925
  }
9890
9926
  matchFinish(e, absolute) {
9891
9927
  if (this.#ignored(e))
@@ -20135,10 +20171,10 @@ const resolveHeadersFromTokens = (tokens, {
20135
20171
  };
20136
20172
  for (let i = 0; i < tokens.length; i += 1) {
20137
20173
  const token = tokens[i];
20138
- if (token?.type !== "heading_open") {
20174
+ if (token.type !== "heading_open") {
20139
20175
  continue;
20140
20176
  }
20141
- if (token?.level !== 0 && !shouldAllowNested) {
20177
+ if (token.level !== 0 && !shouldAllowNested) {
20142
20178
  continue;
20143
20179
  }
20144
20180
  const headerLevel = Number.parseInt(token.tag.slice(1), 10);
@@ -20146,6 +20182,7 @@ const resolveHeadersFromTokens = (tokens, {
20146
20182
  continue;
20147
20183
  }
20148
20184
  const nextToken = tokens[i + 1];
20185
+ /* istanbul ignore if -- @preserve */
20149
20186
  if (!nextToken) {
20150
20187
  continue;
20151
20188
  }
@@ -20170,74 +20207,6 @@ const rSpecial = /[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g;
20170
20207
  const rCombining = /[\u0300-\u036F]/g;
20171
20208
  const slugify = (str) => str.normalize("NFKD").replace(rCombining, "").replace(rControl, "").replace(rSpecial, "-").replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "").replace(/^(\d)/, "_$1").toLowerCase();
20172
20209
 
20173
- // List of valid html blocks names, according to commonmark spec
20174
- // https://spec.commonmark.org/0.30/#html-blocks
20175
-
20176
- var block_names = [
20177
- 'address',
20178
- 'article',
20179
- 'aside',
20180
- 'base',
20181
- 'basefont',
20182
- 'blockquote',
20183
- 'body',
20184
- 'caption',
20185
- 'center',
20186
- 'col',
20187
- 'colgroup',
20188
- 'dd',
20189
- 'details',
20190
- 'dialog',
20191
- 'dir',
20192
- 'div',
20193
- 'dl',
20194
- 'dt',
20195
- 'fieldset',
20196
- 'figcaption',
20197
- 'figure',
20198
- 'footer',
20199
- 'form',
20200
- 'frame',
20201
- 'frameset',
20202
- 'h1',
20203
- 'h2',
20204
- 'h3',
20205
- 'h4',
20206
- 'h5',
20207
- 'h6',
20208
- 'head',
20209
- 'header',
20210
- 'hr',
20211
- 'html',
20212
- 'iframe',
20213
- 'legend',
20214
- 'li',
20215
- 'link',
20216
- 'main',
20217
- 'menu',
20218
- 'menuitem',
20219
- 'nav',
20220
- 'noframes',
20221
- 'ol',
20222
- 'optgroup',
20223
- 'option',
20224
- 'p',
20225
- 'param',
20226
- 'search',
20227
- 'section',
20228
- 'summary',
20229
- 'table',
20230
- 'tbody',
20231
- 'td',
20232
- 'tfoot',
20233
- 'th',
20234
- 'thead',
20235
- 'title',
20236
- 'tr',
20237
- 'track',
20238
- 'ul'
20239
- ];
20240
-
20241
20210
  const attr_name$1 = "[a-zA-Z_:@][a-zA-Z0-9:._-]*";
20242
20211
  const unquoted$1 = "[^\"'=<>`\\x00-\\x20]+";
20243
20212
  const single_quoted$1 = "'[^']*'";
@@ -20263,7 +20232,70 @@ const HTML_OPEN_AND_CLOSE_TAG_IN_THE_SAME_LINE_RE = new RegExp(
20263
20232
  "^<([A-Za-z][A-Za-z0-9\\-]*)" + attribute$1 + "*\\s*>.*<\\/\\1\\s*>"
20264
20233
  );
20265
20234
 
20266
- const TAGS_BLOCK = block_names;
20235
+ const TAGS_BLOCK = [
20236
+ "address",
20237
+ "article",
20238
+ "aside",
20239
+ "base",
20240
+ "basefont",
20241
+ "blockquote",
20242
+ "body",
20243
+ "caption",
20244
+ "center",
20245
+ "col",
20246
+ "colgroup",
20247
+ "dd",
20248
+ "details",
20249
+ "dialog",
20250
+ "dir",
20251
+ "div",
20252
+ "dl",
20253
+ "dt",
20254
+ "fieldset",
20255
+ "figcaption",
20256
+ "figure",
20257
+ "footer",
20258
+ "form",
20259
+ "frame",
20260
+ "frameset",
20261
+ "h1",
20262
+ "h2",
20263
+ "h3",
20264
+ "h4",
20265
+ "h5",
20266
+ "h6",
20267
+ "head",
20268
+ "header",
20269
+ "hr",
20270
+ "html",
20271
+ "iframe",
20272
+ "legend",
20273
+ "li",
20274
+ "link",
20275
+ "main",
20276
+ "menu",
20277
+ "menuitem",
20278
+ "nav",
20279
+ "noframes",
20280
+ "ol",
20281
+ "optgroup",
20282
+ "option",
20283
+ "p",
20284
+ "param",
20285
+ "search",
20286
+ "section",
20287
+ "summary",
20288
+ "table",
20289
+ "tbody",
20290
+ "td",
20291
+ "tfoot",
20292
+ "th",
20293
+ "thead",
20294
+ "title",
20295
+ "tr",
20296
+ "track",
20297
+ "ul"
20298
+ ];
20267
20299
  const TAGS_INLINE = [
20268
20300
  "a",
20269
20301
  "abbr",
@@ -25294,6 +25326,7 @@ const sfcPlugin = (md, { customBlocks = [] } = {}) => {
25294
25326
  };
25295
25327
  const htmlBlockRule = md.renderer.rules.html_block;
25296
25328
  md.renderer.rules.html_block = (tokens, idx, options, env, self) => {
25329
+ /* istanbul ignore if -- @preserve */
25297
25330
  if (!env.sfcBlocks) {
25298
25331
  return htmlBlockRule(tokens, idx, options, env, self);
25299
25332
  }
@@ -29819,6 +29852,74 @@ function reference (state, startLine, _endLine, silent) {
29819
29852
  return true
29820
29853
  }
29821
29854
 
29855
+ // List of valid html blocks names, according to commonmark spec
29856
+ // https://spec.commonmark.org/0.30/#html-blocks
29857
+
29858
+ var block_names = [
29859
+ 'address',
29860
+ 'article',
29861
+ 'aside',
29862
+ 'base',
29863
+ 'basefont',
29864
+ 'blockquote',
29865
+ 'body',
29866
+ 'caption',
29867
+ 'center',
29868
+ 'col',
29869
+ 'colgroup',
29870
+ 'dd',
29871
+ 'details',
29872
+ 'dialog',
29873
+ 'dir',
29874
+ 'div',
29875
+ 'dl',
29876
+ 'dt',
29877
+ 'fieldset',
29878
+ 'figcaption',
29879
+ 'figure',
29880
+ 'footer',
29881
+ 'form',
29882
+ 'frame',
29883
+ 'frameset',
29884
+ 'h1',
29885
+ 'h2',
29886
+ 'h3',
29887
+ 'h4',
29888
+ 'h5',
29889
+ 'h6',
29890
+ 'head',
29891
+ 'header',
29892
+ 'hr',
29893
+ 'html',
29894
+ 'iframe',
29895
+ 'legend',
29896
+ 'li',
29897
+ 'link',
29898
+ 'main',
29899
+ 'menu',
29900
+ 'menuitem',
29901
+ 'nav',
29902
+ 'noframes',
29903
+ 'ol',
29904
+ 'optgroup',
29905
+ 'option',
29906
+ 'p',
29907
+ 'param',
29908
+ 'search',
29909
+ 'section',
29910
+ 'summary',
29911
+ 'table',
29912
+ 'tbody',
29913
+ 'td',
29914
+ 'tfoot',
29915
+ 'th',
29916
+ 'thead',
29917
+ 'title',
29918
+ 'tr',
29919
+ 'track',
29920
+ 'ul'
29921
+ ];
29922
+
29822
29923
  // Regexps to match html elements
29823
29924
 
29824
29925
  const attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';
@@ -37392,6 +37493,8 @@ const createMarkdownRenderer = async (srcDir, options = {}, base = "/", logger =
37392
37493
  ...options
37393
37494
  });
37394
37495
  md.linkify.set({ fuzzyLink: false });
37496
+ md.disable("entity");
37497
+ md.renderer.rules.text = (tokens, idx) => tokens[idx].content;
37395
37498
  if (options.preConfig) {
37396
37499
  options.preConfig(md);
37397
37500
  }
@@ -42420,6 +42523,7 @@ async function createVitePressPlugin(siteConfig, ssr = false, pageToHashMap, cli
42420
42523
  try {
42421
42524
  await resolveUserConfig(siteConfig.root, "serve", "development");
42422
42525
  } catch (err) {
42526
+ siteConfig.logger.error(err);
42423
42527
  return;
42424
42528
  }
42425
42529
  clearCache();
@@ -46410,10 +46514,12 @@ async function generateSitemap(siteConfig) {
46410
46514
  }
46411
46515
 
46412
46516
  /**
46413
- * @vue/shared v3.4.21
46517
+ * @vue/shared v3.4.22
46414
46518
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
46415
46519
  * @license MIT
46416
46520
  **/
46521
+ /*! #__NO_SIDE_EFFECTS__ */
46522
+ // @__NO_SIDE_EFFECTS__
46417
46523
  function makeMap(str, expectsLowerCase) {
46418
46524
  const set = new Set(str.split(","));
46419
46525
  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@@ -46506,7 +46612,7 @@ function escapeHtml(string) {
46506
46612
 
46507
46613
  var escape$1 = /*@__PURE__*/getDefaultExportFromCjs(escapeHtml_1);
46508
46614
 
46509
- var version = "1.0.2";
46615
+ var version = "1.1.1";
46510
46616
 
46511
46617
  async function renderPage(render, config, page, result, appChunk, cssChunk, assets, pageToHashMap, metadataScript, additionalHeadTags) {
46512
46618
  const routePath = `/${page.replace(/\.md$/, "")}`;
@@ -48999,9 +49105,6 @@ var ScaffoldThemeType = /* @__PURE__ */ ((ScaffoldThemeType2) => {
48999
49105
  })(ScaffoldThemeType || {});
49000
49106
  const getPackageManger = () => {
49001
49107
  const name = process.env?.npm_config_user_agent || "npm";
49002
- if (name === "npm") {
49003
- return "npm";
49004
- }
49005
49108
  return name.split("/")[0];
49006
49109
  };
49007
49110
  async function init() {
@@ -49143,9 +49246,9 @@ Tips:`, ...tips].join("\n- ")) : ``;
49143
49246
  `${getPackageManger()} run docs:dev`
49144
49247
  )} and start writing.${tip}`;
49145
49248
  } else {
49146
- const execCommand = getPackageManger() === "bun" ? "bunx" : "npx";
49249
+ const pm = getPackageManger();
49147
49250
  return `You're all set! Now run ${picocolorsExports.cyan(
49148
- `${execCommand} vitepress dev${dir}`
49251
+ `${pm === "npm" ? "npx" : pm} vitepress dev${dir}`
49149
49252
  )} and start writing.${tip}`;
49150
49253
  }
49151
49254
  }
package/package.json CHANGED
@@ -1,11 +1,23 @@
1
1
  {
2
2
  "name": "vitepress",
3
- "version": "1.0.2",
3
+ "version": "1.1.1",
4
4
  "description": "Vite & Vue powered static site generator",
5
+ "keywords": [
6
+ "vite",
7
+ "vue",
8
+ "vitepress"
9
+ ],
10
+ "homepage": "https://github.com/vuejs/vitepress/tree/main/#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/vuejs/vitepress/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/vuejs/vitepress.git"
17
+ },
18
+ "license": "MIT",
19
+ "author": "Evan You",
5
20
  "type": "module",
6
- "packageManager": "pnpm@8.15.5",
7
- "main": "dist/node/index.js",
8
- "types": "types/index.d.ts",
9
21
  "exports": {
10
22
  ".": {
11
23
  "types": "./types/index.d.ts",
@@ -29,6 +41,8 @@
29
41
  "default": "./lib/vue-demi.mjs"
30
42
  }
31
43
  },
44
+ "main": "dist/node/index.js",
45
+ "types": "types/index.d.ts",
32
46
  "bin": {
33
47
  "vitepress": "bin/vitepress.js"
34
48
  },
@@ -42,59 +56,39 @@
42
56
  "theme-without-fonts.d.ts",
43
57
  "lib"
44
58
  ],
45
- "repository": {
46
- "type": "git",
47
- "url": "git+https://github.com/vuejs/vitepress.git"
59
+ "simple-git-hooks": {
60
+ "pre-commit": "pnpm lint-staged"
48
61
  },
49
- "keywords": [
50
- "vite",
51
- "vue",
52
- "vitepress"
53
- ],
54
- "author": "Evan You",
55
- "license": "MIT",
56
- "homepage": "https://github.com/vuejs/vitepress/tree/main/#readme",
57
- "bugs": {
58
- "url": "https://github.com/vuejs/vitepress/issues"
62
+ "lint-staged": {
63
+ "*": "prettier --write --ignore-unknown",
64
+ "package.json": "sort-package-json"
59
65
  },
60
66
  "dependencies": {
61
67
  "@docsearch/css": "^3.6.0",
62
68
  "@docsearch/js": "^3.6.0",
63
- "@shikijs/core": "^1.2.0",
64
- "@shikijs/transformers": "^1.2.0",
65
- "@types/markdown-it": "^13.0.7",
69
+ "@shikijs/core": "^1.3.0",
70
+ "@shikijs/transformers": "^1.3.0",
71
+ "@types/markdown-it": "^14.0.1",
66
72
  "@vitejs/plugin-vue": "^5.0.4",
67
- "@vue/devtools-api": "^7.0.16",
73
+ "@vue/devtools-api": "^7.0.25",
68
74
  "@vueuse/core": "^10.9.0",
69
75
  "@vueuse/integrations": "^10.9.0",
70
76
  "focus-trap": "^7.5.4",
71
77
  "mark.js": "8.11.1",
72
78
  "minisearch": "^6.3.0",
73
- "shiki": "^1.2.0",
74
- "vite": "^5.2.2",
75
- "vue": "^3.4.21"
76
- },
77
- "peerDependencies": {
78
- "markdown-it-mathjax3": "^4",
79
- "postcss": "^8"
80
- },
81
- "peerDependenciesMeta": {
82
- "markdown-it-mathjax3": {
83
- "optional": true
84
- },
85
- "postcss": {
86
- "optional": true
87
- }
79
+ "shiki": "^1.3.0",
80
+ "vite": "^5.2.8",
81
+ "vue": "^3.4.22"
88
82
  },
89
83
  "devDependencies": {
90
84
  "@clack/prompts": "^0.7.0",
91
- "@mdit-vue/plugin-component": "^2.0.0",
92
- "@mdit-vue/plugin-frontmatter": "^2.0.0",
93
- "@mdit-vue/plugin-headers": "^2.0.0",
94
- "@mdit-vue/plugin-sfc": "^2.0.0",
95
- "@mdit-vue/plugin-title": "^2.0.0",
96
- "@mdit-vue/plugin-toc": "^2.0.0",
97
- "@mdit-vue/shared": "^2.0.0",
85
+ "@mdit-vue/plugin-component": "^2.1.2",
86
+ "@mdit-vue/plugin-frontmatter": "^2.1.2",
87
+ "@mdit-vue/plugin-headers": "^2.1.2",
88
+ "@mdit-vue/plugin-sfc": "^2.1.2",
89
+ "@mdit-vue/plugin-title": "^2.1.2",
90
+ "@mdit-vue/plugin-toc": "^2.1.2",
91
+ "@mdit-vue/shared": "^2.1.2",
98
92
  "@polka/compression": "1.0.0-next.25",
99
93
  "@rollup/plugin-alias": "^5.1.0",
100
94
  "@rollup/plugin-commonjs": "^25.0.7",
@@ -108,14 +102,14 @@
108
102
  "@types/lodash.template": "^4.5.3",
109
103
  "@types/mark.js": "^8.11.12",
110
104
  "@types/markdown-it-attrs": "^4.1.3",
111
- "@types/markdown-it-container": "^2.0.9",
112
- "@types/markdown-it-emoji": "^2.0.4",
113
- "@types/micromatch": "^4.0.6",
105
+ "@types/markdown-it-container": "^2.0.10",
106
+ "@types/markdown-it-emoji": "^2.0.5",
107
+ "@types/micromatch": "^4.0.7",
114
108
  "@types/minimist": "^1.2.5",
115
- "@types/node": "^20.11.30",
109
+ "@types/node": "^20.12.7",
116
110
  "@types/postcss-prefix-selector": "^1.16.3",
117
111
  "@types/prompts": "^2.4.9",
118
- "@vue/shared": "^3.4.21",
112
+ "@vue/shared": "^3.4.22",
119
113
  "chokidar": "^3.6.0",
120
114
  "conventional-changelog-cli": "^4.1.0",
121
115
  "cross-spawn": "^7.0.3",
@@ -138,41 +132,47 @@
138
132
  "markdown-it-mathjax3": "^4.3.2",
139
133
  "micromatch": "^4.0.5",
140
134
  "minimist": "^1.2.8",
141
- "nanoid": "^5.0.6",
135
+ "nanoid": "^5.0.7",
142
136
  "npm-run-all": "^4.1.5",
143
137
  "ora": "^8.0.1",
144
- "p-map": "^7.0.1",
145
- "path-to-regexp": "^6.2.1",
138
+ "p-map": "^7.0.2",
139
+ "path-to-regexp": "^6.2.2",
146
140
  "picocolors": "^1.0.0",
147
141
  "pkg-dir": "^8.0.0",
148
- "playwright-chromium": "^1.42.1",
142
+ "playwright-chromium": "^1.43.1",
149
143
  "polka": "1.0.0-next.25",
150
144
  "postcss-prefix-selector": "^1.16.0",
151
145
  "prettier": "^3.2.5",
152
146
  "prompts": "^2.4.2",
153
147
  "punycode": "^2.3.1",
154
148
  "rimraf": "^5.0.5",
155
- "rollup": "^4.13.0",
149
+ "rollup": "^4.14.3",
156
150
  "rollup-plugin-dts": "^6.1.0",
157
151
  "rollup-plugin-esbuild": "^6.1.1",
158
152
  "semver": "^7.6.0",
159
- "simple-git-hooks": "^2.11.0",
153
+ "simple-git-hooks": "^2.11.1",
160
154
  "sirv": "^2.0.4",
161
155
  "sitemap": "^7.1.1",
156
+ "sort-package-json": "^2.10.0",
162
157
  "supports-color": "^9.4.0",
163
- "typescript": "^5.4.3",
164
- "vitest": "^1.4.0",
165
- "vue-tsc": "^2.0.7",
158
+ "typescript": "^5.4.5",
159
+ "vitest": "^1.5.0",
160
+ "vue-tsc": "^2.0.13",
166
161
  "wait-on": "^7.2.0"
167
162
  },
168
- "simple-git-hooks": {
169
- "pre-commit": "pnpm lint-staged"
163
+ "peerDependencies": {
164
+ "markdown-it-mathjax3": "^4",
165
+ "postcss": "^8"
170
166
  },
171
- "lint-staged": {
172
- "*": [
173
- "prettier --write --ignore-unknown"
174
- ]
167
+ "peerDependenciesMeta": {
168
+ "markdown-it-mathjax3": {
169
+ "optional": true
170
+ },
171
+ "postcss": {
172
+ "optional": true
173
+ }
175
174
  },
175
+ "packageManager": "pnpm@8.15.7",
176
176
  "scripts": {
177
177
  "dev": "rimraf dist && run-s dev:shared dev:start",
178
178
  "dev:start": "run-p dev:client dev:node dev:watch",
@@ -1,6 +1,6 @@
1
1
  import type MarkdownIt from 'markdown-it'
2
2
  import type { Options as MiniSearchOptions } from 'minisearch'
3
- import type { ComputedRef, Ref } from 'vue'
3
+ import type { ComputedRef, Ref, ShallowRef } from 'vue'
4
4
  import type { DocSearchProps } from './docsearch.js'
5
5
  import type {
6
6
  LocalSearchTranslations,
@@ -372,7 +372,7 @@ export namespace DefaultTheme {
372
372
  /**
373
373
  * The outline headers of the current page.
374
374
  */
375
- headers: ShallowRef<MenuItem[]>
375
+ headers: ShallowRef<any>
376
376
 
377
377
  /**
378
378
  * Whether the current page has a local nav. Local nav is shown when the
@@ -1,9 +0,0 @@
1
- import { inBrowser } from '../../shared';
2
- import { ref } from 'vue';
3
- const hashRef = ref(inBrowser ? location.hash : '');
4
- if (inBrowser) {
5
- window.addEventListener('hashchange', () => {
6
- hashRef.value = location.hash;
7
- });
8
- }
9
- export { hashRef };