@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.
- package/dist/cli/generate.js +2745 -39
- package/dist/defaults-DUwru49Q.js +12 -0
- package/dist/defaults-SH0Rsi5E.js +11 -0
- package/dist/index.d.ts +62 -2
- package/dist/index.js +36 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +1 -1
- package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +1 -1
- package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +1 -1
- package/examples/plain-markdown/docs/index.md +1 -1
- package/examples/plain-markdown/package.json +3 -4
- package/examples/vitepress/.forceignore +12 -0
- package/examples/vitepress/apexdocs.config.ts +108 -0
- package/examples/vitepress/config/project-scratch-def.json +13 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/config.mts +21 -0
- package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
- package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
- package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
- package/examples/vitepress/docs/api-examples.md +49 -0
- package/examples/vitepress/docs/index-frontmatter.md +16 -0
- package/examples/vitepress/docs/index.md +127 -0
- package/examples/vitepress/docs/markdown-examples.md +85 -0
- package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
- package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
- package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
- package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
- package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
- package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
- package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
- package/examples/vitepress/package-lock.json +2574 -0
- package/examples/vitepress/package.json +18 -0
- package/examples/vitepress/sfdx-project.json +12 -0
- package/jest.config.js +1 -0
- package/package.json +10 -6
- package/src/application/Apexdocs.ts +16 -104
- package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
- package/src/application/apex-file-reader.ts +42 -0
- package/src/application/file-writer.ts +25 -0
- package/src/application/generators/markdown.ts +53 -0
- package/src/application/generators/openapi.ts +56 -0
- package/src/cli/args.ts +17 -112
- package/src/cli/commands/markdown.ts +58 -0
- package/src/cli/generate.ts +7 -5
- package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
- package/src/core/manifest.ts +57 -51
- package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
- package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
- package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
- package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
- package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
- package/src/core/markdown/__test__/test-helpers.ts +22 -0
- package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
- package/src/core/{adapters → markdown/adapters}/apex-types.ts +7 -4
- package/src/core/{adapters → markdown/adapters}/inline.ts +1 -1
- package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
- package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
- package/src/core/{adapters → markdown/adapters}/types.d.ts +16 -2
- package/src/core/markdown/generate-docs.ts +158 -0
- package/src/core/markdown/reflection/error-handling.ts +37 -0
- package/src/core/markdown/reflection/filter-scope.ts +13 -0
- package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
- package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
- package/src/core/markdown/reflection/reflect-source.ts +41 -0
- package/src/core/markdown/reflection/sort-members.ts +59 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
- package/src/core/markdown/templates/hookable.ts +7 -0
- package/src/core/{template.ts → markdown/templates/template.ts} +12 -12
- package/src/core/markdown/utils.ts +3 -0
- package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
- package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
- package/src/core/openapi/file-container.ts +13 -0
- package/src/{service → core/openapi}/manifest-factory.ts +3 -3
- package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
- package/src/core/openapi/openapi-type-file.ts +14 -0
- package/src/{service → core/openapi}/parser.ts +8 -8
- package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
- package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
- package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
- package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
- package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
- package/src/{model → core/openapi}/types-repository.ts +0 -9
- package/src/core/parse-apex-metadata.ts +14 -0
- package/src/core/settings.ts +56 -0
- package/src/core/shared/types.d.ts +92 -0
- package/src/core/shared/utils.ts +5 -0
- package/src/defaults.ts +8 -0
- package/src/index.ts +34 -2
- package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
- package/src/test-helpers/SettingsBuilder.ts +1 -3
- package/src/util/logger.ts +2 -2
- package/src/util/string-utils.ts +0 -4
- package/tsconfig.json +5 -1
- package/apexdocs.config.ts +0 -13
- package/examples/plain-markdown/template.md +0 -3
- package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
- package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
- package/src/__spec__/core/test-helpers.ts +0 -9
- package/src/application/generators/generate-markdown-files.ts +0 -53
- package/src/core/apex-bundle.ts +0 -3
- package/src/core/generate-docs.ts +0 -432
- package/src/model/markdown-file.ts +0 -122
- package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
- package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
- package/src/model/markdown-generation-util/index.ts +0 -3
- package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
- package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
- package/src/model/markdown-home-file.ts +0 -58
- package/src/model/markdown-type-file.ts +0 -169
- package/src/model/openapi/openapi-type-file.ts +0 -14
- package/src/model/outputFile.ts +0 -20
- package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
- package/src/service/apex-file-reader.ts +0 -47
- package/src/service/file-writer.ts +0 -34
- package/src/service/metadata-processor.ts +0 -16
- package/src/service/state.ts +0 -24
- package/src/service/walkers/class-walker.ts +0 -30
- package/src/service/walkers/enum-walker.ts +0 -7
- package/src/service/walkers/interface-walker.ts +0 -12
- package/src/service/walkers/walker-factory.ts +0 -19
- package/src/service/walkers/walker.ts +0 -42
- package/src/settings.ts +0 -143
- package/src/transpiler/factory.ts +0 -31
- package/src/transpiler/file-container.ts +0 -13
- package/src/transpiler/generator-choices.ts +0 -1
- package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
- package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
- package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
- package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
- package/src/transpiler/processor-type-transpiler.ts +0 -18
- /package/src/{service → application}/file-system.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/__tests__/documentables.spec.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/documentables.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/type-utils.ts +0 -0
- /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
- /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
- /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
- /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
- /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
- /package/src/{model → core}/openapi/open-api-types.ts +0 -0
- /package/src/{model → core}/openapi/open-api.ts +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,62 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -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
|