@cparra/apexdocs 2.25.0-alpha.3 → 2.25.0-alpha.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 (455) hide show
  1. package/dist/cli/generate.js +2746 -40
  2. package/dist/defaults-DUwru49Q.js +12 -0
  3. package/dist/defaults-SH0Rsi5E.js +11 -0
  4. package/dist/index.d.ts +62 -2
  5. package/dist/index.js +36 -1
  6. package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +1 -1
  7. package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +1 -1
  8. package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +1 -1
  9. package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +1 -1
  10. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +1 -1
  11. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +1 -1
  12. package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +320 -0
  13. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +1 -1
  14. package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +1 -1
  15. package/examples/plain-markdown/docs/index.md +83 -1
  16. package/examples/plain-markdown/force-app/classes/Url.cls +194 -0
  17. package/examples/plain-markdown/package.json +2 -2
  18. package/examples/vitepress/.forceignore +12 -0
  19. package/examples/vitepress/apexdocs.config.ts +108 -0
  20. package/examples/vitepress/config/project-scratch-def.json +13 -0
  21. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
  22. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
  23. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
  24. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
  25. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
  26. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
  27. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
  28. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
  29. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
  30. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  31. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
  32. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  33. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
  34. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
  35. package/examples/vitepress/docs/.vitepress/config.mts +21 -0
  36. package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
  37. package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
  38. package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
  39. package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
  40. package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
  41. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
  42. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
  43. package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
  44. package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
  45. package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
  46. package/examples/vitepress/docs/api-examples.md +49 -0
  47. package/examples/vitepress/docs/index-frontmatter.md +16 -0
  48. package/examples/vitepress/docs/index.md +127 -0
  49. package/examples/vitepress/docs/markdown-examples.md +85 -0
  50. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
  51. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
  52. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
  53. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
  54. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
  55. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
  56. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
  57. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
  58. package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
  59. package/examples/vitepress/package-lock.json +2574 -0
  60. package/examples/vitepress/package.json +18 -0
  61. package/examples/vitepress/sfdx-project.json +12 -0
  62. package/jest.config.js +1 -0
  63. package/package.json +10 -6
  64. package/src/application/Apexdocs.ts +16 -106
  65. package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
  66. package/src/application/apex-file-reader.ts +42 -0
  67. package/src/application/file-writer.ts +25 -0
  68. package/src/application/generators/markdown.ts +53 -0
  69. package/src/application/generators/openapi.ts +56 -0
  70. package/src/cli/args.ts +17 -110
  71. package/src/cli/commands/markdown.ts +58 -0
  72. package/src/cli/generate.ts +7 -7
  73. package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
  74. package/src/core/manifest.ts +57 -51
  75. package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
  76. package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
  77. package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
  78. package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
  79. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
  80. package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
  81. package/src/core/markdown/__test__/test-helpers.ts +22 -0
  82. package/src/core/markdown/adapters/__tests__/documentables.spec.ts +109 -0
  83. package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
  84. package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +12 -1
  85. package/src/core/{adapters → markdown/adapters}/apex-types.ts +8 -5
  86. package/src/core/{adapters → markdown/adapters}/documentables.ts +2 -62
  87. package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +7 -2
  88. package/src/core/{adapters/references.ts → markdown/adapters/inline.ts} +43 -10
  89. package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +7 -2
  90. package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
  91. package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
  92. package/src/core/{adapters → markdown/adapters}/type-utils.ts +5 -1
  93. package/src/core/{adapters → markdown/adapters}/types.d.ts +24 -3
  94. package/src/core/markdown/generate-docs.ts +158 -0
  95. package/src/core/markdown/reflection/error-handling.ts +37 -0
  96. package/src/core/markdown/reflection/filter-scope.ts +13 -0
  97. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
  98. package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
  99. package/src/core/markdown/reflection/reflect-source.ts +41 -0
  100. package/src/core/markdown/reflection/sort-members.ts +59 -0
  101. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
  102. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +1 -1
  103. package/src/core/markdown/templates/hookable.ts +7 -0
  104. package/src/core/{template.ts → markdown/templates/template.ts} +15 -12
  105. package/src/core/markdown/utils.ts +3 -0
  106. package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  107. package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  108. package/src/core/openapi/file-container.ts +13 -0
  109. package/src/{service → core/openapi}/manifest-factory.ts +3 -3
  110. package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
  111. package/src/core/openapi/openapi-type-file.ts +14 -0
  112. package/src/{service → core/openapi}/parser.ts +8 -8
  113. package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
  114. package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
  115. package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  116. package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
  117. package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  118. package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
  119. package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  120. package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  121. package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  122. package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  123. package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  124. package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
  125. package/src/{model → core/openapi}/types-repository.ts +0 -9
  126. package/src/core/parse-apex-metadata.ts +14 -0
  127. package/src/core/settings.ts +56 -0
  128. package/src/core/shared/types.d.ts +92 -0
  129. package/src/core/shared/utils.ts +5 -0
  130. package/src/defaults.ts +8 -0
  131. package/src/index.ts +34 -2
  132. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
  133. package/src/test-helpers/SettingsBuilder.ts +1 -5
  134. package/src/util/fp.ts +3 -0
  135. package/src/util/logger.ts +2 -2
  136. package/src/util/string-utils.ts +0 -4
  137. package/tsconfig.json +5 -1
  138. package/apexdocs.config.ts +0 -13
  139. package/dist/__spec__/core/expect-extensions.d.ts +0 -3
  140. package/dist/__spec__/core/expect-extensions.js +0 -55
  141. package/dist/__spec__/core/expect-extensions.js.map +0 -1
  142. package/dist/__spec__/core/generating-class-docs.spec.d.ts +0 -1
  143. package/dist/__spec__/core/generating-class-docs.spec.js +0 -444
  144. package/dist/__spec__/core/generating-class-docs.spec.js.map +0 -1
  145. package/dist/__spec__/core/generating-enum-docs.spec.d.ts +0 -1
  146. package/dist/__spec__/core/generating-enum-docs.spec.js +0 -306
  147. package/dist/__spec__/core/generating-enum-docs.spec.js.map +0 -1
  148. package/dist/__spec__/core/generating-interface-docs.spec.d.ts +0 -1
  149. package/dist/__spec__/core/generating-interface-docs.spec.js +0 -364
  150. package/dist/__spec__/core/generating-interface-docs.spec.js.map +0 -1
  151. package/dist/__spec__/core/generating-reference-guide.spec.d.ts +0 -1
  152. package/dist/__spec__/core/generating-reference-guide.spec.js +0 -162
  153. package/dist/__spec__/core/generating-reference-guide.spec.js.map +0 -1
  154. package/dist/__spec__/core/test-helpers.d.ts +0 -2
  155. package/dist/__spec__/core/test-helpers.js +0 -12
  156. package/dist/__spec__/core/test-helpers.js.map +0 -1
  157. package/dist/application/Apexdocs.d.ts +0 -15
  158. package/dist/application/Apexdocs.js +0 -113
  159. package/dist/application/Apexdocs.js.map +0 -1
  160. package/dist/application/generators/generate-markdown-files.d.ts +0 -3
  161. package/dist/application/generators/generate-markdown-files.js +0 -64
  162. package/dist/application/generators/generate-markdown-files.js.map +0 -1
  163. package/dist/cli/args.d.ts +0 -39
  164. package/dist/cli/args.js +0 -154
  165. package/dist/cli/args.js.map +0 -1
  166. package/dist/cli/generate.d.ts +0 -2
  167. package/dist/cli/generate.js.map +0 -1
  168. package/dist/core/__test__/inheritance-chain.test.d.ts +0 -1
  169. package/dist/core/__test__/inheritance-chain.test.js +0 -42
  170. package/dist/core/__test__/inheritance-chain.test.js.map +0 -1
  171. package/dist/core/adapters/apex-types.d.ts +0 -6
  172. package/dist/core/adapters/apex-types.js +0 -109
  173. package/dist/core/adapters/apex-types.js.map +0 -1
  174. package/dist/core/adapters/documentables.d.ts +0 -7
  175. package/dist/core/adapters/documentables.js +0 -154
  176. package/dist/core/adapters/documentables.js.map +0 -1
  177. package/dist/core/adapters/fields-and-properties.d.ts +0 -3
  178. package/dist/core/adapters/fields-and-properties.js +0 -37
  179. package/dist/core/adapters/fields-and-properties.js.map +0 -1
  180. package/dist/core/adapters/methods-and-constructors.d.ts +0 -5
  181. package/dist/core/adapters/methods-and-constructors.js +0 -100
  182. package/dist/core/adapters/methods-and-constructors.js.map +0 -1
  183. package/dist/core/adapters/references.d.ts +0 -4
  184. package/dist/core/adapters/references.js +0 -78
  185. package/dist/core/adapters/references.js.map +0 -1
  186. package/dist/core/adapters/type-utils.d.ts +0 -3
  187. package/dist/core/adapters/type-utils.js +0 -12
  188. package/dist/core/adapters/type-utils.js.map +0 -1
  189. package/dist/core/apex-bundle.d.ts +0 -6
  190. package/dist/core/apex-bundle.js +0 -11
  191. package/dist/core/apex-bundle.js.map +0 -1
  192. package/dist/core/generate-docs.d.ts +0 -28
  193. package/dist/core/generate-docs.js +0 -296
  194. package/dist/core/generate-docs.js.map +0 -1
  195. package/dist/core/inheritance-chain.d.ts +0 -2
  196. package/dist/core/inheritance-chain.js +0 -36
  197. package/dist/core/inheritance-chain.js.map +0 -1
  198. package/dist/core/manifest.d.ts +0 -22
  199. package/dist/core/manifest.js +0 -53
  200. package/dist/core/manifest.js.map +0 -1
  201. package/dist/core/template.d.ts +0 -10
  202. package/dist/core/template.js +0 -97
  203. package/dist/core/template.js.map +0 -1
  204. package/dist/core/templates/reference-guide.d.ts +0 -1
  205. package/dist/core/templates/reference-guide.js +0 -18
  206. package/dist/core/templates/reference-guide.js.map +0 -1
  207. package/dist/index.js.map +0 -1
  208. package/dist/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -7
  209. package/dist/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -14
  210. package/dist/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -1
  211. package/dist/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -7
  212. package/dist/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -12
  213. package/dist/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -1
  214. package/dist/model/markdown-file.d.ts +0 -16
  215. package/dist/model/markdown-file.js +0 -111
  216. package/dist/model/markdown-file.js.map +0 -1
  217. package/dist/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -8
  218. package/dist/model/markdown-generation-util/doc-comment-annotation-util.js +0 -47
  219. package/dist/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
  220. package/dist/model/markdown-generation-util/field-declaration-util.d.ts +0 -3
  221. package/dist/model/markdown-generation-util/field-declaration-util.js +0 -55
  222. package/dist/model/markdown-generation-util/field-declaration-util.js.map +0 -1
  223. package/dist/model/markdown-generation-util/index.d.ts +0 -3
  224. package/dist/model/markdown-generation-util/index.js +0 -20
  225. package/dist/model/markdown-generation-util/index.js.map +0 -1
  226. package/dist/model/markdown-generation-util/method-declaration-util.d.ts +0 -4
  227. package/dist/model/markdown-generation-util/method-declaration-util.js +0 -115
  228. package/dist/model/markdown-generation-util/method-declaration-util.js.map +0 -1
  229. package/dist/model/markdown-generation-util/type-declaration-util.d.ts +0 -3
  230. package/dist/model/markdown-generation-util/type-declaration-util.js +0 -82
  231. package/dist/model/markdown-generation-util/type-declaration-util.js.map +0 -1
  232. package/dist/model/markdown-home-file.d.ts +0 -11
  233. package/dist/model/markdown-home-file.js +0 -57
  234. package/dist/model/markdown-home-file.js.map +0 -1
  235. package/dist/model/markdown-type-file.d.ts +0 -26
  236. package/dist/model/markdown-type-file.js +0 -137
  237. package/dist/model/markdown-type-file.js.map +0 -1
  238. package/dist/model/openapi/apex-doc-types.d.ts +0 -19
  239. package/dist/model/openapi/apex-doc-types.js +0 -5
  240. package/dist/model/openapi/apex-doc-types.js.map +0 -1
  241. package/dist/model/openapi/open-api-types.d.ts +0 -93
  242. package/dist/model/openapi/open-api-types.js +0 -3
  243. package/dist/model/openapi/open-api-types.js.map +0 -1
  244. package/dist/model/openapi/open-api.d.ts +0 -16
  245. package/dist/model/openapi/open-api.js +0 -34
  246. package/dist/model/openapi/open-api.js.map +0 -1
  247. package/dist/model/openapi/openapi-type-file.d.ts +0 -7
  248. package/dist/model/openapi/openapi-type-file.js +0 -17
  249. package/dist/model/openapi/openapi-type-file.js.map +0 -1
  250. package/dist/model/outputFile.d.ts +0 -10
  251. package/dist/model/outputFile.js +0 -22
  252. package/dist/model/outputFile.js.map +0 -1
  253. package/dist/model/types-repository.d.ts +0 -16
  254. package/dist/model/types-repository.js +0 -54
  255. package/dist/model/types-repository.js.map +0 -1
  256. package/dist/service/apex-file-reader.d.ts +0 -14
  257. package/dist/service/apex-file-reader.js +0 -49
  258. package/dist/service/apex-file-reader.js.map +0 -1
  259. package/dist/service/file-system.d.ts +0 -14
  260. package/dist/service/file-system.js +0 -48
  261. package/dist/service/file-system.js.map +0 -1
  262. package/dist/service/file-writer.d.ts +0 -6
  263. package/dist/service/file-writer.js +0 -57
  264. package/dist/service/file-writer.js.map +0 -1
  265. package/dist/service/manifest-factory.d.ts +0 -10
  266. package/dist/service/manifest-factory.js +0 -17
  267. package/dist/service/manifest-factory.js.map +0 -1
  268. package/dist/service/metadata-processor.d.ts +0 -3
  269. package/dist/service/metadata-processor.js +0 -17
  270. package/dist/service/metadata-processor.js.map +0 -1
  271. package/dist/service/parser.d.ts +0 -21
  272. package/dist/service/parser.js +0 -138
  273. package/dist/service/parser.js.map +0 -1
  274. package/dist/service/state.d.ts +0 -9
  275. package/dist/service/state.js +0 -20
  276. package/dist/service/state.js.map +0 -1
  277. package/dist/service/walkers/class-walker.d.ts +0 -4
  278. package/dist/service/walkers/class-walker.js +0 -33
  279. package/dist/service/walkers/class-walker.js.map +0 -1
  280. package/dist/service/walkers/enum-walker.d.ts +0 -4
  281. package/dist/service/walkers/enum-walker.js +0 -11
  282. package/dist/service/walkers/enum-walker.js.map +0 -1
  283. package/dist/service/walkers/interface-walker.d.ts +0 -4
  284. package/dist/service/walkers/interface-walker.js +0 -15
  285. package/dist/service/walkers/interface-walker.js.map +0 -1
  286. package/dist/service/walkers/walker-factory.d.ts +0 -5
  287. package/dist/service/walkers/walker-factory.js +0 -21
  288. package/dist/service/walkers/walker-factory.js.map +0 -1
  289. package/dist/service/walkers/walker.d.ts +0 -19
  290. package/dist/service/walkers/walker.js +0 -17
  291. package/dist/service/walkers/walker.js.map +0 -1
  292. package/dist/settings.d.ts +0 -67
  293. package/dist/settings.js +0 -92
  294. package/dist/settings.js.map +0 -1
  295. package/dist/test-helpers/AnnotationBuilder.d.ts +0 -12
  296. package/dist/test-helpers/AnnotationBuilder.js +0 -31
  297. package/dist/test-helpers/AnnotationBuilder.js.map +0 -1
  298. package/dist/test-helpers/ClassMirrorBuilder.d.ts +0 -22
  299. package/dist/test-helpers/ClassMirrorBuilder.js +0 -64
  300. package/dist/test-helpers/ClassMirrorBuilder.js.map +0 -1
  301. package/dist/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -8
  302. package/dist/test-helpers/DocCommentAnnotationBuilder.js +0 -26
  303. package/dist/test-helpers/DocCommentAnnotationBuilder.js.map +0 -1
  304. package/dist/test-helpers/DocCommentBuilder.d.ts +0 -12
  305. package/dist/test-helpers/DocCommentBuilder.js +0 -38
  306. package/dist/test-helpers/DocCommentBuilder.js.map +0 -1
  307. package/dist/test-helpers/FieldMirrorBuilder.d.ts +0 -18
  308. package/dist/test-helpers/FieldMirrorBuilder.js +0 -54
  309. package/dist/test-helpers/FieldMirrorBuilder.js.map +0 -1
  310. package/dist/test-helpers/InterfaceMirrorBuilder.d.ts +0 -16
  311. package/dist/test-helpers/InterfaceMirrorBuilder.js +0 -43
  312. package/dist/test-helpers/InterfaceMirrorBuilder.js.map +0 -1
  313. package/dist/test-helpers/MethodMirrorBuilder.d.ts +0 -29
  314. package/dist/test-helpers/MethodMirrorBuilder.js +0 -72
  315. package/dist/test-helpers/MethodMirrorBuilder.js.map +0 -1
  316. package/dist/test-helpers/SettingsBuilder.d.ts +0 -8
  317. package/dist/test-helpers/SettingsBuilder.js +0 -28
  318. package/dist/test-helpers/SettingsBuilder.js.map +0 -1
  319. package/dist/transpiler/factory.d.ts +0 -6
  320. package/dist/transpiler/factory.js +0 -33
  321. package/dist/transpiler/factory.js.map +0 -1
  322. package/dist/transpiler/file-container.d.ts +0 -6
  323. package/dist/transpiler/file-container.js +0 -16
  324. package/dist/transpiler/file-container.js.map +0 -1
  325. package/dist/transpiler/generator-choices.d.ts +0 -1
  326. package/dist/transpiler/generator-choices.js +0 -3
  327. package/dist/transpiler/generator-choices.js.map +0 -1
  328. package/dist/transpiler/markdown/class-file-generatorHelper.d.ts +0 -9
  329. package/dist/transpiler/markdown/class-file-generatorHelper.js +0 -61
  330. package/dist/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
  331. package/dist/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -6
  332. package/dist/transpiler/markdown/docsify/docsify-docs-processor.js +0 -13
  333. package/dist/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -1
  334. package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -11
  335. package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -51
  336. package/dist/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -1
  337. package/dist/transpiler/markdown/markdown-transpiler-base.d.ts +0 -11
  338. package/dist/transpiler/markdown/markdown-transpiler-base.js +0 -27
  339. package/dist/transpiler/markdown/markdown-transpiler-base.js.map +0 -1
  340. package/dist/transpiler/markdown/plain-markdown/class-template.d.ts +0 -1
  341. package/dist/transpiler/markdown/plain-markdown/class-template.js +0 -77
  342. package/dist/transpiler/markdown/plain-markdown/class-template.js.map +0 -1
  343. package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +0 -1
  344. package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.js +0 -36
  345. package/dist/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +0 -1
  346. package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +0 -1
  347. package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.js +0 -30
  348. package/dist/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +0 -1
  349. package/dist/transpiler/markdown/plain-markdown/enum-template.d.ts +0 -1
  350. package/dist/transpiler/markdown/plain-markdown/enum-template.js +0 -16
  351. package/dist/transpiler/markdown/plain-markdown/enum-template.js.map +0 -1
  352. package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +0 -1
  353. package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +0 -27
  354. package/dist/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +0 -1
  355. package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +0 -1
  356. package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +0 -10
  357. package/dist/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +0 -1
  358. package/dist/transpiler/markdown/plain-markdown/interface-template.d.ts +0 -1
  359. package/dist/transpiler/markdown/plain-markdown/interface-template.js +0 -20
  360. package/dist/transpiler/markdown/plain-markdown/interface-template.js.map +0 -1
  361. package/dist/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +0 -1
  362. package/dist/transpiler/markdown/plain-markdown/methods-partial-template.js +0 -47
  363. package/dist/transpiler/markdown/plain-markdown/methods-partial-template.js.map +0 -1
  364. package/dist/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +0 -1
  365. package/dist/transpiler/markdown/plain-markdown/type-doc-partial.js +0 -31
  366. package/dist/transpiler/markdown/plain-markdown/type-doc-partial.js.map +0 -1
  367. package/dist/transpiler/openapi/open-api-docs-processor.d.ts +0 -13
  368. package/dist/transpiler/openapi/open-api-docs-processor.js +0 -78
  369. package/dist/transpiler/openapi/open-api-docs-processor.js.map +0 -1
  370. package/dist/transpiler/openapi/parsers/Builder.d.ts +0 -16
  371. package/dist/transpiler/openapi/parsers/Builder.js +0 -30
  372. package/dist/transpiler/openapi/parsers/Builder.js.map +0 -1
  373. package/dist/transpiler/openapi/parsers/MethodParser.d.ts +0 -20
  374. package/dist/transpiler/openapi/parsers/MethodParser.js +0 -190
  375. package/dist/transpiler/openapi/parsers/MethodParser.js.map +0 -1
  376. package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -7
  377. package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -11
  378. package/dist/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -1
  379. package/dist/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -39
  380. package/dist/transpiler/openapi/parsers/ReferenceBuilder.js +0 -250
  381. package/dist/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -1
  382. package/dist/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -10
  383. package/dist/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -20
  384. package/dist/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -1
  385. package/dist/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -7
  386. package/dist/transpiler/openapi/parsers/ResponsesBuilder.js +0 -22
  387. package/dist/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -1
  388. package/dist/transpiler/processor-type-transpiler.d.ts +0 -10
  389. package/dist/transpiler/processor-type-transpiler.js +0 -9
  390. package/dist/transpiler/processor-type-transpiler.js.map +0 -1
  391. package/dist/transpiler/transpiler.d.ts +0 -5
  392. package/dist/transpiler/transpiler.js +0 -30
  393. package/dist/transpiler/transpiler.js.map +0 -1
  394. package/dist/util/error-logger.d.ts +0 -8
  395. package/dist/util/error-logger.js +0 -90
  396. package/dist/util/error-logger.js.map +0 -1
  397. package/dist/util/logger.d.ts +0 -21
  398. package/dist/util/logger.js +0 -61
  399. package/dist/util/logger.js.map +0 -1
  400. package/dist/util/string-utils.d.ts +0 -2
  401. package/dist/util/string-utils.js +0 -15
  402. package/dist/util/string-utils.js.map +0 -1
  403. package/examples/plain-markdown/template.md +0 -3
  404. package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
  405. package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
  406. package/src/__spec__/core/test-helpers.ts +0 -9
  407. package/src/application/generators/generate-markdown-files.ts +0 -53
  408. package/src/core/apex-bundle.ts +0 -3
  409. package/src/core/generate-docs.ts +0 -432
  410. package/src/model/markdown-file.ts +0 -122
  411. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
  412. package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
  413. package/src/model/markdown-generation-util/index.ts +0 -3
  414. package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
  415. package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
  416. package/src/model/markdown-home-file.ts +0 -58
  417. package/src/model/markdown-type-file.ts +0 -169
  418. package/src/model/openapi/openapi-type-file.ts +0 -14
  419. package/src/model/outputFile.ts +0 -20
  420. package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
  421. package/src/service/apex-file-reader.ts +0 -51
  422. package/src/service/file-writer.ts +0 -34
  423. package/src/service/metadata-processor.ts +0 -16
  424. package/src/service/state.ts +0 -24
  425. package/src/service/walkers/class-walker.ts +0 -30
  426. package/src/service/walkers/enum-walker.ts +0 -7
  427. package/src/service/walkers/interface-walker.ts +0 -12
  428. package/src/service/walkers/walker-factory.ts +0 -19
  429. package/src/service/walkers/walker.ts +0 -42
  430. package/src/settings.ts +0 -153
  431. package/src/transpiler/factory.ts +0 -31
  432. package/src/transpiler/file-container.ts +0 -13
  433. package/src/transpiler/generator-choices.ts +0 -1
  434. package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
  435. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
  436. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
  437. package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
  438. package/src/transpiler/processor-type-transpiler.ts +0 -18
  439. /package/src/{service → application}/file-system.ts +0 -0
  440. /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
  441. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
  442. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
  443. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
  444. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
  445. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
  446. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
  447. /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
  448. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
  449. /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
  450. /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
  451. /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
  452. /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  453. /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  454. /package/src/{model → core}/openapi/open-api-types.ts +0 -0
  455. /package/src/{model → core}/openapi/open-api.ts +0 -0
