vitepress 1.0.0-draft.2 → 1.0.0-draft.5

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 (127) hide show
  1. package/README.md +3 -1
  2. package/bin/vitepress.js +1 -1
  3. package/dist/client/app/composables/head.js +2 -2
  4. package/dist/client/app/data.js +2 -4
  5. package/dist/client/app/index.js +1 -5
  6. package/dist/client/index.d.ts +123 -134
  7. package/dist/client/index.js +1 -2
  8. package/dist/client/shared.js +21 -0
  9. package/dist/client/theme-default/Layout.vue +7 -0
  10. package/dist/client/theme-default/NotFound.vue +74 -14
  11. package/dist/client/theme-default/components/VPBox.vue +1 -5
  12. package/dist/client/theme-default/components/VPCarbonAds.vue +90 -0
  13. package/dist/client/theme-default/components/VPContent.vue +14 -10
  14. package/dist/client/theme-default/components/VPDoc.vue +73 -58
  15. package/dist/client/theme-default/components/VPDocAside.vue +34 -0
  16. package/dist/client/theme-default/components/VPDocAsideCarbonAds.vue +13 -0
  17. package/dist/client/theme-default/components/{VPDocOutline.vue → VPDocAsideOutline.vue} +14 -3
  18. package/dist/client/theme-default/components/VPDocAsideSponsors.vue +32 -0
  19. package/dist/client/theme-default/components/VPDocFooter.vue +1 -1
  20. package/dist/client/theme-default/components/VPFlyout.vue +2 -3
  21. package/dist/client/theme-default/components/VPFooter.vue +1 -1
  22. package/dist/client/theme-default/components/VPHero.vue +3 -3
  23. package/dist/client/theme-default/components/VPHomeSponsors.vue +3 -7
  24. package/dist/client/theme-default/components/VPLink.vue +2 -1
  25. package/dist/client/theme-default/components/VPLocalNav.vue +1 -1
  26. package/dist/client/theme-default/components/VPMenu.vue +8 -13
  27. package/dist/client/theme-default/components/VPMenuLink.vue +10 -4
  28. package/dist/client/theme-default/components/VPNav.vue +18 -1
  29. package/dist/client/theme-default/components/VPNavBar.vue +20 -8
  30. package/dist/client/theme-default/components/VPNavBarExtra.vue +20 -41
  31. package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +2 -8
  32. package/dist/client/theme-default/components/VPNavBarMenuLink.vue +3 -3
  33. package/dist/client/theme-default/components/VPNavBarSearch.vue +6 -6
  34. package/dist/client/theme-default/components/VPNavBarTitle.vue +4 -2
  35. package/dist/client/theme-default/components/VPNavBarTranslations.vue +10 -39
  36. package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +1 -2
  37. package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +1 -1
  38. package/dist/client/theme-default/components/VPSidebar.vue +12 -6
  39. package/dist/client/theme-default/components/VPSidebarGroup.vue +80 -17
  40. package/dist/client/theme-default/components/VPSidebarLink.vue +2 -9
  41. package/dist/client/theme-default/components/VPSocialLink.vue +2 -2
  42. package/dist/client/theme-default/components/VPSocialLinks.vue +1 -1
  43. package/dist/client/theme-default/components/VPSponsors.vue +15 -40
  44. package/dist/client/theme-default/components/VPSponsorsGrid.vue +2 -2
  45. package/dist/client/theme-default/components/icons/VPIconMinus.vue +5 -0
  46. package/dist/client/theme-default/components/icons/VPIconMinusSquare.vue +6 -0
  47. package/dist/client/theme-default/components/icons/VPIconPlusSquare.vue +6 -0
  48. package/dist/client/theme-default/composables/aside.js +17 -0
  49. package/dist/client/theme-default/composables/copy-code.js +33 -0
  50. package/dist/client/theme-default/composables/outline.js +14 -4
  51. package/dist/client/theme-default/composables/sponsor-grid.js +8 -6
  52. package/dist/client/theme-default/index.js +4 -2
  53. package/dist/client/theme-default/styles/base.css +9 -1
  54. package/dist/client/theme-default/styles/components/custom-block.css +90 -0
  55. package/dist/client/theme-default/styles/{vp-doc.css → components/vp-doc.css} +152 -115
  56. package/dist/client/theme-default/styles/{vp-sponsor.css → components/vp-sponsor.css} +51 -7
  57. package/dist/client/theme-default/styles/vars.css +109 -58
  58. package/dist/node/cli.js +295 -37
  59. package/dist/node/index.d.ts +371 -361
  60. package/dist/node/index.js +22 -22
  61. package/dist/node/serve-f7c10936.js +64795 -0
  62. package/dist/node-cjs/cli.cjs +304 -0
  63. package/dist/node-cjs/index.cjs +38 -0
  64. package/dist/{node/serve-b5dc02b2.js → node-cjs/serve-c220f0a8.cjs} +27511 -28708
  65. package/package.json +47 -40
  66. package/theme.d.ts +7 -2
  67. package/types/default-theme.d.ts +15 -2
  68. package/types/shared.d.ts +3 -0
  69. package/dist/client/theme-default/composables/sponsor.js +0 -87
  70. package/dist/node/alias.js +0 -60
  71. package/dist/node/alias.js.map +0 -1
  72. package/dist/node/build/build.js +0 -57
  73. package/dist/node/build/build.js.map +0 -1
  74. package/dist/node/build/buildMPAClient.js +0 -44
  75. package/dist/node/build/buildMPAClient.js.map +0 -1
  76. package/dist/node/build/bundle.js +0 -163
  77. package/dist/node/build/bundle.js.map +0 -1
  78. package/dist/node/build/render.js +0 -185
  79. package/dist/node/build/render.js.map +0 -1
  80. package/dist/node/cli.js.map +0 -1
  81. package/dist/node/config.js +0 -176
  82. package/dist/node/config.js.map +0 -1
  83. package/dist/node/index.js.map +0 -1
  84. package/dist/node/markdown/markdown.js +0 -75
  85. package/dist/node/markdown/markdown.js.map +0 -1
  86. package/dist/node/markdown/plugins/component.js +0 -86
  87. package/dist/node/markdown/plugins/component.js.map +0 -1
  88. package/dist/node/markdown/plugins/containers.js +0 -41
  89. package/dist/node/markdown/plugins/containers.js.map +0 -1
  90. package/dist/node/markdown/plugins/headings.js +0 -25
  91. package/dist/node/markdown/plugins/headings.js.map +0 -1
  92. package/dist/node/markdown/plugins/highlight.js +0 -53
  93. package/dist/node/markdown/plugins/highlight.js.map +0 -1
  94. package/dist/node/markdown/plugins/highlightLines.js +0 -48
  95. package/dist/node/markdown/plugins/highlightLines.js.map +0 -1
  96. package/dist/node/markdown/plugins/hoist.js +0 -22
  97. package/dist/node/markdown/plugins/hoist.js.map +0 -1
  98. package/dist/node/markdown/plugins/image.js +0 -17
  99. package/dist/node/markdown/plugins/image.js.map +0 -1
  100. package/dist/node/markdown/plugins/lineNumbers.js +0 -23
  101. package/dist/node/markdown/plugins/lineNumbers.js.map +0 -1
  102. package/dist/node/markdown/plugins/link.js +0 -85
  103. package/dist/node/markdown/plugins/link.js.map +0 -1
  104. package/dist/node/markdown/plugins/preWrapper.js +0 -22
  105. package/dist/node/markdown/plugins/preWrapper.js.map +0 -1
  106. package/dist/node/markdown/plugins/slugify.js +0 -26
  107. package/dist/node/markdown/plugins/slugify.js.map +0 -1
  108. package/dist/node/markdown/plugins/snippet.js +0 -146
  109. package/dist/node/markdown/plugins/snippet.js.map +0 -1
  110. package/dist/node/markdownToVue.js +0 -166
  111. package/dist/node/markdownToVue.js.map +0 -1
  112. package/dist/node/plugin.js +0 -227
  113. package/dist/node/plugin.js.map +0 -1
  114. package/dist/node/serve/serve.js +0 -59
  115. package/dist/node/serve/serve.js.map +0 -1
  116. package/dist/node/server.js +0 -18
  117. package/dist/node/server.js.map +0 -1
  118. package/dist/node/shared.js +0 -72
  119. package/dist/node/shared.js.map +0 -1
  120. package/dist/node/staticDataPlugin.js +0 -99
  121. package/dist/node/staticDataPlugin.js.map +0 -1
  122. package/dist/node/utils/getGitTimestamp.js +0 -17
  123. package/dist/node/utils/getGitTimestamp.js.map +0 -1
  124. package/dist/node/utils/parseHeader.js +0 -57
  125. package/dist/node/utils/parseHeader.js.map +0 -1
  126. package/dist/node/utils/slash.js +0 -8
  127. package/dist/node/utils/slash.js.map +0 -1
