@cparra/apexdocs 2.25.0-alpha.4 → 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 (189) hide show
  1. package/dist/cli/generate.js +2745 -39
  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 +1 -1
  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 +1 -1
  16. package/examples/plain-markdown/package.json +3 -4
  17. package/examples/vitepress/.forceignore +12 -0
  18. package/examples/vitepress/apexdocs.config.ts +108 -0
  19. package/examples/vitepress/config/project-scratch-def.json +13 -0
  20. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
  21. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
  22. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
  23. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
  24. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
  25. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
  26. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
  27. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
  28. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
  29. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  30. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
  31. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  32. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
  33. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
  34. package/examples/vitepress/docs/.vitepress/config.mts +21 -0
  35. package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
  36. package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
  37. package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
  38. package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
  39. package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
  40. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
  41. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
  42. package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
  43. package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
  44. package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
  45. package/examples/vitepress/docs/api-examples.md +49 -0
  46. package/examples/vitepress/docs/index-frontmatter.md +16 -0
  47. package/examples/vitepress/docs/index.md +127 -0
  48. package/examples/vitepress/docs/markdown-examples.md +85 -0
  49. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
  50. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
  51. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
  52. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
  53. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
  54. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
  55. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
  56. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
  57. package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
  58. package/examples/vitepress/package-lock.json +2574 -0
  59. package/examples/vitepress/package.json +18 -0
  60. package/examples/vitepress/sfdx-project.json +12 -0
  61. package/jest.config.js +1 -0
  62. package/package.json +10 -6
  63. package/src/application/Apexdocs.ts +16 -104
  64. package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
  65. package/src/application/apex-file-reader.ts +42 -0
  66. package/src/application/file-writer.ts +25 -0
  67. package/src/application/generators/markdown.ts +53 -0
  68. package/src/application/generators/openapi.ts +56 -0
  69. package/src/cli/args.ts +17 -112
  70. package/src/cli/commands/markdown.ts +58 -0
  71. package/src/cli/generate.ts +7 -5
  72. package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
  73. package/src/core/manifest.ts +57 -51
  74. package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
  75. package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
  76. package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
  77. package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
  78. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
  79. package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
  80. package/src/core/markdown/__test__/test-helpers.ts +22 -0
  81. package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
  82. package/src/core/{adapters → markdown/adapters}/apex-types.ts +7 -4
  83. package/src/core/{adapters → markdown/adapters}/inline.ts +1 -1
  84. package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
  85. package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
  86. package/src/core/{adapters → markdown/adapters}/types.d.ts +16 -2
  87. package/src/core/markdown/generate-docs.ts +158 -0
  88. package/src/core/markdown/reflection/error-handling.ts +37 -0
  89. package/src/core/markdown/reflection/filter-scope.ts +13 -0
  90. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
  91. package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
  92. package/src/core/markdown/reflection/reflect-source.ts +41 -0
  93. package/src/core/markdown/reflection/sort-members.ts +59 -0
  94. package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
  95. package/src/core/markdown/templates/hookable.ts +7 -0
  96. package/src/core/{template.ts → markdown/templates/template.ts} +12 -12
  97. package/src/core/markdown/utils.ts +3 -0
  98. package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  99. package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  100. package/src/core/openapi/file-container.ts +13 -0
  101. package/src/{service → core/openapi}/manifest-factory.ts +3 -3
  102. package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
  103. package/src/core/openapi/openapi-type-file.ts +14 -0
  104. package/src/{service → core/openapi}/parser.ts +8 -8
  105. package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
  106. package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
  107. package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  108. package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
  109. package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  110. package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
  111. package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  112. package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  113. package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  114. package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  115. package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  116. package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
  117. package/src/{model → core/openapi}/types-repository.ts +0 -9
  118. package/src/core/parse-apex-metadata.ts +14 -0
  119. package/src/core/settings.ts +56 -0
  120. package/src/core/shared/types.d.ts +92 -0
  121. package/src/core/shared/utils.ts +5 -0
  122. package/src/defaults.ts +8 -0
  123. package/src/index.ts +34 -2
  124. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
  125. package/src/test-helpers/SettingsBuilder.ts +1 -3
  126. package/src/util/logger.ts +2 -2
  127. package/src/util/string-utils.ts +0 -4
  128. package/tsconfig.json +5 -1
  129. package/apexdocs.config.ts +0 -13
  130. package/examples/plain-markdown/template.md +0 -3
  131. package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
  132. package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
  133. package/src/__spec__/core/test-helpers.ts +0 -9
  134. package/src/application/generators/generate-markdown-files.ts +0 -53
  135. package/src/core/apex-bundle.ts +0 -3
  136. package/src/core/generate-docs.ts +0 -432
  137. package/src/model/markdown-file.ts +0 -122
  138. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
  139. package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
  140. package/src/model/markdown-generation-util/index.ts +0 -3
  141. package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
  142. package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
  143. package/src/model/markdown-home-file.ts +0 -58
  144. package/src/model/markdown-type-file.ts +0 -169
  145. package/src/model/openapi/openapi-type-file.ts +0 -14
  146. package/src/model/outputFile.ts +0 -20
  147. package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
  148. package/src/service/apex-file-reader.ts +0 -47
  149. package/src/service/file-writer.ts +0 -34
  150. package/src/service/metadata-processor.ts +0 -16
  151. package/src/service/state.ts +0 -24
  152. package/src/service/walkers/class-walker.ts +0 -30
  153. package/src/service/walkers/enum-walker.ts +0 -7
  154. package/src/service/walkers/interface-walker.ts +0 -12
  155. package/src/service/walkers/walker-factory.ts +0 -19
  156. package/src/service/walkers/walker.ts +0 -42
  157. package/src/settings.ts +0 -143
  158. package/src/transpiler/factory.ts +0 -31
  159. package/src/transpiler/file-container.ts +0 -13
  160. package/src/transpiler/generator-choices.ts +0 -1
  161. package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
  162. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
  163. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
  164. package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
  165. package/src/transpiler/processor-type-transpiler.ts +0 -18
  166. /package/src/{service → application}/file-system.ts +0 -0
  167. /package/src/core/{adapters → markdown/adapters}/__tests__/documentables.spec.ts +0 -0
  168. /package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +0 -0
  169. /package/src/core/{adapters → markdown/adapters}/documentables.ts +0 -0
  170. /package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +0 -0
  171. /package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +0 -0
  172. /package/src/core/{adapters → markdown/adapters}/type-utils.ts +0 -0
  173. /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
  174. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +0 -0
  175. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
  176. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
  177. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
  178. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
  179. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
  180. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
  181. /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
  182. /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
  183. /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
  184. /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
  185. /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
  186. /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  187. /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  188. /package/src/{model → core}/openapi/open-api-types.ts +0 -0
  189. /package/src/{model → core}/openapi/open-api.ts +0 -0
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ const defaults = {
4
+ targetGenerator: "markdown",
5
+ targetDir: "./docs/",
6
+ scope: ["global"],
7
+ defaultGroupName: "Miscellaneous",
8
+ includeMetadata: false,
9
+ sortMembersAlphabetically: false
10
+ };
11
+
12
+ exports.defaults = defaults;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const defaults = {
4
+ targetGenerator: "markdown",
5
+ targetDir: "./docs/",
6
+ scope: ["global"],
7
+ defaultGroupName: "Miscellaneous",
8
+ includeMetadata: false
9
+ };
10
+
11
+ exports.defaults = defaults;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,62 @@
1
- import * as apexReflection from '@cparra/apex-reflection';
2
- export { apexReflection as reflection };
1
+ import { SetOptional } from 'type-fest';
2
+
3
+ type ConfigurableHooks = {
4
+ transformReferenceGuide: TransformReferenceGuide;
5
+ transformDocs: TransformDocs;
6
+ transformDocPage: TransformDocPage;
7
+ };
8
+
9
+ type UserDefinedMarkdownConfig = {
10
+ targetGenerator: 'markdown';
11
+ sourceDir: string;
12
+ targetDir: string;
13
+ scope: string[];
14
+ defaultGroupName: string;
15
+ namespace?: string;
16
+ sortMembersAlphabetically: boolean;
17
+ includeMetadata: boolean;
18
+ } & Partial<ConfigurableHooks>;
19
+
20
+ type Frontmatter = string | Record<string, unknown> | null;
21
+
22
+ type ReferenceGuidePageData = {
23
+ directory: string;
24
+ frontmatter: Frontmatter;
25
+ content: string;
26
+ fileExtension: string;
27
+ fileName: string;
28
+ };
29
+
30
+ type DocPageData = {
31
+ source: {
32
+ filePath: string;
33
+ name: string;
34
+ type: 'interface' | 'class' | 'enum';
35
+ };
36
+ group: string | null;
37
+ fileName: string;
38
+ fileExtension: string;
39
+ directory: string;
40
+ frontmatter: Frontmatter;
41
+ content: string;
42
+ };
43
+
44
+ type Skip = {
45
+ readonly _tag: 'Skip';
46
+ };
47
+
48
+ // Configurable Hooks
49
+
50
+ type TransformReferenceGuide = (
51
+ referenceGuide: ReferenceGuidePageData,
52
+ ) => Partial<ReferenceGuidePageData> | Skip | Promise<Partial<ReferenceGuidePageData> | Skip>;
53
+
54
+ type TransformDocs = (docs: DocPageData[]) => DocPageData[] | Promise<DocPageData[]>;
55
+
56
+ type TransformDocPage = (doc: DocPageData) => Partial<DocPageData> | Promise<Partial<DocPageData>>;
57
+
58
+ type ConfigurableMarkdownConfig = Omit<SetOptional<UserDefinedMarkdownConfig, 'targetDir' | 'scope' | 'defaultGroupName' | 'includeMetadata' | 'sortMembersAlphabetically'>, 'targetGenerator'>;
59
+ declare function defineMarkdownConfig(config: ConfigurableMarkdownConfig): UserDefinedMarkdownConfig;
60
+ declare function skip(): Skip;
61
+
62
+ export { type ConfigurableHooks, type DocPageData, type ReferenceGuidePageData, defineMarkdownConfig, skip };
package/dist/index.js CHANGED
@@ -1 +1,36 @@
1
- "use strict";var a=Object.defineProperty;var c=(e,t)=>a(e,"name",{value:t,configurable:!0});var f=require("@cparra/apex-reflection");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}c(i,"_interopNamespaceDefault");var u=i(f);exports.reflection=u;
1
+ 'use strict';
2
+
3
+ var defaults = require('./defaults-DUwru49Q.js');
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defProps = Object.defineProperties;
7
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ function defineMarkdownConfig(config) {
25
+ return __spreadProps(__spreadValues(__spreadValues({}, defaults.defaults), config), {
26
+ targetGenerator: "markdown"
27
+ });
28
+ }
29
+ function skip() {
30
+ return {
31
+ _tag: "Skip"
32
+ };
33
+ }
34
+
35
+ exports.defineMarkdownConfig = defineMarkdownConfig;
36
+ exports.skip = skip;
@@ -13,4 +13,4 @@ public sampleEnumFromBase
13
13
  ```
14
14
 
15
15
  #### Type
16
- [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)
16
+ [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)
@@ -70,4 +70,4 @@ A string value.
70
70
  ```apex