@@ -0,0 +1,194 @@
1
+ /**
2
+ * @description Represents a uniform resource locator (URL) and provides access to parts of the URL.
3
+ * Enables access to the base URL used to access your Salesforce org.
4
+ *
5
+ * ## Usage
6
+ * Use the methods of the `System.URL` class to create links to objects in your organization. Such objects can be files, images,
7
+ * logos, or records that you want to include in external emails, in activities, or in Chatter posts. For example, you can create
8
+ * a link to a file uploaded as an attachment to a Chatter post by concatenating the Salesforce base URL with the file ID:
9
+ *
10
+ * ```apex
11
+ * // Get a file uploaded through Chatter.
12
+ * ContentDocument doc = [SELECT Id FROM ContentDocument
13
+ * WHERE Title = 'myfile'];
14
+ * // Create a link to the file.
15
+ * String fullFileURL = URL.getOrgDomainURL().toExternalForm() +
16
+ * '/' + doc.id;
17
+ * system.debug(fullFileURL);
18
+ * ```
19
+ *
20
+ * The following example creates a link to a Salesforce record. The full URL is created by concatenating the Salesforce base
21
+ * URL with the record ID.
22
+ *
23
+ * ```ape
24
+ * Account acct = [SELECT Id FROM Account WHERE Name = 'Acme' LIMIT 1];
25
+ * String fullRecordURL = URL.getOrgDomainURL().toExternalForm() + '/' + acct.Id;
26
+ * ```
27
+ *
28
+ * ## Example
29
+ * In this example, the base URL and the full request URL of the current Salesforce server instance are retrieved. Next, a URL
30
+ * pointing to a specific account object is created. Finally, components of the base and full URL are obtained. This example
31
+ * prints out all the results to the debug log output.
32
+ *
33
+ * ```apex
34
+ * // Create a new account called Acme that we will create a link for later.
35
+ * Account myAccount = new Account(Name='Acme');
36
+ * insert myAccount;
37
+ *
38
+ * // Get the base URL.
39
+ * String sfdcBaseURL = URL.getOrgDomainURL().toExternalForm();
40
+ * System.debug('Base URL: ' + sfdcBaseURL );
41
+ *
42
+ * // Get the URL for the current request.
43
+ * String currentRequestURL = URL.getCurrentRequestUrl().toExternalForm();
44
+ * System.debug('Current request URL: ' + currentRequestURL);
45
+ *
46
+ * // Create the account URL from the base URL.
47
+ * String accountURL = URL.getOrgDomainURL().toExternalForm() +
48
+ * '/' + myAccount.Id;
49
+ * System.debug('URL of a particular account: ' + accountURL);
50
+ *
51
+ * // Get some parts of the base URL.
52
+ * System.debug('Host: ' + URL.getOrgDomainURL().getHost());
53
+ * System.debug('Protocol: ' + URL.getOrgDomainURL().getProtocol());
54
+ *
55
+ * // Get the query string of the current request.
56
+ * System.debug('Query: ' + URL.getCurrentRequestUrl().getQuery());
57
+ * ```
58
+ *
59
+ * ## Version Behavior Changes
60
+ * In API version 41.0 and later, Apex URL objects are represented by the java.net.URI type, not the java.net.URL type.
61
+ * The API version in which the URL object was instantiated determines the behavior of subsequent method calls to the
62
+ * specific instance. Salesforce strongly encourages you to use API 41.0 and later versions for fully RFC-compliant URL
63
+ * parsing that includes proper handling of edge cases of complex URL structures. API 41.0 and later versions also enforce
64
+ * that inputs are valid, RFC-compliant URL or URI strings.
65
+ *
66
+ * * [URL Constructors](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_constructors)
67
+ * * [URL Methods](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_url.htm#apex_System_URL_methods)
68
+ *
69
+ * **See Also**
70
+ * * [URL Class](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_url.htm)
71
+ */
72
+ global class Url {
73
+ /**
74
+ * @description Creates a new instance of the URL class using the specified string representation of the URL.
75
+ * @param spec The string to parse as a URL.
76
+ */
77
+ global Url(String spec) { }
78
+
79
+ /**
80
+ * @description Creates a new instance of the URL class by parsing the specified spec within the specified context.
81
+ * @param context The context in which to parse the specification.
82
+ * @param spec The string to parse as a URL.
83
+ *
84
+ * @usage
85
+ * The new URL is created from the given context URL and the spec argument as described in RFC2396 "Uniform Resource Identifiers : Generic * Syntax" :
86
+ * ```xml
87
+ * <scheme>://<authority><path>?<query>#<fragment>
88
+ * ```
89
+ *
90
+ * For more information about the arguments of this constructor, see the corresponding URL(java.net.URL, java.lang.String) constructor for Java.
91
+ */
92
+ global Url(Url context, String spec) { }
93
+
94
+ /**
95
+ * @description Creates a new instance of the URL class using the specified protocol, host, and file on the host. The default port for the specified protocol is used.
96
+ * @param protocol The protocol name for this URL.
97
+ * @param host The host name for this URL.
98
+ * @param file The file name for this URL.
99
+ */
100
+ global Url(String protocol, String host, String file) {}
101
+
102
+ /**
103
+ * @description Creates a new instance of the URL class using the specified protocol, host, port number, and file on the host.
104
+ * @param protocol The protocol name for this URL.
105
+ * @param host The host name for this URL.
106
+ * @param port The port number for this URL.
107
+ * @param file The file name for this URL.
108
+ */
109
+ global Url(String protocol, String host, Integer port, String file) {}
110
+
111
+ /**
112
+ * @description Returns the authority portion of the current URL.
113
+ * @return The authority portion of the current URL.
114
+ */
115
+ global String getAuthority() {
116
+ return null;
117
+ }
118
+
119
+ /**
120
+ * @description Returns the URL of an entire request on a Salesforce instance.
121
+ * @return The URL of the entire request.
122
+ * @usage An example of a URL for an entire request is https://yourInstance.salesforce.com/apex/myVfPage.apexp.
123
+ */
124
+ global static Url getCurrentRequestUrl() {
125
+ return null;
126
+ }
127
+
128
+ /**
129
+ * @description Returns the default port number of the protocol associated with the current URL.
130
+ * @return The default port number of the protocol associated with the current URL.
131
+ * @usage Returns -1 if the URL scheme or the stream protocol handler for the URL doesn't define a default port number.
132
+ */
133
+ global Integer getDefPort() {
134
+ return null;
135
+ }
136
+
137
+ /**
138
+ * @description Returns the file name of the current URL.
139
+ * @return The file name of the current URL.
140
+ */
141
+ global String getFile() {
142
+ return null;
143
+ }
144
+
145
+ /**
146
+ * @description Returns the download URL for a file attachment.
147
+ * @param entityId Specifies the ID of the entity that holds the file data.
148
+ * @param fieldName Specifies the API name of a file field component, such as `AttachmentBody`.
149
+ * @return The download URL for the file attachment.
150
+ * @example
151
+ * String fileURL =
152
+ * URL.getFileFieldURL(
153
+ * '087000000000123' ,
154
+ * 'AttachmentBody');
155
+ */
156
+ global static String getFileFieldURL(String entityId, String fieldName) {
157
+ return null;
158
+ }
159
+
160
+ /**
161
+ * @description Returns the host name of the current URL.
162
+ * @return The host name of the current URL.
163
+ */
164
+ global String getHost() {
165
+ return null;
166
+ }
167
+
168
+ /**
169
+ * @description Returns the canonical URL for your org. For example, https://MyDomainName.my.salesforce.com.
170
+ * @return getOrgDomainUrl() always returns the login URL for your org, regardless of context. Use that URL when making API calls to your org.
171
+ * @usage
172
+ * Use getOrgDomainUrl() to interact with Salesforce REST and SOAP APIs in Apex code. Get endpoints for User Interface API calls, for creating and customizing picklist value sets and custom fields, and more.
173
+ *
174
+ * `getOrgDomainUrl()` can access the domain URL only for the org in which the Apex code is running.
175
+ *
176
+ * You don't need a RemoteSiteSetting for your org to interact with the Salesforce APIs using domain URLs retrieved with this method.
177
+ *
178
+ * @example
179
+ * // This example uses the Salesforce REST API to get organization limit values. For information on limits, see Limits in the REST API Developer Guide.
180
+ * Http h = new Http();
181
+ * HttpRequest req = new HttpRequest();
182
+ * req.setEndpoint(Url.getOrgDomainUrl().toExternalForm()
183
+ * + '/services/data/v44.0/limits');
184
+ * req.setMethod('GET');
185
+ * req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());
186
+ * HttpResponse res = h.send(req);
187
+ *
188
+ * @see-also
189
+ * * [Lightning Aura Components Developer Guide: Making API Calls from Apex](https://developer.salesforce.com/docs/atlas.en-us.250.0.lightning.meta/lightning/apex_api_calls.htm)
190
+ */
191
+ global static Url getOrgDomainUrl() {
192
+ return null;
193
+ }
194
+ }
@@ -2,7 +2,8 @@
2
2
  "name": "plain-markdown",