@@ -1,9 +1,57 @@
1
+ /**
2
+ * VPSponsors styles are defined as global because a new class gets
3
+ * allied in onMounted` hook and we can't use socped style.
4
+ */
5
+ .vp-sponsor {
6
+ border-radius: 16px;
7
+ overflow: hidden;
8
+ }
9
+
10
+ .vp-sponsor.aside {
11
+ border-radius: 12px;
12
+ }
13
+
14
+ .vp-sponsor-section + .vp-sponsor-section {
15
+ margin-top: 4px;
16
+ }
17
+
18
+ .vp-sponsor-tier {
19
+ margin-bottom: 4px;
20
+ text-align: center;
21
+ letter-spacing: 1px;
22
+ line-height: 24px;
23
+ width: 100%;
24
+ font-weight: 600;
25
+ color: var(--vp-c-text-2);
26
+ background-color: var(--vp-c-bg-soft);
27
+ }
28
+
29
+ .vp-sponsor.normal .vp-sponsor-tier {
30
+ padding: 13px 0 11px;
31
+ font-size: 14px;
32
+ }
33
+
34
+ .vp-sponsor.aside .vp-sponsor-tier {
35
+ padding: 9px 0 7px;
36
+ font-size: 12px;
37
+ }
38
+
39
+ .vp-sponsor-grid + .vp-sponsor-tier {
40
+ margin-top: 4px;
41
+ }
42
+
1
43
  .vp-sponsor-grid {
2
44
  display: flex;
3
45
  flex-wrap: wrap;
4
46
  gap: 4px;
5
47
  }
