shipfe 1.1.1 → 1.1.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 (171) hide show
  1. package/README.md +15 -15
  2. package/bin/shipfe +0 -0
  3. package/package.json +5 -1
  4. package/.github/workflows/deploy.yml +0 -46
  5. package/.github/workflows/release.yml +0 -51
  6. package/.vscode/settings.json +0 -5
  7. package/README_CN.md +0 -41
  8. package/docs/.vitepress/cache/deps/@theme_index.js +0 -275
  9. package/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
  10. package/docs/.vitepress/cache/deps/_metadata.json +0 -40
  11. package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js +0 -9719
  12. package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js.map +0 -7
  13. package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js +0 -12877
  14. package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js.map +0 -7
  15. package/docs/.vitepress/cache/deps/package.json +0 -3
  16. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  17. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  18. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  19. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  20. package/docs/.vitepress/cache/deps/vue.js +0 -347
  21. package/docs/.vitepress/cache/deps/vue.js.map +0 -7
  22. package/docs/.vitepress/config.ts +0 -120
  23. package/docs/.vitepress/dist/404.html +0 -22
  24. package/docs/.vitepress/dist/assets/app.DZUgfPE2.js +0 -1
  25. package/docs/.vitepress/dist/assets/chunks/framework.BeaujayP.js +0 -19
  26. package/docs/.vitepress/dist/assets/chunks/theme.CNyaCki0.js +0 -1
  27. package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.js +0 -17
  28. package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.lean.js +0 -1
  29. package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.js +0 -2
  30. package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.lean.js +0 -1
  31. package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.js +0 -7
  32. package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.lean.js +0 -1
  33. package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.js +0 -56
  34. package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.lean.js +0 -1
  35. package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.js +0 -34
  36. package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.lean.js +0 -1
  37. package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.js +0 -1
  38. package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.lean.js +0 -1
  39. package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.js +0 -26
  40. package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.lean.js +0 -1
  41. package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.js +0 -22
  42. package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.lean.js +0 -1
  43. package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.js +0 -20
  44. package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.lean.js +0 -1
  45. package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.js +0 -26
  46. package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.lean.js +0 -1
  47. package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.js +0 -24
  48. package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.lean.js +0 -1
  49. package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.js +0 -1
  50. package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.lean.js +0 -1
  51. package/docs/.vitepress/dist/assets/install.md.CblrJsha.js +0 -1
  52. package/docs/.vitepress/dist/assets/install.md.CblrJsha.lean.js +0 -1
  53. package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  54. package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  55. package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  56. package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  57. package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  58. package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  59. package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  60. package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  61. package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  62. package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  63. package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  64. package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  65. package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  66. package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  67. package/docs/.vitepress/dist/assets/license.md.hVRT8__d.js +0 -1
  68. package/docs/.vitepress/dist/assets/license.md.hVRT8__d.lean.js +0 -1
  69. package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.js +0 -23
  70. package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.lean.js +0 -1
  71. package/docs/.vitepress/dist/assets/style.DES0mfMn.css +0 -1
  72. package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.js +0 -1
  73. package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.lean.js +0 -1
  74. package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.js +0 -9
  75. package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.lean.js +0 -1
  76. package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.js +0 -18
  77. package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.lean.js +0 -1
  78. package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.js +0 -6
  79. package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.lean.js +0 -1
  80. package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.js +0 -44
  81. package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.lean.js +0 -1
  82. package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.js +0 -45
  83. package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.lean.js +0 -1
  84. package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.js +0 -67
  85. package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.lean.js +0 -1
  86. package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.js +0 -167
  87. package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.lean.js +0 -1
  88. package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.js +0 -42
  89. package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.lean.js +0 -1
  90. package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.js +0 -50
  91. package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.lean.js +0 -1
  92. package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.js +0 -26
  93. package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.lean.js +0 -1
  94. package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.js +0 -39
  95. package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.lean.js +0 -1
  96. package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.js +0 -1
  97. package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.lean.js +0 -1
  98. package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.js +0 -41
  99. package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.lean.js +0 -1
  100. package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.js +0 -1
  101. package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.lean.js +0 -1
  102. package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.js +0 -19
  103. package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.lean.js +0 -1
  104. package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.js +0 -1
  105. package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.lean.js +0 -1
  106. package/docs/.vitepress/dist/commands/deploy.html +0 -41
  107. package/docs/.vitepress/dist/commands/init.html +0 -26
  108. package/docs/.vitepress/dist/commands/rollback.html +0 -31
  109. package/docs/.vitepress/dist/config/auth.html +0 -80
  110. package/docs/.vitepress/dist/config/overview.html +0 -58
  111. package/docs/.vitepress/dist/config/schema.html +0 -25
  112. package/docs/.vitepress/dist/config/sub-env.html +0 -50
  113. package/docs/.vitepress/dist/features/atomic.html +0 -46
  114. package/docs/.vitepress/dist/features/cleanup.html +0 -44
  115. package/docs/.vitepress/dist/features/shared-assets.html +0 -50
  116. package/docs/.vitepress/dist/features/snapshot.html +0 -48
  117. package/docs/.vitepress/dist/hashmap.json +0 -1
  118. package/docs/.vitepress/dist/index.html +0 -25
  119. package/docs/.vitepress/dist/install.html +0 -25
  120. package/docs/.vitepress/dist/license.html +0 -25
  121. package/docs/.vitepress/dist/quick-start.html +0 -47
  122. package/docs/.vitepress/dist/troubleshooting.html +0 -25
  123. package/docs/.vitepress/dist/vp-icons.css +0 -0
  124. package/docs/.vitepress/dist/zh/commands/deploy.html +0 -33
  125. package/docs/.vitepress/dist/zh/commands/init.html +0 -42
  126. package/docs/.vitepress/dist/zh/commands/rollback.html +0 -30
  127. package/docs/.vitepress/dist/zh/config/auth.html +0 -68
  128. package/docs/.vitepress/dist/zh/config/overview.html +0 -69
  129. package/docs/.vitepress/dist/zh/config/schema.html +0 -91
  130. package/docs/.vitepress/dist/zh/config/sub-env.html +0 -191
  131. package/docs/.vitepress/dist/zh/features/atomic.html +0 -66
  132. package/docs/.vitepress/dist/zh/features/cleanup.html +0 -74
  133. package/docs/.vitepress/dist/zh/features/shared-assets.html +0 -50
  134. package/docs/.vitepress/dist/zh/features/snapshot.html +0 -63
  135. package/docs/.vitepress/dist/zh/index.html +0 -25
  136. package/docs/.vitepress/dist/zh/install.html +0 -65
  137. package/docs/.vitepress/dist/zh/license.html +0 -25
  138. package/docs/.vitepress/dist/zh/quick-start.html +0 -43
  139. package/docs/.vitepress/dist/zh/troubleshooting.html +0 -25
  140. package/docs/commands/deploy.md +0 -46
  141. package/docs/commands/init.md +0 -27
  142. package/docs/commands/rollback.md +0 -45
  143. package/docs/config/auth.md +0 -112
  144. package/docs/config/overview.md +0 -63
  145. package/docs/config/schema.md +0 -52
  146. package/docs/config/sub-env.md +0 -62
  147. package/docs/features/atomic.md +0 -67
  148. package/docs/features/cleanup.md +0 -80
  149. package/docs/features/shared-assets.md +0 -72
  150. package/docs/features/snapshot.md +0 -58
  151. package/docs/index.md +0 -48
  152. package/docs/install.md +0 -21
  153. package/docs/license.md +0 -23
  154. package/docs/quick-start.md +0 -98
  155. package/docs/troubleshooting.md +0 -88
  156. package/docs/zh/commands/deploy.md +0 -127
  157. package/docs/zh/commands/init.md +0 -76
  158. package/docs/zh/commands/rollback.md +0 -115
  159. package/docs/zh/config/auth.md +0 -195
  160. package/docs/zh/config/overview.md +0 -153
  161. package/docs/zh/config/schema.md +0 -253
  162. package/docs/zh/config/sub-env.md +0 -293
  163. package/docs/zh/features/atomic.md +0 -249
  164. package/docs/zh/features/cleanup.md +0 -241
  165. package/docs/zh/features/shared-assets.md +0 -72
  166. package/docs/zh/features/snapshot.md +0 -186
  167. package/docs/zh/index.md +0 -65
  168. package/docs/zh/install.md +0 -160
  169. package/docs/zh/license.md +0 -23
  170. package/docs/zh/quick-start.md +0 -109
  171. package/docs/zh/troubleshooting.md +0 -88