3
3
  "scripts": {
4
4
  "docs:clean": "rimraf docs",
5
- "docs:build": "ts-node ../../src/cli/generate.ts",
5
+ "docs:build": "ts-node ../../src/cli/generate.ts markdown",
6
+ "docs:help": "ts-node ../../src/cli/generate.ts markdown --help",
6
7
  "docs:gen": "npm run docs:clean && npm run docs:build"
7
8
  },
8
9
  "devDependencies": {
@@ -13,7 +14,6 @@
13
14
  },
14
15
  "apexdocs": {
15
16
  "sourceDir": "force-app",
16
- "targetGenerator": "plain-markdown",
17
17
  "scope": ["global", "public", "protected", "private", "namespaceaccessible"],
18
18
  "namespace": "ns"
19
19
  }
@@ -0,0 +1,12 @@
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__/**
@@ -0,0 +1,108 @@
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
+ namespace: 'apexdocs',
32
+ transformReferenceGuide: async (referenceGuide) => {
33
+ const frontMatter = await loadFileAsync('./docs/index-frontmatter.md');
34
+ return {
35
+ ...referenceGuide,
36
+ frontmatter: frontMatter,
37
+ };
38
+ },
39
+ transformDocs: async (docs) => {
40
+ // Update sidebar
41
+ const sidebar = [
42
+ {
43
+ text: 'API Reference',
44
+ items: [
45
+ {
46
+ text: 'Grouped By Type',
47
+ items: [
48
+ {
49
+ text: 'Classes',
50
+ items: docs.filter((doc) => doc.source.type === 'class').map(toSidebarLink),
51
+ },
52
+ {
53
+ text: 'Interfaces',
54
+ items: docs.filter((doc) => doc.source.type === 'interface').map(toSidebarLink),
55
+ },
56
+ {
57
+ text: 'Enums',
58
+ items: docs.filter((doc) => doc.source.type === 'enum').map(toSidebarLink),
59
+ },
60
+ ],
61
+ },
62
+ {
63
+ text: 'Grouped by Group',
64
+ items: Array.from(extractGroups(docs)).map(([groupName, groupDocs]) => ({
65
+ text: groupName,
66
+ items: groupDocs.map(toSidebarLink),
67
+ })),
68
+ },
69
+ ],
70
+ },
71
+ ];
72
+ await writeFileAsync('./docs/.vitepress/sidebar.json', JSON.stringify(sidebar, null, 2));
73
+
74
+ return docs;
75
+ },
76
+ transformDocPage: async (docPage) => {
77
+ return {
78
+ ...docPage,
79
+ frontmatter: {
80
+ title: docPage.source.name,
81
+ },
82
+ };
83
+ },
84
+ });
85
+
86
+ function toSidebarLink(doc: DocPageData) {
87
+ return {
88
+ text: doc.source.name,
89
+ link: `${doc.directory}/${doc.fileName}`
90
+ // remove the leading "./"
91
+ .replace(/^\.\//, ''),
92
+ };
93
+ }
94
+
95
+ function extractGroups(docs: DocPageData[]) {
96
+ const groups = new Map<string, DocPageData[]>();
97
+ for (const doc of docs) {
98
+ if (!doc.group) {
99
+ continue;
100
+ }
101
+
102
+ const groupDocs = groups.get(doc.group) ?? [];
103
+ groupDocs.push(doc);
104
+ groups.set(doc.group, groupDocs);
105
+ }
106
+
107
+ return groups;
108
+ }
@@ -0,0 +1,13 @@
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
+ }
@@ -0,0 +1,259 @@
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
@@ -0,0 +1,7 @@
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
+ }