6
48
 
49
+ .vp-sponsor-grid.xmini .vp-sponsor-grid-link { height: 64px; }
50
+ .vp-sponsor-grid.xmini .vp-sponsor-grid-image { max-width: 64px; max-height: 22px }
51
+
52
+ .vp-sponsor-grid.mini .vp-sponsor-grid-link { height: 72px; }
53
+ .vp-sponsor-grid.mini .vp-sponsor-grid-image { max-width: 96px; max-height: 24px }
54
+
7
55
  .vp-sponsor-grid.small .vp-sponsor-grid-link { height: 96px; }
8
56
  .vp-sponsor-grid.small .vp-sponsor-grid-image { max-width: 96px; max-height: 24px }
9
57
 
@@ -36,12 +84,12 @@
36
84
  .vp-sponsor-grid-item {
37
85
  flex-shrink: 0;
38
86
  width: 100%;
39
- background-color: var(--vp-c-white-soft);
87
+ background-color: var(--vp-c-bg-soft);
40
88
  transition: background-color 0.25s;
41
89
  }
42
90
 
43
91
  .vp-sponsor-grid-item:hover {
44
- background-color: var(--vp-c-white-mute);
92
+ background-color: var(--vp-c-bg-mute);
45
93
  }
46
94
 
47
95
  .vp-sponsor-grid-item:hover .vp-sponsor-grid-image {
@@ -49,11 +97,7 @@
49
97
  }
50
98
 
51
99
  .vp-sponsor-grid-item.empty:hover {
52
- background-color: var(--vp-c-white-soft);
53
- }
54
-
55
- .dark .vp-sponsor-grid-item {
56
- background-color: var(--vp-c-black-mute);
100
+ background-color: var(--vp-c-bg-soft);
57
101
  }
58
102
 