71
71
  SampleClass sample = new SampleClass();
72
72
  sample.doSomething();
73
- ```
73
+ ```
@@ -12,4 +12,4 @@ public void sampleParentMethod()
12
12
  ```
13
13
 
14
14
  #### Return Type
15
- **void**
15
+ **void**
@@ -5,4 +5,4 @@ ns
5
5
 
6
6
  ## Values
7
7
  | Value | Description |
8
- |-------|-------------|
8
+ |-------|-------------|
@@ -22,4 +22,4 @@ try {
22
22
  ns
23
23
 
24
24
  **Inheritance**
25
- Exception
25
+ Exception
@@ -116,4 +116,4 @@ public void sampleParentMethod()
116
116
  ```
117
117
 
118
118
  #### Return Type
119
- **void**
119
+ **void**
@@ -317,4 +317,4 @@ req.setEndpoint(Url.getOrgDomainUrl().toExternalForm()
317
317
  req.setMethod('GET');
318
318
  req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId());
319
319
  HttpResponse res = h.send(req);
320
- ```
320
+ ```
@@ -35,4 +35,4 @@ graph TD
35
35
  |-------|-------------|
36
36
  | VALUE1 | This is value 1 |
37
37
  | VALUE2 | This is value 2 |
38
- | VALUE3 | This is value 3 |
38
+ | VALUE3 | This is value 3 |
@@ -170,4 +170,4 @@ public void doSomething()
170
170
  ```
171
171
 
172
172
  ###### Return Type
173
- **void**
173
+ **void**
@@ -114,4 +114,4 @@ This description has several lines
114
114
 
115
115
  aliquip ex sunt officia ullamco anim deserunt magna aliquip nisi eiusmod in sit officia veniam ex
116
116
 
117
- deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
117
+ deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
@@ -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,9 +14,7 @@
13
14
  },
14
15
  "apexdocs": {
15
16
  "sourceDir": "force-app",
16
- "targetGenerator": "plain-markdown",
17
17
  "scope": ["global", "public", "protected", "private", "namespaceaccessible"],
18
- "namespace": "ns",
19
- "sanitizeHtml": true
18
+ "namespace": "ns"
20
19
  }
21
20
  }
@@ -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