@cparra/apexdocs 3.0.0 → 3.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 (264) hide show
  1. package/README.md +11 -5
  2. package/dist/cli/generate.js +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/logger-BATX7-be.js +3278 -0
  5. package/package.json +4 -1
  6. package/.github/workflows/ci.yaml +0 -22
  7. package/.github/workflows/close_stale.yml +0 -22
  8. package/.prettierrc.js +0 -7
  9. package/__mocks__/chalk.js +0 -12
  10. package/__mocks__/log-update.js +0 -6
  11. package/eslint.config.mjs +0 -10
  12. package/examples/README.md +0 -5
  13. package/examples/docsify/README.md +0 -17
  14. package/examples/docsify/apexdocs.config.ts +0 -13
  15. package/examples/docsify/classes/ASampleClass.cls +0 -57
  16. package/examples/docsify/classes/CodeControl.cls +0 -19
  17. package/examples/docsify/classes/SampleClass.cls +0 -95
  18. package/examples/docsify/classes/SampleInterface.cls +0 -17
  19. package/examples/docsify/classes/SomeDto.cls +0 -122
  20. package/examples/docsify/docs/.nojekyll +0 -0
  21. package/examples/docsify/docs/README.md +0 -25
  22. package/examples/docsify/docs/_config.yml +0 -1
  23. package/examples/docsify/docs/index.html +0 -22
  24. package/examples/docsify/docs/miscellaneous/ASampleClass.md +0 -88
  25. package/examples/docsify/docs/miscellaneous/CodeControl.md +0 -107
  26. package/examples/docsify/docs/miscellaneous/SomeDto.md +0 -244
  27. package/examples/docsify/docs/sample-classes/SampleClass.md +0 -171
  28. package/examples/docsify/docs/sample-interfaces/SampleInterface.md +0 -36
  29. package/examples/docsify/package-lock.json +0 -2459
  30. package/examples/docsify/package.json +0 -14
  31. package/examples/imported/.forceignore +0 -12
  32. package/examples/imported/README.md +0 -6
  33. package/examples/imported/config/project-scratch-def.json +0 -5
  34. package/examples/imported/docs/index.md +0 -109
  35. package/examples/imported/docs/miscellaneous/BaseClass.md +0 -13
  36. package/examples/imported/docs/miscellaneous/MultiInheritanceClass.md +0 -69
  37. package/examples/imported/docs/miscellaneous/ParentInterface.md +0 -12
  38. package/examples/imported/docs/miscellaneous/ReferencedEnum.md +0 -5
  39. package/examples/imported/docs/miscellaneous/SampleException.md +0 -21
  40. package/examples/imported/docs/miscellaneous/SampleInterface.md +0 -113
  41. package/examples/imported/docs/miscellaneous/Url.md +0 -308
  42. package/examples/imported/docs/sample-enums/SampleEnum.md +0 -33
  43. package/examples/imported/docs/samplegroup/SampleClass.md +0 -167
  44. package/examples/imported/force-app/classes/BaseClass.cls +0 -3
  45. package/examples/imported/force-app/classes/MultiInheritanceClass.cls +0 -1
  46. package/examples/imported/force-app/classes/ParentInterface.cls +0 -3
  47. package/examples/imported/force-app/classes/ReferencedEnum.cls +0 -3
  48. package/examples/imported/force-app/classes/SampleClass.cls +0 -72
  49. package/examples/imported/force-app/classes/SampleEnum.cls +0 -30
  50. package/examples/imported/force-app/classes/SampleException.cls +0 -17
  51. package/examples/imported/force-app/classes/SampleInterface.cls +0 -50
  52. package/examples/imported/force-app/classes/Url.cls +0 -196
  53. package/examples/imported/package-lock.json +0 -665
  54. package/examples/imported/package.json +0 -6
  55. package/examples/imported/scripts/process-docs.mjs +0 -16
  56. package/examples/imported/sfdx-project.json +0 -12
  57. package/examples/markdown/.forceignore +0 -12
  58. package/examples/markdown/README.md +0 -7
  59. package/examples/markdown/config/project-scratch-def.json +0 -5
  60. package/examples/markdown/docs/index.md +0 -109
  61. package/examples/markdown/docs/miscellaneous/BaseClass.md +0 -16
  62. package/examples/markdown/docs/miscellaneous/MultiInheritanceClass.md +0 -72
  63. package/examples/markdown/docs/miscellaneous/ParentInterface.md +0 -15
  64. package/examples/markdown/docs/miscellaneous/ReferencedEnum.md +0 -8
  65. package/examples/markdown/docs/miscellaneous/SampleException.md +0 -24
  66. package/examples/markdown/docs/miscellaneous/SampleInterface.md +0 -116
  67. package/examples/markdown/docs/miscellaneous/Url.md +0 -311
  68. package/examples/markdown/docs/sample-enums/SampleEnum.md +0 -36
  69. package/examples/markdown/docs/samplegroup/SampleClass.md +0 -170
  70. package/examples/markdown/force-app/classes/BaseClass.cls +0 -3
  71. package/examples/markdown/force-app/classes/MultiInheritanceClass.cls +0 -1
  72. package/examples/markdown/force-app/classes/ParentInterface.cls +0 -3
  73. package/examples/markdown/force-app/classes/ReferencedEnum.cls +0 -3
  74. package/examples/markdown/force-app/classes/SampleClass.cls +0 -72
  75. package/examples/markdown/force-app/classes/SampleEnum.cls +0 -30
  76. package/examples/markdown/force-app/classes/SampleException.cls +0 -17
  77. package/examples/markdown/force-app/classes/SampleInterface.cls +0 -50
  78. package/examples/markdown/force-app/classes/Url.cls +0 -196
  79. package/examples/markdown/package-lock.json +0 -665
  80. package/examples/markdown/package.json +0 -20
  81. package/examples/markdown/sfdx-project.json +0 -12
  82. package/examples/markdown-jsconfig/.forceignore +0 -12
  83. package/examples/markdown-jsconfig/README.md +0 -9
  84. package/examples/markdown-jsconfig/apexdocs.config.mjs +0 -22
  85. package/examples/markdown-jsconfig/config/project-scratch-def.json +0 -5
  86. package/examples/markdown-jsconfig/docs/index.md +0 -12
  87. package/examples/markdown-jsconfig/docs/miscellaneous/Url.md +0 -315
  88. package/examples/markdown-jsconfig/force-app/classes/Url.cls +0 -196
  89. package/examples/markdown-jsconfig/package-lock.json +0 -665
  90. package/examples/markdown-jsconfig/package.json +0 -15
  91. package/examples/markdown-jsconfig/sfdx-project.json +0 -12
  92. package/examples/open-api/README.md +0 -5
  93. package/examples/open-api/config/project-scratch-def.json +0 -13
  94. package/examples/open-api/docs/openapi.json +0 -14
  95. package/examples/open-api/force-app/main/default/classes/ChildClass.cls +0 -42
  96. package/examples/open-api/force-app/main/default/classes/SampleClass.cls +0 -167
  97. package/examples/open-api/force-app/main/default/restapi/SampleRestResource.cls +0 -195
  98. package/examples/open-api/force-app/main/default/restapi/SampleRestResourceToSkip.cls +0 -35
  99. package/examples/open-api/force-app/main/default/restapi/SampleRestResourceWithInnerClass.cls +0 -24
  100. package/examples/open-api/force-app/main/default/restapi/SampleRestResourceWithoutApexDocs.cls +0 -15
  101. package/examples/open-api/force-app/main/default/restapi/references/Reference1.cls +0 -9
  102. package/examples/open-api/force-app/main/default/restapi/references/Reference2.cls +0 -9
  103. package/examples/open-api/force-app/main/default/restapi/references/Reference3.cls +0 -3
  104. package/examples/open-api/force-app/main/default/restapi/references/Reference4.cls +0 -3
  105. package/examples/open-api/force-app/main/default/restapi/references/Reference5.cls +0 -3
  106. package/examples/open-api/force-app/main/default/restapi/references/Reference6.cls +0 -6
  107. package/examples/open-api/force-app/main/default/restapi/references/Reference7.cls +0 -3
  108. package/examples/open-api/package-lock.json +0 -724
  109. package/examples/open-api/package.json +0 -20
  110. package/examples/open-api/sfdx-project.json +0 -12
  111. package/examples/vitepress/.forceignore +0 -12
  112. package/examples/vitepress/README.md +0 -25
  113. package/examples/vitepress/apexdocs.config.ts +0 -113
  114. package/examples/vitepress/config/project-scratch-def.json +0 -13
  115. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +0 -259
  116. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
  117. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +0 -40
  118. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +0 -11474
  119. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +0 -7
  120. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +0 -9172
  121. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +0 -7
  122. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +0 -3
  123. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4339
  124. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  125. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -567
  126. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  127. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +0 -323
  128. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +0 -7
  129. package/examples/vitepress/docs/.vitepress/config.mts +0 -21
  130. package/examples/vitepress/docs/.vitepress/sidebar.json +0 -119
  131. package/examples/vitepress/docs/api-examples.md +0 -49
  132. package/examples/vitepress/docs/index-frontmatter.md +0 -16
  133. package/examples/vitepress/docs/index.md +0 -56
  134. package/examples/vitepress/docs/markdown-examples.md +0 -85
  135. package/examples/vitepress/docs/miscellaneous/BaseClass.md +0 -20
  136. package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +0 -76
  137. package/examples/vitepress/docs/miscellaneous/ParentInterface.md +0 -19
  138. package/examples/vitepress/docs/miscellaneous/ReferencedEnum.md +0 -15
  139. package/examples/vitepress/docs/miscellaneous/SampleException.md +0 -28
  140. package/examples/vitepress/docs/miscellaneous/SampleInterface.md +0 -116
  141. package/examples/vitepress/docs/miscellaneous/Url.md +0 -317
  142. package/examples/vitepress/docs/sample-enums/SampleEnum.md +0 -40
  143. package/examples/vitepress/docs/samplegroup/SampleClass.md +0 -174
  144. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +0 -3
  145. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +0 -1
  146. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +0 -3
  147. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +0 -5
  148. package/examples/vitepress/force-app/main/default/classes/Url.cls +0 -198
  149. package/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls +0 -73
  150. package/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls +0 -30
  151. package/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls +0 -17
  152. package/examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls +0 -46
  153. package/examples/vitepress/package-lock.json +0 -2574
  154. package/examples/vitepress/package.json +0 -18
  155. package/examples/vitepress/sfdx-project.json +0 -12
  156. package/jest.config.js +0 -10
  157. package/jest.d.ts +0 -7
  158. package/src/application/Apexdocs.ts +0 -69
  159. package/src/application/__tests__/apex-file-reader.spec.ts +0 -128
  160. package/src/application/apex-file-reader.ts +0 -56
  161. package/src/application/file-system.ts +0 -69
  162. package/src/application/file-writer.ts +0 -43
  163. package/src/application/generators/markdown.ts +0 -45
  164. package/src/application/generators/openapi.ts +0 -75
  165. package/src/cli/args.ts +0 -55
  166. package/src/cli/commands/markdown.ts +0 -56
  167. package/src/cli/commands/openapi.ts +0 -36
  168. package/src/cli/generate.ts +0 -32
  169. package/src/core/__test__/manifest.spec.ts +0 -16
  170. package/src/core/manifest.ts +0 -90
  171. package/src/core/markdown/__test__/expect-extensions.ts +0 -32
  172. package/src/core/markdown/__test__/generating-class-docs.spec.ts +0 -362
  173. package/src/core/markdown/__test__/generating-docs.spec.ts +0 -378
  174. package/src/core/markdown/__test__/generating-enum-docs.spec.ts +0 -61
  175. package/src/core/markdown/__test__/generating-interface-docs.spec.ts +0 -169
  176. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +0 -196
  177. package/src/core/markdown/__test__/inheritance-chain.test.ts +0 -54
  178. package/src/core/markdown/__test__/test-helpers.ts +0 -25
  179. package/src/core/markdown/adapters/__tests__/documentables.spec.ts +0 -109
  180. package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +0 -150
  181. package/src/core/markdown/adapters/__tests__/link-generator.spec.ts +0 -130
  182. package/src/core/markdown/adapters/__tests__/references.spec.ts +0 -136
  183. package/src/core/markdown/adapters/apex-types.ts +0 -238
  184. package/src/core/markdown/adapters/documentables.ts +0 -115
  185. package/src/core/markdown/adapters/fields-and-properties.ts +0 -45
  186. package/src/core/markdown/adapters/generate-link.ts +0 -82
  187. package/src/core/markdown/adapters/inline.ts +0 -143
  188. package/src/core/markdown/adapters/methods-and-constructors.ts +0 -133
  189. package/src/core/markdown/adapters/reference-guide.ts +0 -37
  190. package/src/core/markdown/adapters/renderable-bundle.ts +0 -61
  191. package/src/core/markdown/adapters/renderable-to-page-data.ts +0 -91
  192. package/src/core/markdown/adapters/type-utils.ts +0 -13
  193. package/src/core/markdown/adapters/types.d.ts +0 -180
  194. package/src/core/markdown/generate-docs.ts +0 -210
  195. package/src/core/markdown/reflection/__test__/filter-scope.spec.ts +0 -290
  196. package/src/core/markdown/reflection/__test__/helpers.ts +0 -18
  197. package/src/core/markdown/reflection/__test__/remove-excluded-tags.spec.ts +0 -200
  198. package/src/core/markdown/reflection/filter-scope.ts +0 -13
  199. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +0 -22
  200. package/src/core/markdown/reflection/inheritance-chain.ts +0 -23
  201. package/src/core/markdown/reflection/inherited-member-expansion.ts +0 -105
  202. package/src/core/markdown/reflection/reflect-source.ts +0 -123
  203. package/src/core/markdown/reflection/remove-excluded-tags.ts +0 -168
  204. package/src/core/markdown/reflection/sort-types-and-members.ts +0 -61
  205. package/src/core/markdown/templates/class-template.ts +0 -75
  206. package/src/core/markdown/templates/constructors-partial-template.ts +0 -32
  207. package/src/core/markdown/templates/documentable-partial-template.ts +0 -26
  208. package/src/core/markdown/templates/enum-template.ts +0 -12
  209. package/src/core/markdown/templates/fieldsPartialTemplate.ts +0 -23
  210. package/src/core/markdown/templates/grouped-members-partial-template.ts +0 -6
  211. package/src/core/markdown/templates/hookable.ts +0 -7
  212. package/src/core/markdown/templates/interface-template.ts +0 -16
  213. package/src/core/markdown/templates/methods-partial-template.ts +0 -43
  214. package/src/core/markdown/templates/reference-guide.ts +0 -14
  215. package/src/core/markdown/templates/template.ts +0 -114
  216. package/src/core/markdown/templates/type-doc-partial.ts +0 -27
  217. package/src/core/markdown/utils.ts +0 -3
  218. package/src/core/openApiSettings.ts +0 -41
  219. package/src/core/openapi/__tests__/manifest-factory.spec.ts +0 -16
  220. package/src/core/openapi/__tests__/open-api-docs-processor.spec.ts +0 -59
  221. package/src/core/openapi/__tests__/open-api.spec.ts +0 -22
  222. package/src/core/openapi/apex-doc-types.ts +0 -26
  223. package/src/core/openapi/apex-type-wrappers/ClassMirrorWrapper.ts +0 -12
  224. package/src/core/openapi/apex-type-wrappers/MethodMirrorWrapper.ts +0 -11
  225. package/src/core/openapi/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +0 -15
  226. package/src/core/openapi/file-container.ts +0 -13
  227. package/src/core/openapi/manifest-factory.ts +0 -16
  228. package/src/core/openapi/open-api-docs-processor.ts +0 -93
  229. package/src/core/openapi/open-api-types.ts +0 -119
  230. package/src/core/openapi/open-api.ts +0 -45
  231. package/src/core/openapi/openapi-type-file.ts +0 -12
  232. package/src/core/openapi/parser.ts +0 -163
  233. package/src/core/openapi/parsers/Builder.ts +0 -40
  234. package/src/core/openapi/parsers/MethodParser.ts +0 -249
  235. package/src/core/openapi/parsers/ParameterObjectBuilder.ts +0 -13
  236. package/src/core/openapi/parsers/ReferenceBuilder.ts +0 -299
  237. package/src/core/openapi/parsers/RequestBodyBuilder.ts +0 -19
  238. package/src/core/openapi/parsers/ResponsesBuilder.ts +0 -21
  239. package/src/core/openapi/parsers/__tests__/MethodParser.spec.ts +0 -44
  240. package/src/core/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +0 -68
  241. package/src/core/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +0 -751
  242. package/src/core/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +0 -64
  243. package/src/core/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +0 -55
  244. package/src/core/openapi/transpiler.ts +0 -17
  245. package/src/core/openapi/types-repository.ts +0 -54
  246. package/src/core/parse-apex-metadata.ts +0 -30
  247. package/src/core/shared/types.d.ts +0 -150
  248. package/src/core/shared/utils.ts +0 -5
  249. package/src/defaults.ts +0 -21
  250. package/src/index.ts +0 -110
  251. package/src/test-helpers/AnnotationBuilder.ts +0 -29
  252. package/src/test-helpers/ClassMirrorBuilder.ts +0 -69
  253. package/src/test-helpers/DocCommentAnnotationBuilder.ts +0 -24
  254. package/src/test-helpers/DocCommentBuilder.ts +0 -36
  255. package/src/test-helpers/FieldMirrorBuilder.ts +0 -59
  256. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -39
  257. package/src/test-helpers/MethodMirrorBuilder.ts +0 -77
  258. package/src/test-helpers/SettingsBuilder.ts +0 -17
  259. package/src/util/error-logger.ts +0 -92
  260. package/src/util/fp.ts +0 -3
  261. package/src/util/logger.ts +0 -51
  262. package/src/util/string-utils.ts +0 -7
  263. package/tsconfig.json +0 -25
  264. package/tslint.json +0 -6