59
103
  .dark .vp-sponsor-grid-item:hover {
@@ -43,12 +43,6 @@
43
43
  --vp-c-text-dark-3: rgba(235, 235, 235, 0.38);
44
44
  --vp-c-text-dark-4: rgba(235, 235, 235, 0.18);
45
45
 
46
- --vp-c-green: #42b883;
47
- --vp-c-green-light: #42d392;
48
- --vp-c-green-lighter: #35eb9a;
49
- --vp-c-green-dark: #33a06f;
50
- --vp-c-green-darker: #155f3e;
51
-
52
46
  --vp-c-indigo: #213547;
53
47
  --vp-c-indigo-soft: #476582;
54
48
  --vp-c-indigo-light: #aac8e4;
@@ -56,29 +50,32 @@
56
50
  --vp-c-indigo-dark: #1d2f3f;
57
51
  --vp-c-indigo-darker: #14212e;
58
52
 
59
- --vp-c-blue: #3b8eed;
60
- --vp-c-blue-light: #549ced;
61
- --vp-c-blue-lighter: #50a2ff;
62
- --vp-c-blue-dark: #3468a3;
63
- --vp-c-blue-darker: #255489;
53
+ --vp-c-green: #42b883;
54
+ --vp-c-green-light: #42d392;
55
+ --vp-c-green-lighter: #35eb9a;
56
+ --vp-c-green-dark: #33a06f;
57
+ --vp-c-green-darker: #155f3e;
58
+ --vp-c-green-dimm-1: rgba(66, 184, 131, 0.5);
59
+ --vp-c-green-dimm-2: rgba(66, 184, 131, 0.25);
60
+ --vp-c-green-dimm-3: rgba(66, 184, 131, 0.05);
64
61
 
65
62
  --vp-c-yellow: #ffc517;
66
- --vp-c-yellow-light: #ffe417;
67
- --vp-c-yellow-lighter: #ffff17;
63
+ --vp-c-yellow-light: #fcd253;
64
+ --vp-c-yellow-lighter: #fcfc7c;
68
65
  --vp-c-yellow-dark: #e0ad15;
69
- --vp-c-yellow-darker: #bc9112;
66
+ --vp-c-yellow-darker: #ad850e;
67
+ --vp-c-yellow-dimm-1: rgba(255, 197, 23, 0.5);
68
+ --vp-c-yellow-dimm-2: rgba(255, 197, 23, 0.25);
69
+ --vp-c-yellow-dimm-3: rgba(255, 197, 23, 0.05);
70
70
 
71
71
  --vp-c-red: #ed3c50;
72
- --vp-c-red-light: #f43771;
72
+ --vp-c-red-light: #f54e82;
73
73
  --vp-c-red-lighter: #fd1d7c;
74
74
  --vp-c-red-dark: #cd2d3f;
75
75
  --vp-c-red-darker: #ab2131;
76
-
77
- --vp-c-purple: #de41e0;
78
- --vp-c-purple-light: #e936eb;
79
- --vp-c-purple-lighter: #f616f8;
80
- --vp-c-purple-dark: #823c83;
81
- --vp-c-purple-darker: #602960;
76
+ --vp-c-red-dimm-1: rgba(237, 60, 80, 0.5);
77
+ --vp-c-red-dimm-2: rgba(237, 60, 80, 0.25);
78
+ --vp-c-red-dimm-3: rgba(237, 60, 80, 0.05);
82
79
  }
83
80
 
84
81
  /**
@@ -89,8 +86,7 @@
89
86
  --vp-c-bg: var(--vp-c-white);
90
87
  --vp-c-bg-soft: var(--vp-c-white-soft);
91
88
  --vp-c-bg-mute: var(--vp-c-white-mute);
92
- --vp-c-bg-content: var(--vp-c-white);
93
- --vp-c-bg-sidebar: var(--vp-c-white-soft);
89
+ --vp-c-bg-alt: var(--vp-c-white-soft);
94
90
 
95
91
  --vp-c-divider: var(--vp-c-divider-light-1);
96
92
  --vp-c-divider-light: var(--vp-c-divider-light-2);
@@ -120,11 +116,10 @@
120
116
  }
121
117
 
122
118
  .dark {
123
- --vp-c-bg: var(--vp-c-black);
124
- --vp-c-bg-soft: var(--vp-c-black-soft);
125
- --vp-c-bg-mute: var(--vp-c-black-mute);
126
- --vp-c-bg-content: var(--vp-c-bg-soft);
127
- --vp-c-bg-sidebar: var(--vp-c-bg);
119
+ --vp-c-bg: var(--vp-c-black-soft);
120
+ --vp-c-bg-soft: var(--vp-c-black-mute);
121
+ --vp-c-bg-mute: var(--vp-c-gray-dark-3);
122
+ --vp-c-bg-alt: var(--vp-c-black);
128
123
 
129
124
  --vp-c-divider: var(--vp-c-divider-dark-1);
130
125
  --vp-c-divider-light: var(--vp-c-divider-dark-2);
@@ -142,7 +137,7 @@
142
137
  --vp-c-text-inverse-3: var(--vp-c-text-light-3);
143
138
  --vp-c-text-inverse-4: var(--vp-c-text-light-4);
144
139
 
145
- --vp-c-text-code: var(--vp-c-indigo-light);
140
+ --vp-c-text-code: var(--vp-c-indigo-lighter);
146
141
  }
147
142
 
148
143
  /**
@@ -185,31 +180,7 @@
185
180
  * -------------------------------------------------------------------------- */