package/README.md CHANGED
@@ -4,38 +4,38 @@
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  [![GitHub](https://img.shields.io/badge/GitHub-Master--Jian/shipfe--rust-blue.svg)](https://github.com/Master-Jian/shipfe-rust)
6
6
 
7
- 一个强大的、**免费**、**基于 Rust** Web 应用部署工具,**不请求网络**,实现**一键前端静态部署包上传到服务器**。支持多环境和子环境部署,具有零停机原子部署功能。
7
+ A powerful, **free**, **Rust-based** web application deployment tool that **does not request network**, enabling **one-click upload of frontend static deployment packages to servers**. Supports multi-environment and sub-environment deployment with zero-downtime atomic deployment functionality.
8
8
 
9
- ## 安装
9
+ ## Documentation
10
+
11
+ 📖 [Full Documentation](https://master-jian.github.io/shipfe-rust/)
12
+
13
+ ## Installation
10
14
 
11
15
  ```bash
12
16
  npm install -g shipfe
13
17
  ```
14
18
 
15
- ## 快速开始
19
+ ## Quick Start
16
20
 
17
- 1. 初始化项目:
21
+ 1. Initialize the project:
18
22
  ```bash
19
23
  shipfe init
20
24
  ```
21
25
 
22
- 2. `shipfe.config.json` 中配置部署
26
+ 2. Configure deployment in `shipfe.config.json`
23
27
 
24
- 3. 部署:
28
+ 3. Deploy:
25
29
  ```bash
26
30
  shipfe deploy --profile prod
27
31
  ```
28
32
 
29
- ## 文档
30
-
31
- 📖 [完整文档](https://master-jian.github.io/shipfe-rust/)
32
-
33
- ## 常用命令
33
+ ## Common Commands
34
34
 
35
- - `shipfe deploy --profile <env>` - 部署到指定环境
36
- - `shipfe deploy --atomic` - 原子部署
37
- - `shipfe rollback --profile <env> --to <timestamp>` - 回滚到指定版本
35
+ - `shipfe deploy --profile <env>` - Deploy to specified environment
36
+ - `shipfe deploy --atomic` - Atomic deployment
37
+ - `shipfe rollback --profile <env> --to <timestamp>` - Rollback to specified version
38
38
 
39
- ## 许可证
39
+ ## License
40
40
 
41
41
  MIT
package/bin/shipfe CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shipfe",
3
- "version": "1.1.1",
3
+ "version": "1.1.5",
4
4
  "description": "A deployment tool for web applications",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -24,6 +24,10 @@
24
24
  "url": "git+https://github.com/Master-Jian/shipfe-rust.git"
25
25
  },
26
26
  "license": "MIT",
27
+ "files": [
28
+ "bin/shipfe",
29
+ "README.md"
30
+ ],
27
31
  "os": [
28
32
  "darwin",
29
33
  "linux",
@@ -1,46 +0,0 @@
1
- name: Deploy VitePress to GitHub Pages
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- workflow_dispatch:
7
-
8
- permissions:
9
- contents: read
10
- pages: write
11
- id-token: write
12
-
13
- concurrency:
14
- group: pages
15
- cancel-in-progress: true
16
-
17
- jobs:
18
- build:
19
- runs-on: ubuntu-latest
20
- steps:
21
- - uses: actions/checkout@v4
22
-
23
- - uses: actions/setup-node@v4
24
- with:
25
- node-version: 20
26
- cache: npm
27
-
28
- - run: npm ci
29
- - run: npm run docs:build
30
-
31
- - uses: actions/configure-pages@v5
32
- with:
33
- enablement: true
34
- - uses: actions/upload-pages-artifact@v3
35
- with:
36
- path: docs/.vitepress/dist
37
-
38
- deploy:
39
- needs: build
40
- runs-on: ubuntu-latest
41
- environment:
42
- name: github-pages
43
- url: ${{ steps.deployment.outputs.page_url }}
44
- steps:
45
- - id: deployment
46
- uses: actions/deploy-pages@v4
@@ -1,51 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
-
8
- permissions:
9
- contents: write
10
- id-token: write
11
-
12
- jobs:
13
- release:
14
- runs-on: ubuntu-latest
15
- steps:
16
- - uses: actions/checkout@v4
17
-
18
- - uses: actions/setup-node@v4
19
- with:
20
- node-version: 20
21
- registry-url: 'https://registry.npmjs.org'
22
-
23
- - run: npm ci
24
-
25
- - uses: actions/setup-python@v5
26
- with:
27
- python-version: '3.10'
28
-
29
- - name: Install Rust
30
- uses: dtolnay/rust-toolchain@stable
31
-
32
- - run: cargo build --release
33
-
34
- - run: cp target/release/shipfe bin/shipfe
35
-
36
- - run: npm publish --provenance
37
- env:
38
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
39
-
40
- - name: Create GitHub Release
41
- uses: softprops/action-gh-release@v1
42
- with:
43
- tag_name: ${{ github.ref_name }}
44
- name: Release ${{ github.ref_name }}
45
- body: |
46
- ## Changes
47
- - Version bump to ${{ github.ref_name }}
48
- draft: false
49
- prerelease: false
50
- env:
51
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,5 +0,0 @@
1
- {
2
- "cSpell.words": [
3
- "shipfe"
4
- ]
5
- }
package/README_CN.md DELETED
@@ -1,41 +0,0 @@
1
- # Shipfe
2
-
3
- [![npm version](https://img.shields.io/npm/v/shipfe.svg)](https://www.npmjs.com/package/shipfe)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![GitHub](https://img.shields.io/badge/GitHub-Master--Jian/shipfe--rust-blue.svg)](https://github.com/Master-Jian/shipfe-rust)
6
-
7
- 一个强大的、**免费**、**基于 Rust** 的 Web 应用部署工具,**不请求网络**,实现**一键前端静态部署包上传到服务器**。支持多环境和子环境部署,具有零停机原子部署功能。
8
-
9
- ## 安装
10
-
11
- ```bash
12
- npm install -g shipfe
13
- ```
14
-
15
- ## 快速开始
16
-
17
- 1. 初始化项目:
18
- ```bash
19
- shipfe init
20
- ```
21
-
22
- 2. 在 `shipfe.config.json` 中配置部署
23
-
24
- 3. 部署:
25
- ```bash
26
- shipfe deploy --profile prod
27
- ```
28
-
29
- ## 文档
30
-
31
- 📖 [完整文档](https://master-jian.github.io/shipfe-rust/)
32
-
33
- ## 常用命令
34
-
35
- - `shipfe deploy --profile <env>` - 部署到指定环境
36
- - `shipfe deploy --atomic` - 原子部署
37
- - `shipfe rollback --profile <env> --to <timestamp>` - 回滚到指定版本
38
-
39
- ## 许可证
40
-
41
- MIT
@@ -1,275 +0,0 @@
1
- import {
2
- useMediaQuery
3
- } from "./chunk-BRNHR3LR.js";
4
- import {
5
- computed,
6
- ref,
7
- shallowRef,
8
- watch
9
- } from "./chunk-H6MPEGKE.js";
10
-
11
- // node_modules/vitepress/dist/client/theme-default/index.js
12
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
13
-
14
- // node_modules/vitepress/dist/client/theme-default/without-fonts.js
15
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
16
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/base.css";
17
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/icons.css";
18
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
19
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
20
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
21
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
22
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
23
- import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
24
- import VPBadge from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
25
- import Layout from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/Layout.vue";
26
- import { default as default2 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
27
- import { default as default3 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue";
28
- import { default as default4 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
29
- import { default as default5 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPFeatures.vue";
30
- import { default as default6 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeContent.vue";
31
- import { default as default7 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
32
- import { default as default8 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
33
- import { default as default9 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
34
- import { default as default10 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue";
35
- import { default as default11 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPLink.vue";
36
- import { default as default12 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPNavBarSearch.vue";
37
- import { default as default13 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSocialLink.vue";
38
- import { default as default14 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSocialLinks.vue";
39
- import { default as default15 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue";
40
- import { default as default16 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
41
- import { default as default17 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
42
- import { default as default18 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
43
- import { default as default19 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
44
-
45
- // node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
46
- import { onContentUpdated } from "vitepress";
47
-
48
- // node_modules/vitepress/dist/client/theme-default/composables/outline.js
49
- import { getScrollOffset } from "vitepress";
50
-
51
- // node_modules/vitepress/dist/client/theme-default/support/utils.js
52
- import { withBase } from "vitepress";
53
-
54
- // node_modules/vitepress/dist/client/theme-default/composables/data.js
55
- import { useData as useData$ } from "vitepress";
56
- var useData = useData$;
57
-
58
- // node_modules/vitepress/dist/client/theme-default/support/utils.js
59
- function ensureStartingSlash(path) {
60
- return path.startsWith("/") ? path : `/${path}`;
61
- }
62
-
63
- // node_modules/vitepress/dist/client/theme-default/support/sidebar.js
64
- function getSidebar(_sidebar, path) {
65
- if (Array.isArray(_sidebar))
66
- return addBase(_sidebar);
67
- if (_sidebar == null)
68
- return [];
69
- path = ensureStartingSlash(path);
70
- const dir = Object.keys(_sidebar).sort((a, b) => {
71
- return b.split("/").length - a.split("/").length;
72
- }).find((dir2) => {
73
- return path.startsWith(ensureStartingSlash(dir2));
74
- });
75
- const sidebar = dir ? _sidebar[dir] : [];
76
- return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base);
77
- }
78
- function getSidebarGroups(sidebar) {
79
- const groups = [];
80
- let lastGroupIndex = 0;
81
- for (const index in sidebar) {
82
- const item = sidebar[index];
83
- if (item.items) {
84
- lastGroupIndex = groups.push(item);
85
- continue;
86
- }
87
- if (!groups[lastGroupIndex]) {
88
- groups.push({ items: [] });
89
- }
90
- groups[lastGroupIndex].items.push(item);
91
- }
92
- return groups;
93
- }
94
- function addBase(items, _base) {
95
- return [...items].map((_item) => {
96
- const item = { ..._item };
97
- const base = item.base || _base;
98
- if (base && item.link)
99
- item.link = base + item.link;
100
- if (item.items)
101
- item.items = addBase(item.items, base);
102
- return item;
103
- });
104
- }
105
-
106
- // node_modules/vitepress/dist/client/theme-default/composables/sidebar.js
107
- function useSidebar() {
108
- const { frontmatter, page, theme: theme2 } = useData();
109
- const is960 = useMediaQuery("(min-width: 960px)");
110
- const isOpen = ref(false);
111
- const _sidebar = computed(() => {
112
- const sidebarConfig = theme2.value.sidebar;
113
- const relativePath = page.value.relativePath;
114
- return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];
115
- });
116
- const sidebar = ref(_sidebar.value);
117
- watch(_sidebar, (next, prev) => {
118
- if (JSON.stringify(next) !== JSON.stringify(prev))
119
- sidebar.value = _sidebar.value;
120
- });
121
- const hasSidebar = computed(() => {
122
- return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home";
123
- });
124
- const leftAside = computed(() => {
125
- if (hasAside)
126
- return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left";
127
- return false;
128
- });
129
- const hasAside = computed(() => {
130
- if (frontmatter.value.layout === "home")
131
- return false;
132
- if (frontmatter.value.aside != null)
133
- return !!frontmatter.value.aside;
134
- return theme2.value.aside !== false;
135
- });
136
- const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);
137
- const sidebarGroups = computed(() => {
138
- return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];
139
- });
140
- function open() {
141
- isOpen.value = true;
142
- }
143
- function close() {
144
- isOpen.value = false;
145
- }
146
- function toggle() {
147
- isOpen.value ? close() : open();
148
- }
149
- return {
150
- isOpen,
151
- sidebar,
152
- sidebarGroups,
153
- hasSidebar,
154
- hasAside,
155
- leftAside,
156
- isSidebarEnabled,
157
- open,
158
- close,
159
- toggle
160
- };
161
- }
162
-
163
- // node_modules/vitepress/dist/client/theme-default/composables/outline.js
164
- var ignoreRE = /\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/;
165
- var resolvedHeaders = [];
166
- function getHeaders(range) {
167
- const headers = [
168
- ...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")
169
- ].filter((el) => el.id && el.hasChildNodes()).map((el) => {
170
- const level = Number(el.tagName[1]);
171
- return {
172
- element: el,
173
- title: serializeHeader(el),
174
- link: "#" + el.id,
175
- level
176
- };
177
- });
178
- return resolveHeaders(headers, range);
179
- }
180
- function serializeHeader(h) {
181
- let ret = "";
182
- for (const node of h.childNodes) {
183
- if (node.nodeType === 1) {
184
- if (ignoreRE.test(node.className))
185
- continue;
186
- ret += node.textContent;
187
- } else if (node.nodeType === 3) {
188
- ret += node.textContent;
189
- }
190
- }
191
- return ret.trim();
192
- }
193
- function resolveHeaders(headers, range) {
194
- if (range === false) {
195
- return [];
196
- }
197
- const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2;
198
- const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange;
199
- return buildTree(headers, high, low);
200
- }
201
- function buildTree(data, min, max) {
202
- resolvedHeaders.length = 0;
203
- const result = [];
204
- const stack = [];
205
- data.forEach((item) => {
206
- const node = { ...item, children: [] };
207
- let parent = stack[stack.length - 1];
208
- while (parent && parent.level >= node.level) {
209
- stack.pop();
210
- parent = stack[stack.length - 1];
211
- }
212
- if (node.element.classList.contains("ignore-header") || parent && "shouldIgnore" in parent) {
213
- stack.push({ level: node.level, shouldIgnore: true });
214
- return;
215
- }
216
- if (node.level > max || node.level < min)
217
- return;
218
- resolvedHeaders.push({ element: node.element, link: node.link });
219
- if (parent)
220
- parent.children.push(node);
221
- else
222
- result.push(node);
223
- stack.push(node);
224
- });
225
- return result;
226
- }
227
-
228
- // node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
229
- function useLocalNav() {
230
- const { theme: theme2, frontmatter } = useData();
231
- const headers = shallowRef([]);
232
- const hasLocalNav = computed(() => {
233
- return headers.value.length > 0;
234
- });
235
- onContentUpdated(() => {
236
- headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline);
237
- });
238
- return {
239
- headers,
240
- hasLocalNav
241
- };
242
- }
243
-
244
- // node_modules/vitepress/dist/client/theme-default/without-fonts.js
245
- var theme = {
246
- Layout,
247
- enhanceApp: ({ app }) => {
248
- app.component("Badge", VPBadge);
249
- }
250
- };
251
- var without_fonts_default = theme;
252
- export {
253
- default2 as VPBadge,
254
- default3 as VPButton,
255
- default4 as VPDocAsideSponsors,
256
- default5 as VPFeatures,
257
- default6 as VPHomeContent,
258
- default7 as VPHomeFeatures,
259
- default8 as VPHomeHero,
260
- default9 as VPHomeSponsors,
261
- default10 as VPImage,
262
- default11 as VPLink,
263
- default12 as VPNavBarSearch,
264
- default13 as VPSocialLink,
265
- default14 as VPSocialLinks,
266
- default15 as VPSponsors,
267
- default16 as VPTeamMembers,
268
- default17 as VPTeamPage,
269
- default18 as VPTeamPageSection,
270
- default19 as VPTeamPageTitle,
271
- without_fonts_default as default,
272
- useLocalNav,
273
- useSidebar
274
- };
275
- //# sourceMappingURL=@theme_index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js"],
4
- "sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPFeatures } from './components/VPFeatures.vue';\nexport { default as VPHomeContent } from './components/VPHomeContent.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPLink } from './components/VPLink.vue';\nexport { default as VPNavBarSearch } from './components/VPNavBarSearch.vue';\nexport { default as VPSocialLink } from './components/VPSocialLink.vue';\nexport { default as VPSocialLinks } from './components/VPSocialLinks.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { useLocalNav } from './composables/local-nav';\nexport { useSidebar } from './composables/sidebar';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\nconst ignoreRE = /\\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\\b/;\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (ignoreRE.test(node.className))\n continue;\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n return buildTree(headers, high, low);\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\nfunction buildTree(data, min, max) {\n resolvedHeaders.length = 0;\n const result = [];\n const stack = [];\n data.forEach((item) => {\n const node = { ...item, children: [] };\n let parent = stack[stack.length - 1];\n while (parent && parent.level >= node.level) {\n stack.pop();\n parent = stack[stack.length - 1];\n }\n if (node.element.classList.contains('ignore-header') ||\n (parent && 'shouldIgnore' in parent)) {\n stack.push({ level: node.level, shouldIgnore: true });\n return;\n }\n if (node.level > max || node.level < min)\n return;\n resolvedHeaders.push({ element: node.element, link: node.link });\n if (parent)\n parent.children.push(node);\n else\n result.push(node);\n stack.push(node);\n });\n return result;\n}\n", "import { withBase } from 'vitepress';\nimport { isExternal, treatAsHtml } from '../../shared';\nimport { useData } from '../composables/data';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return path.startsWith('/') ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { isActive } from '../../shared';\nimport { ensureStartingSlash } from './utils';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page, hash } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hash], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n"],
5
- "mappings": "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",
6
- "names": ["default", "dir", "theme", "theme"]
7
- }
@@ -1,40 +0,0 @@
1
- {
2
- "hash": "fd840b89",
3
- "configHash": "da0579de",
4
- "lockfileHash": "eed8462a",
5
- "browserHash": "4e67151c",
6
- "optimized": {
7
- "vue": {
8
- "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
9
- "file": "vue.js",
10
- "fileHash": "2f6229d8",
11
- "needsInterop": false
12
- },
13
- "vitepress > @vue/devtools-api": {
14
- "src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
15
- "file": "vitepress___@vue_devtools-api.js",
16
- "fileHash": "10710b6e",
17
- "needsInterop": false
18
- },
19
- "vitepress > @vueuse/core": {
20
- "src": "../../../../node_modules/@vueuse/core/index.mjs",
21
- "file": "vitepress___@vueuse_core.js",
22
- "fileHash": "d9e7c45d",
23
- "needsInterop": false
24
- },
25
- "@theme/index": {
26
- "src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
27
- "file": "@theme_index.js",
28
- "fileHash": "484526eb",
29
- "needsInterop": false
30
- }
31
- },
32
- "chunks": {
33
- "chunk-BRNHR3LR": {
34
- "file": "chunk-BRNHR3LR.js"
35
- },
36
- "chunk-H6MPEGKE": {
37
- "file": "chunk-H6MPEGKE.js"
38
- }
39
- }
40
- }