@@ -1,20 +0,0 @@
1
- {
2
- "name": "openapi-example",
3
- "scripts": {
4
- "docs:clean": "rimraf docs",
5
- "docs:gen": "ts-node ../../src/cli/generate.ts openapi",
6
- "apexdocs:build": "npm run docs:clean && npm run docs:gen"
7
- },
8
- "devDependencies": {
9
- "ts-node": "^10.9.2"
10
- },
11
- "dependencies": {
12
- "rimraf": "^5.0.7"
13
- },
14
- "apexdocs": {
15
- "sourceDir": "force-app",
16
- "title": "Open API Example",
17
- "namespace": "openapi",
18
- "apiVersion": "3.0.0"
19
- }
20
- }
@@ -1,12 +0,0 @@
1
- {
2
- "packageDirectories": [
3
- {
4
- "path": "force-app",
5
- "default": true
6
- }
7
- ],
8
- "name": "openapi",
9
- "namespace": "",
10
- "sfdcLoginUrl": "https://login.salesforce.com",
11
- "sourceApiVersion": "61.0"
12
- }
@@ -1,12 +0,0 @@
1
- # List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status
2
- # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm
3
- #
4
-
5
- package.xml
6
-
7
- # LWC configuration files
8
- **/jsconfig.json
9
- **/.eslintrc.json
10
-
11
- # LWC Jest
12
- **/__tests__/**
@@ -1,25 +0,0 @@
1
- # Vitepress Example
2
-
3
- This project contains an example on how to generate documentation to be rendered with [Vitepress](https://vitepress.dev/).
4
-
5
- ## Getting Started
6
-
7
- * Follow the Vitepress installation instructions [here](https://vitepress.dev/guide/getting-started#installation).
8
- * Keep track of where you initialized your VitePress config. If it is different than the `docs` directory, you will
9
- need to make sure that it matches the `targetDir` when configuring ApexDocs.
10
-
11
- ## Configuration
12
-
13
- Take a look at the `apexdocs.config.ts` file to see how the configuration is set up.
14
-
15
- Pay special attention to the following:
16
-
17
- * `transformReference` -> This updates the reference links generated by ApexDocs to the preferred format for Vitepress.
18
-
19
- This is **not** required, but Vitepress says in their documentation that they prefer when the links do not contain the .md extension.
20
-
21
- * `transformReferenceGuide` -> This ensures that the `index` file always contains the correct frontmatter that Vitpress expects.
22
-
23
- * `transformDocs` -> We use this hook to create a `sidebar` file that Vitepress uses to generate the sidebar navigation.
24
-
25
- * `transformDocPage` -> This updates each individual page's frontmatter so that it has the correct title.
@@ -1,113 +0,0 @@
1
- import { defineMarkdownConfig, DocPageData } from '../../src';
2
- import * as fs from 'node:fs';
3
-
4
- function loadFileAsync(filePath: string): Promise<string> {
5
- return new Promise((resolve, reject) => {
6
- fs.readFile(filePath, 'utf8', (err, data) => {
7
- if (err) {
8
- reject(err);
9
- } else {
10
- resolve(data);
11
- }
12
- });
13
- });
14
- }
15
-
16
- function writeFileAsync(filePath: string, data: string): Promise<void> {
17
- return new Promise((resolve, reject) => {
18
- fs.writeFile(filePath, data, (err) => {
19
- if (err) {
20
- reject(err);
21
- } else {
22
- resolve();
23
- }
24
- });
25
- });
26
- }
27
-
28
- export default defineMarkdownConfig({
29
- sourceDir: 'force-app',
30
- scope: ['global', 'public', 'protected', 'private', 'namespaceaccessible'],
31
- sortAlphabetically: true,
32
- namespace: 'apexdocs',
33
- transformReference: (reference) => {
34
- return {
35
- // remove the trailing .md
36
- referencePath: reference.referencePath.replace(/\.md$/, ''),
37
- };
38
- },
39
- transformReferenceGuide: async () => {
40
- const frontMatter = await loadFileAsync('./docs/index-frontmatter.md');
41
- return {
42
- frontmatter: frontMatter,
43
- };
44
- },
45
- excludeTags: ['internal'],
46
- transformDocs: async (docs) => {
47
- // Update sidebar
48
- const sidebar = [
49
- {
50
- text: 'API Reference',
51
- items: [
52
- {
53
- text: 'Grouped By Type',
54
- items: [
55
- {
56
- text: 'Classes',
57
- items: docs.filter((doc) => doc.source.type === 'class').map(toSidebarLink),
58
- },
59
- {
60
- text: 'Interfaces',
61
- items: docs.filter((doc) => doc.source.type === 'interface').map(toSidebarLink),
62
- },
63
- {
64
- text: 'Enums',
65
- items: docs.filter((doc) => doc.source.type === 'enum').map(toSidebarLink),
66
- },
67
- ],
68
- },
69
- {
70
- text: 'Grouped by Group',
71
- items: Array.from(extractGroups(docs)).map(([groupName, groupDocs]) => ({
72
- text: groupName,
73
- items: groupDocs.map(toSidebarLink),
74
- })),
75
- },
76
- ],
77
- },
78
- ];
79
- await writeFileAsync('./docs/.vitepress/sidebar.json', JSON.stringify(sidebar, null, 2));
80
-
81
- return docs;
82
- },
83
- transformDocPage: async (docPage) => {
84
- return {
85
- ...docPage,
86
- frontmatter: {
87
- title: docPage.source.name,
88
- },
89
- };
90
- },
91
- });
92
-
93
- function toSidebarLink(doc: DocPageData) {
94
- return {
95
- text: doc.source.name,
96
- link: doc.outputDocPath,
97
- };
98
- }
99
-
100
- function extractGroups(docs: DocPageData[]) {
101
- const groups = new Map<string, DocPageData[]>();
102
- for (const doc of docs) {
103
- if (!doc.group) {
104
- continue;
105
- }
106
-
107
- const groupDocs = groups.get(doc.group) ?? [];
108
- groupDocs.push(doc);
109
- groups.set(doc.group, groupDocs);
110
- }
111
-
112
- return groups;
113
- }
@@ -1,13 +0,0 @@
1
- {
2
- "orgName": "vitepress example",
3
- "edition": "Developer",
4
- "features": ["EnableSetPasswordInApi"],
5
- "settings": {
6
- "lightningExperienceSettings": {
7
- "enableS1DesktopEnabled": true
8
- },
9
- "mobileSettings": {
10
- "enableS1EncryptedStoragePref2": false
11
- }
12
- }
13
- }
@@ -1,259 +0,0 @@
1
- import {
2
- useMediaQuery
3
- } from "./chunk-E5DZZB2I.js";
4
- import {
5
- computed,
6
- ref,
7
- shallowRef,
8
- watch
9
- } from "./chunk-574YRH25.js";
10
-
11
- // node_modules/vitepress/dist/client/theme-default/index.js
12
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/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/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
16
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/base.css";
17
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/icons.css";
18
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
19
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
20
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
21
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
22
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
23
- import "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
24
- import VPBadge from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
25
- import Layout from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/Layout.vue";
26
- import { default as default2 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
27
- import { default as default3 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue";
28
- import { default as default4 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue";
29
- import { default as default5 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPHomeContent.vue";
30
- import { default as default6 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
31
- import { default as default7 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
32
- import { default as default8 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
33
- import { default as default9 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
34
- import { default as default10 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue";
35
- import { default as default11 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
36
- import { default as default12 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
37
- import { default as default13 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
38
- import { default as default14 } from "/Users/cesarparra/IdeaProjects/apexdocs/examples/vitepress/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
39
-
40
- // node_modules/vitepress/dist/client/theme-default/support/utils.js
41
- import { withBase } from "vitepress";
42
-
43
- // node_modules/vitepress/dist/client/theme-default/composables/data.js
44
- import { useData as useData$ } from "vitepress";
45
- var useData = useData$;
46
-
47
- // node_modules/vitepress/dist/client/theme-default/support/utils.js
48
- function ensureStartingSlash(path) {
49
- return /^\//.test(path) ? path : `/${path}`;
50
- }
51
-
52
- // node_modules/vitepress/dist/client/theme-default/support/sidebar.js
53
- function getSidebar(_sidebar, path) {
54
- if (Array.isArray(_sidebar))
55
- return addBase(_sidebar);
56
- if (_sidebar == null)
57
- return [];
58
- path = ensureStartingSlash(path);
59
- const dir = Object.keys(_sidebar).sort((a, b) => {
60
- return b.split("/").length - a.split("/").length;
61
- }).find((dir2) => {
62
- return path.startsWith(ensureStartingSlash(dir2));
63
- });
64
- const sidebar = dir ? _sidebar[dir] : [];
65
- return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base);
66
- }
67
- function getSidebarGroups(sidebar) {
68
- const groups = [];
69
- let lastGroupIndex = 0;
70
- for (const index in sidebar) {
71
- const item = sidebar[index];
72
- if (item.items) {
73
- lastGroupIndex = groups.push(item);
74
- continue;
75
- }
76
- if (!groups[lastGroupIndex]) {
77
- groups.push({ items: [] });
78
- }
79
- groups[lastGroupIndex].items.push(item);
80
- }
81
- return groups;
82
- }
83
- function addBase(items, _base) {
84
- return [...items].map((_item) => {
85
- const item = { ..._item };
86
- const base = item.base || _base;
87
- if (base && item.link)
88
- item.link = base + item.link;
89
- if (item.items)
90
- item.items = addBase(item.items, base);
91
- return item;
92
- });
93
- }
94
-
95
- // node_modules/vitepress/dist/client/theme-default/composables/sidebar.js
96
- function useSidebar() {
97
- const { frontmatter, page, theme: theme2 } = useData();
98
- const is960 = useMediaQuery("(min-width: 960px)");
99
- const isOpen = ref(false);
100
- const _sidebar = computed(() => {
101
- const sidebarConfig = theme2.value.sidebar;
102
- const relativePath = page.value.relativePath;
103
- return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];
104
- });
105
- const sidebar = ref(_sidebar.value);
106
- watch(_sidebar, (next, prev) => {
107
- if (JSON.stringify(next) !== JSON.stringify(prev))
108
- sidebar.value = _sidebar.value;
109
- });
110
- const hasSidebar = computed(() => {
111
- return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home";
112
- });
113
- const leftAside = computed(() => {
114
- if (hasAside)
115
- return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left";
116
- return false;
117
- });
118
- const hasAside = computed(() => {
119
- if (frontmatter.value.layout === "home")
120
- return false;
121
- if (frontmatter.value.aside != null)
122
- return !!frontmatter.value.aside;
123
- return theme2.value.aside !== false;
124
- });
125
- const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);
126
- const sidebarGroups = computed(() => {
127
- return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];
128
- });
129
- function open() {
130
- isOpen.value = true;
131
- }
132
- function close() {
133
- isOpen.value = false;
134
- }
135
- function toggle() {
136
- isOpen.value ? close() : open();
137
- }
138
- return {
139
- isOpen,
140
- sidebar,
141
- sidebarGroups,
142
- hasSidebar,
143
- hasAside,
144
- leftAside,
145
- isSidebarEnabled,
146
- open,
147
- close,
148
- toggle
149
- };
150
- }
151
-
152
- // node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
153
- import { onContentUpdated } from "vitepress";
154
-
155
- // node_modules/vitepress/dist/client/theme-default/composables/outline.js
156
- import { getScrollOffset } from "vitepress";
157
- var resolvedHeaders = [];
158
- function getHeaders(range) {
159
- const headers = [
160
- ...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")
161
- ].filter((el) => el.id && el.hasChildNodes()).map((el) => {
162
- const level = Number(el.tagName[1]);
163
- return {
164
- element: el,
165
- title: serializeHeader(el),
166
- link: "#" + el.id,
167
- level
168
- };
169
- });
170
- return resolveHeaders(headers, range);
171
- }
172
- function serializeHeader(h) {
173
- let ret = "";
174
- for (const node of h.childNodes) {
175
- if (node.nodeType === 1) {
176
- if (node.classList.contains("VPBadge") || node.classList.contains("header-anchor") || node.classList.contains("ignore-header")) {
177
- continue;
178
- }
179
- ret += node.textContent;
180
- } else if (node.nodeType === 3) {
181
- ret += node.textContent;
182
- }
183
- }
184
- return ret.trim();
185
- }
186
- function resolveHeaders(headers, range) {
187
- if (range === false) {
188
- return [];
189
- }
190
- const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2;
191
- const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange;
192
- headers = headers.filter((h) => h.level >= high && h.level <= low);
193
- resolvedHeaders.length = 0;
194
- for (const { element, link } of headers) {
195
- resolvedHeaders.push({ element, link });
196
- }
197
- const ret = [];
198
- outer: for (let i = 0; i < headers.length; i++) {
199
- const cur = headers[i];
200
- if (i === 0) {
201
- ret.push(cur);
202
- } else {
203
- for (let j = i - 1; j >= 0; j--) {
204
- const prev = headers[j];
205
- if (prev.level < cur.level) {
206
- ;
207
- (prev.children || (prev.children = [])).push(cur);
208
- continue outer;
209
- }
210
- }
211
- ret.push(cur);
212
- }
213
- }
214
- return ret;
215
- }
216
-
217
- // node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
218
- function useLocalNav() {
219
- const { theme: theme2, frontmatter } = useData();
220
- const headers = shallowRef([]);
221
- const hasLocalNav = computed(() => {
222
- return headers.value.length > 0;
223
- });
224
- onContentUpdated(() => {
225
- headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline);
226
- });
227
- return {
228
- headers,
229
- hasLocalNav
230
- };
231
- }
232
-
233
- // node_modules/vitepress/dist/client/theme-default/without-fonts.js
234
- var theme = {
235
- Layout,
236
- enhanceApp: ({ app }) => {
237
- app.component("Badge", VPBadge);
238
- }
239
- };
240
- var without_fonts_default = theme;
241
- export {
242
- default2 as VPBadge,
243
- default4 as VPButton,
244
- default9 as VPDocAsideSponsors,
245
- default5 as VPHomeContent,
246
- default7 as VPHomeFeatures,
247
- default6 as VPHomeHero,
248
- default8 as VPHomeSponsors,
249
- default3 as VPImage,
250
- default10 as VPSponsors,
251
- default14 as VPTeamMembers,
252
- default11 as VPTeamPage,
253
- default13 as VPTeamPageSection,
254
- default12 as VPTeamPageTitle,
255
- without_fonts_default as default,
256
- useLocalNav,
257
- useSidebar
258
- };
259
- //# 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/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", "../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.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 VPImage } from './components/VPImage.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPHomeContent } from './components/VPHomeContent.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { useSidebar } from './composables/sidebar';\nexport { useLocalNav } from './composables/local-nav';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { withBase } from 'vitepress';\nimport { useData } from '../composables/data';\nimport { isExternal, treatAsHtml } from '../../shared';\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 /^\\//.test(path) ? 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 { ensureStartingSlash } from './utils';\nimport { isActive } from '../../shared';\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", "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';\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 (node.classList.contains('VPBadge') ||\n node.classList.contains('header-anchor') ||\n node.classList.contains('ignore-header')) {\n continue;\n }\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 headers = headers.filter((h) => h.level >= high && h.level <= low);\n // clear previous caches\n resolvedHeaders.length = 0;\n // update global header list for active link rendering\n for (const { element, link } of headers) {\n resolvedHeaders.push({ element, link });\n }\n const ret = [];\n outer: for (let i = 0; i < headers.length; i++) {\n const cur = headers[i];\n if (i === 0) {\n ret.push(cur);\n }\n else {\n for (let j = i - 1; j >= 0; j--) {\n const prev = headers[j];\n if (prev.level < cur.level) {\n ;\n (prev.children || (prev.children = [])).push(cur);\n continue outer;\n }\n }\n ret.push(cur);\n }\n }\n return ret;\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}\n"],
5
- "mappings": "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",
6
- "names": ["default", "dir", "theme", "theme"]
7
- }
@@ -1,40 +0,0 @@
1
- {
2
- "hash": "4a05af45",
3
- "configHash": "7f7b0dad",
4
- "lockfileHash": "8018888b",
5
- "browserHash": "73d477e4",
6
- "optimized": {
7
- "vue": {
8
- "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
9
- "file": "vue.js",
10
- "fileHash": "d22fde12",
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": "5478d716",
17
- "needsInterop": false
18
- },
19
- "vitepress > @vueuse/core": {
20
- "src": "../../../../node_modules/@vueuse/core/index.mjs",
21
- "file": "vitepress___@vueuse_core.js",
22
- "fileHash": "23bf9c76",
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": "07dcd573",
29
- "needsInterop": false
30
- }
31
- },
32
- "chunks": {
33
- "chunk-E5DZZB2I": {
34
- "file": "chunk-E5DZZB2I.js"
35
- },
36
- "chunk-574YRH25": {
37
- "file": "chunk-574YRH25.js"
38
- }
39
- }
40
- }