186
181
 
187
182
  :root {
188
- --vp-layout-max-width: 1376px;
189
- }
190
-
191
- /**
192
- * Component: Nav
193
- * -------------------------------------------------------------------------- */
194
-
195
- :root {
196
- --vp-nav-height: var(--vp-nav-height-mobile);
197
- --vp-nav-height-mobile: 56px;
198
- --vp-nav-height-desktop: 72px;
199
- }
200
-
201
- @media (min-width: 960px) {
202
- :root {
203
- --vp-nav-height: var(--vp-nav-height-desktop);
204
- }
205
- }
206
-
207
- /**
208
- * Component: Sidebar
209
- * -------------------------------------------------------------------------- */
210
-
211
- :root {
212
- --vp-sidebar-width: 272px;
183
+ --vp-layout-max-width: 1440px;
213
184
  }
214
185
 
215
186
  /**
@@ -217,15 +188,23 @@
217
188
  * -------------------------------------------------------------------------- */
218
189
 
219
190
  :root {
220
- --vp-code-line-height: 24px;
221
- --vp-code-font-size: 14px;
191
+ --vp-code-line-height: 1.7;
192
+ --vp-code-font-size: 0.875em;
222
193
 
223
194
  --vp-code-block-color: var(--vp-c-text-dark-1);
224
195
  --vp-code-block-bg: #292d3e;
196
+
197
+ --vp-code-line-highlight-color: rgba(0, 0, 0, 0.5);
198
+
199
+ --vp-code-line-number-color: var(--vp-c-text-dark-3);
200
+
201
+ --vp-code-copy-code-hover-bg: rgba(255, 255, 255, 0.05);
225
202
  }
226
203
 
227
204
  .dark {
228
- --vp-code-block-bg: var(--vp-c-bg-sidebar);
205
+ --vp-code-block-bg: var(--vp-c-bg-alt);
206
+
207
+ --vp-code-line-number-color: var(--vp-c-text-dark-3);
229
208
  }
230
209
 
231
210
  /**
@@ -280,7 +259,7 @@
280
259
  --vp-button-alt-bg: var(--vp-c-bg-mute);
281
260
  --vp-button-alt-hover-border: var(--vp-c-gray-dark-2);
282
261
  --vp-button-alt-hover-text: var(--vp-c-text-dark-1);
283
- --vp-button-alt-hover-bg: var(--vp-c-gray-dark-3);
262
+ --vp-button-alt-hover-bg: var(--vp-c-gray-dark-2);
284
263
  --vp-button-alt-active-border: var(--vp-c-gray-dark-2);
285
264
  --vp-button-alt-active-text: var(--vp-c-text-dark-1);
286
265
  --vp-button-alt-active-bg: var(--vp-button-alt-bg);
@@ -289,6 +268,78 @@
289
268
  --vp-button-sponsor-text: var(--vp-c-text-dark-2);
290
269
  }
291
270
 
271
+ /**
272
+ * Component: Custom Block
273
+ * -------------------------------------------------------------------------- */
274
+
275
+ :root {
276
+ --vp-custom-block-code-font-size: 13px;
277
+
278
+ --vp-custom-block-info-border: var(--vp-c-divider-light);
279
+ --vp-custom-block-info-text: var(--vp-c-text-2);
280
+ --vp-custom-block-info-bg: var(--vp-c-white-soft);
281
+ --vp-custom-block-info-code-bg: var(--vp-c-gray-light-4);
282
+
283
+ --vp-custom-block-tip-border: var(--vp-c-green-dimm-1);
284
+ --vp-custom-block-tip-text: var(--vp-c-green-darker);
285
+ --vp-custom-block-tip-bg: var(--vp-c-green-dimm-3);
286
+ --vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg);
287
+
288
+ --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1);
289
+ --vp-custom-block-warning-text: var(--vp-c-yellow-darker);
290
+ --vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3);
291
+ --vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg);
292
+
293
+ --vp-custom-block-danger-border: var(--vp-c-red-dimm-1);
294
+ --vp-custom-block-danger-text: var(--vp-c-red-darker);
295
+ --vp-custom-block-danger-bg: var(--vp-c-red-dimm-3);
296
+ --vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg);
297
+
298
+ --vp-custom-block-details-border: var(--vp-custom-block-info-border);
299
+ --vp-custom-block-details-text: var(--vp-custom-block-info-text);
300
+ --vp-custom-block-details-bg: var(--vp-custom-block-info-bg);
301
+ --vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg);
302
+ }
303
+
304
+ .dark {
305
+ --vp-custom-block-info-border: var(--vp-c-divider-light);
306
+ --vp-custom-block-info-bg: var(--vp-c-black-mute);
307
+ --vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4);
308
+
309
+ --vp-custom-block-tip-border: var(--vp-c-green-dimm-2);
310
+ --vp-custom-block-tip-text: var(--vp-c-green-light);
311
+
312
+ --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2);
313
+ --vp-custom-block-warning-text: var(--vp-c-yellow-light);
314
+
315
+ --vp-custom-block-danger-border: var(--vp-c-red-dimm-2);
316
+ --vp-custom-block-danger-text: var(--vp-c-red-light);
317
+ }
318
+
319
+ /**
320
+ * Component: Nav
321
+ * -------------------------------------------------------------------------- */
322
+
323
+ :root {
324
+ --vp-nav-height: var(--vp-nav-height-mobile);
325
+ --vp-nav-height-mobile: 56px;
326
+ --vp-nav-height-desktop: 72px;
327
+ }
328
+
329
+ @media (min-width: 960px) {
330
+ :root {
331
+ --vp-nav-height: var(--vp-nav-height-desktop);
332
+ }
333
+ }
334
+
335
+ /**
336
+ * Component: Sidebar
337
+ * -------------------------------------------------------------------------- */
338
+
339
+ :root {
340
+ --vp-sidebar-width: 272px;
341
+ }
342
+
292
343
  /**
293
344
  * Component: Home
294
345
  * -------------------------------------------------------------------------- */
package/dist/node/cli.js CHANGED
@@ -1,44 +1,302 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ import { h as c, e as createServer, g as build, s as serve } from './serve-f7c10936.js';
2
+ import 'shiki';
3
+ import 'fs';
4
+ import 'path';
5
+ import 'url';
6
+ import 'vite';
7
+ import 'readline';
8
+ import 'os';
9
+ import 'tty';
10
+ import 'assert';
11
+ import 'events';
12
+ import 'stream';
13
+ import 'util';
14
+ import 'buffer';
15
+ import 'module';
16
+ import 'child_process';
17
+ import 'punycode';
18
+ import 'querystring';
19
+ import 'net';
20
+ import 'zlib';
21
+ import 'http';
22
+ import 'constants';
23
+
24
+ var minimist = function (args, opts) {
25
+ if (!opts) opts = {};
26
+
27
+ var flags = { bools : {}, strings : {}, unknownFn: null };
28
+
29
+ if (typeof opts['unknown'] === 'function') {
30
+ flags.unknownFn = opts['unknown'];
31
+ }
32
+
33
+ if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
34
+ flags.allBools = true;
35
+ } else {
36
+ [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
37
+ flags.bools[key] = true;
38
+ });
39
+ }
40
+
41
+ var aliases = {};
42
+ Object.keys(opts.alias || {}).forEach(function (key) {
43
+ aliases[key] = [].concat(opts.alias[key]);
44
+ aliases[key].forEach(function (x) {
45
+ aliases[x] = [key].concat(aliases[key].filter(function (y) {
46
+ return x !== y;
47
+ }));
48
+ });
49
+ });
50
+
51
+ [].concat(opts.string).filter(Boolean).forEach(function (key) {
52
+ flags.strings[key] = true;
53
+ if (aliases[key]) {
54
+ flags.strings[aliases[key]] = true;
55
+ }
56
+ });
57
+
58
+ var defaults = opts['default'] || {};
59
+
60
+ var argv = { _ : [] };
61
+ Object.keys(flags.bools).forEach(function (key) {
62
+ setArg(key, defaults[key] === undefined ? false : defaults[key]);
63
+ });
64
+
65
+ var notFlags = [];
66
+
67
+ if (args.indexOf('--') !== -1) {
68
+ notFlags = args.slice(args.indexOf('--')+1);
69
+ args = args.slice(0, args.indexOf('--'));
70
+ }
71
+
72
+ function argDefined(key, arg) {
73
+ return (flags.allBools && /^--[^=]+$/.test(arg)) ||
74
+ flags.strings[key] || flags.bools[key] || aliases[key];
75
+ }
76
+
77
+ function setArg (key, val, arg) {
78
+ if (arg && flags.unknownFn && !argDefined(key, arg)) {
79
+ if (flags.unknownFn(arg) === false) return;
80
+ }
81
+
82
+ var value = !flags.strings[key] && isNumber(val)
83
+ ? Number(val) : val
84
+ ;
85
+ setKey(argv, key.split('.'), value);
86
+
87
+ (aliases[key] || []).forEach(function (x) {
88
+ setKey(argv, x.split('.'), value);
89
+ });
90
+ }
91
+
92
+ function setKey (obj, keys, value) {
93
+ var o = obj;
94
+ for (var i = 0; i < keys.length-1; i++) {
95
+ var key = keys[i];
96
+ if (key === '__proto__') return;
97
+ if (o[key] === undefined) o[key] = {};
98
+ if (o[key] === Object.prototype || o[key] === Number.prototype
99
+ || o[key] === String.prototype) o[key] = {};
100
+ if (o[key] === Array.prototype) o[key] = [];
101
+ o = o[key];
102
+ }
103
+
104
+ var key = keys[keys.length - 1];
105
+ if (key === '__proto__') return;
106
+ if (o === Object.prototype || o === Number.prototype
107
+ || o === String.prototype) o = {};
108
+ if (o === Array.prototype) o = [];
109
+ if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
110
+ o[key] = value;
111
+ }
112
+ else if (Array.isArray(o[key])) {
113
+ o[key].push(value);
114
+ }
115
+ else {
116
+ o[key] = [ o[key], value ];
117
+ }
118
+ }
119
+
120
+ function aliasIsBoolean(key) {
121
+ return aliases[key].some(function (x) {
122
+ return flags.bools[x];
123
+ });
124
+ }
125
+
126
+ for (var i = 0; i < args.length; i++) {
127
+ var arg = args[i];
128
+
129
+ if (/^--.+=/.test(arg)) {
130
+ // Using [\s\S] instead of . because js doesn't support the
131
+ // 'dotall' regex modifier. See:
132
+ // http://stackoverflow.com/a/1068308/13216
133
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
134
+ var key = m[1];
135
+ var value = m[2];
136
+ if (flags.bools[key]) {
137
+ value = value !== 'false';
138
+ }
139
+ setArg(key, value, arg);
140
+ }
141
+ else if (/^--no-.+/.test(arg)) {
142
+ var key = arg.match(/^--no-(.+)/)[1];
143
+ setArg(key, false, arg);
144
+ }
145
+ else if (/^--.+/.test(arg)) {
146
+ var key = arg.match(/^--(.+)/)[1];
147
+ var next = args[i + 1];
148
+ if (next !== undefined && !/^-/.test(next)
149
+ && !flags.bools[key]
150
+ && !flags.allBools
151
+ && (aliases[key] ? !aliasIsBoolean(key) : true)) {
152
+ setArg(key, next, arg);
153
+ i++;
154
+ }
155
+ else if (/^(true|false)$/.test(next)) {
156
+ setArg(key, next === 'true', arg);
157
+ i++;
158
+ }
159
+ else {
160
+ setArg(key, flags.strings[key] ? '' : true, arg);
161
+ }
162
+ }
163
+ else if (/^-[^-]+/.test(arg)) {
164
+ var letters = arg.slice(1,-1).split('');
165
+
166
+ var broken = false;
167
+ for (var j = 0; j < letters.length; j++) {
168
+ var next = arg.slice(j+2);
169
+
170
+ if (next === '-') {
171
+ setArg(letters[j], next, arg);
172
+ continue;
173
+ }
174
+
175
+ if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
176
+ setArg(letters[j], next.split('=')[1], arg);
177
+ broken = true;
178
+ break;
179
+ }
180
+
181
+ if (/[A-Za-z]/.test(letters[j])
182
+ && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
183
+ setArg(letters[j], next, arg);
184
+ broken = true;
185
+ break;
186
+ }
187
+
188
+ if (letters[j+1] && letters[j+1].match(/\W/)) {
189
+ setArg(letters[j], arg.slice(j+2), arg);
190
+ broken = true;
191
+ break;
192
+ }
193
+ else {
194
+ setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
195
+ }
196
+ }
197
+
198
+ var key = arg.slice(-1)[0];
199
+ if (!broken && key !== '-') {
200
+ if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
201
+ && !flags.bools[key]
202
+ && (aliases[key] ? !aliasIsBoolean(key) : true)) {
203
+ setArg(key, args[i+1], arg);
204
+ i++;
205
+ }
206
+ else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
207
+ setArg(key, args[i+1] === 'true', arg);
208
+ i++;
209
+ }
210
+ else {
211
+ setArg(key, flags.strings[key] ? '' : true, arg);
212
+ }
213
+ }
214
+ }
215
+ else {
216
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
217
+ argv._.push(
218
+ flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
219
+ );
220
+ }
221
+ if (opts.stopEarly) {
222
+ argv._.push.apply(argv._, args.slice(i + 1));
223
+ break;
224
+ }
225
+ }
226
+ }
227
+
228
+ Object.keys(defaults).forEach(function (key) {
229
+ if (!hasKey(argv, key.split('.'))) {
230
+ setKey(argv, key.split('.'), defaults[key]);
231
+
232
+ (aliases[key] || []).forEach(function (x) {
233
+ setKey(argv, x.split('.'), defaults[key]);
234
+ });
235
+ }
236
+ });
237
+
238
+ if (opts['--']) {
239
+ argv['--'] = new Array();
240
+ notFlags.forEach(function(key) {
241
+ argv['--'].push(key);
242
+ });
243
+ }
244
+ else {
245
+ notFlags.forEach(function(key) {
246
+ argv._.push(key);
247
+ });
248
+ }
249
+
250
+ return argv;
4
251
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chalk_1 = __importDefault(require("chalk"));
7
- const minimist_1 = __importDefault(require("minimist"));
8
- const _1 = require(".");
9
- const argv = (0, minimist_1.default)(process.argv.slice(2));
10
- console.log(chalk_1.default.cyan(`vitepress v${require('../../package.json').version}`));
11
- const command = argv._[0];
12
- const root = argv._[command ? 1 : 0];
13
- if (root) {
14
- argv.root = root;
15
- }
16
- if (!command || command === 'dev') {
17
- (0, _1.createServer)(root, argv)
18
- .then((server) => server.listen())
19
- .then((server) => {
20
- console.log();
21
- server.printUrls();
22
- })
23
- .catch((err) => {
24
- console.error(chalk_1.default.red(`failed to start server. error:\n`), err);
25
- process.exit(1);
252
+
253
+ function hasKey (obj, keys) {
254
+ var o = obj;
255
+ keys.slice(0,-1).forEach(function (key) {
256
+ o = (o[key] || {});
26
257
  });
258
+
259
+ var key = keys[keys.length - 1];
260
+ return key in o;
27
261
  }
28
- else if (command === 'build') {
29
- (0, _1.build)(root, argv).catch((err) => {
30
- console.error(chalk_1.default.red(`build error:\n`), err);
31
- process.exit(1);
32
- });
262
+
263
+ function isNumber (x) {
264
+ if (typeof x === 'number') return true;
265
+ if (/^0x[0-9a-f]+$/i.test(x)) return true;
266
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
33
267
  }
34
- else if (command === 'serve') {
35
- (0, _1.serve)(argv).catch((err) => {
36
- console.error(chalk_1.default.red(`failed to start server. error:\n`), err);
37
- process.exit(1);
38
- });
268
+
269
+ var version = "1.0.0-draft.4";
270
+
271
+ const argv = minimist(process.argv.slice(2));
272
+ console.log(c.cyan(`vitepress v${version}`));
273
+ const command = argv._[0];
274
+ const root = argv._[command ? 1 : 0];
275
+ if (root) {
276
+ argv.root = root;
39
277
  }
40
- else {
41
- console.log(chalk_1.default.red(`unknown command "${command}".`));
278
+ if (!command || command === "dev") {
279
+ createServer(root, argv).then((server) => server.listen()).then((server) => {
280
+ console.log();
281
+ server.printUrls();
282
+ }).catch((err) => {
283
+ console.error(c.red(`failed to start server. error:
284
+ `), err);
285
+ process.exit(1);
286
+ });
287
+ } else if (command === "build") {
288
+ build(root, argv).catch((err) => {
289
+ console.error(c.red(`build error:
290
+ `), err);
291
+ process.exit(1);
292
+ });
293
+ } else if (command === "serve") {
294
+ serve(argv).catch((err) => {
295
+ console.error(c.red(`failed to start server. error:
296
+ `), err);
42
297
  process.exit(1);
298
+ });
299
+ } else {
300
+ console.log(c.red(`unknown command "${command}".`));
301
+ process.exit(1);
43
302
  }
44
- //# sourceMappingURL=cli.js.map