@cparra/apexdocs 2.23.0 → 2.24.0

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 (163) hide show
  1. package/.eslintrc.js +12 -12
  2. package/.github/workflows/close_stale.yml +22 -22
  3. package/.prettierrc.js +7 -7
  4. package/LICENSE +21 -21
  5. package/README.md +718 -718
  6. package/apexdocs.config.ts +13 -13
  7. package/docs/README.md +1 -1
  8. package/docs/restapi.json +589 -589
  9. package/docs/types/Classes/nspc.ChildClass.md +97 -97
  10. package/docs/types/Main/nspc.SampleClass.md +189 -189
  11. package/examples/force-app/main/default/classes/AnotherInterface.cls +16 -16
  12. package/examples/force-app/main/default/classes/ChildClass.cls +42 -42
  13. package/examples/force-app/main/default/classes/EscapedAnnotations.cls +5 -5
  14. package/examples/force-app/main/default/classes/GrandparentClass.cls +4 -4
  15. package/examples/force-app/main/default/classes/GroupedClass.cls +8 -8
  16. package/examples/force-app/main/default/classes/MemberGrouping.cls +17 -17
  17. package/examples/force-app/main/default/classes/ParentClass.cls +16 -16
  18. package/examples/force-app/main/default/classes/SampleClass.cls +166 -166
  19. package/examples/force-app/main/default/classes/SampleClass.cls-meta.xml +5 -5
  20. package/examples/force-app/main/default/classes/SampleClassWithoutModifier.cls +9 -9
  21. package/examples/force-app/main/default/classes/SampleInterface.cls +16 -16
  22. package/examples/force-app/main/default/restapi/SampleRestResource.cls +195 -195
  23. package/examples/force-app/main/default/restapi/SampleRestResourceToSkip.cls +35 -35
  24. package/examples/force-app/main/default/restapi/SampleRestResourceWithInnerClass.cls +24 -24
  25. package/examples/force-app/main/default/restapi/SampleRestResourceWithoutApexDocs.cls +15 -15
  26. package/examples/force-app/main/default/restapi/references/Reference1.cls +9 -9
  27. package/examples/force-app/main/default/restapi/references/Reference2.cls +9 -9
  28. package/examples/force-app/main/default/restapi/references/Reference3.cls +3 -3
  29. package/examples/force-app/main/default/restapi/references/Reference4.cls +3 -3
  30. package/examples/force-app/main/default/restapi/references/Reference5.cls +3 -3
  31. package/examples/force-app/main/default/restapi/references/Reference6.cls +6 -6
  32. package/examples/force-app/main/default/restapi/references/Reference7.cls +3 -3
  33. package/examples/includes/header.md +3 -3
  34. package/jest.config.js +5 -5
  35. package/lib/application/Apexdocs.d.ts +13 -13
  36. package/lib/application/Apexdocs.js +76 -76
  37. package/lib/cli/generate.d.ts +2 -2
  38. package/lib/cli/generate.js +130 -130
  39. package/lib/index.d.ts +1 -1
  40. package/lib/index.js +17 -17
  41. package/lib/model/apex-bundle.d.ts +6 -6
  42. package/lib/model/apex-bundle.js +10 -10
  43. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +7 -7
  44. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +13 -13
  45. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +7 -7
  46. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js +11 -11
  47. package/lib/model/inheritance.d.ts +8 -8
  48. package/lib/model/inheritance.js +2 -2
  49. package/lib/model/manifest-diff.d.ts +27 -27
  50. package/lib/model/manifest-diff.js +68 -68
  51. package/lib/model/manifest.d.ts +22 -22
  52. package/lib/model/manifest.js +46 -46
  53. package/lib/model/markdown-file.d.ts +16 -16
  54. package/lib/model/markdown-file.js +106 -106
  55. package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +8 -8
  56. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +43 -43
  57. package/lib/model/markdown-generation-util/field-declaration-util.d.ts +3 -3
  58. package/lib/model/markdown-generation-util/field-declaration-util.js +54 -54
  59. package/lib/model/markdown-generation-util/index.d.ts +3 -3
  60. package/lib/model/markdown-generation-util/index.js +19 -19
  61. package/lib/model/markdown-generation-util/method-declaration-util.d.ts +4 -4
  62. package/lib/model/markdown-generation-util/method-declaration-util.js +114 -114
  63. package/lib/model/markdown-generation-util/type-declaration-util.d.ts +3 -3
  64. package/lib/model/markdown-generation-util/type-declaration-util.js +81 -81
  65. package/lib/model/markdown-home-file.d.ts +11 -11
  66. package/lib/model/markdown-home-file.js +53 -53
  67. package/lib/model/markdown-type-file.d.ts +26 -26
  68. package/lib/model/markdown-type-file.js +133 -133
  69. package/lib/model/openapi/apex-doc-types.d.ts +19 -19
  70. package/lib/model/openapi/apex-doc-types.js +4 -4
  71. package/lib/model/openapi/open-api-types.d.ts +93 -93
  72. package/lib/model/openapi/open-api-types.js +2 -2
  73. package/lib/model/openapi/open-api.d.ts +16 -16
  74. package/lib/model/openapi/open-api.js +33 -33
  75. package/lib/model/openapi/openapi-type-file.d.ts +7 -7
  76. package/lib/model/openapi/openapi-type-file.js +16 -16
  77. package/lib/model/outputFile.d.ts +10 -10
  78. package/lib/model/outputFile.js +28 -28
  79. package/lib/model/types-repository.d.ts +16 -16
  80. package/lib/model/types-repository.js +53 -53
  81. package/lib/service/apex-file-reader.d.ts +14 -14
  82. package/lib/service/apex-file-reader.js +45 -45
  83. package/lib/service/file-system.d.ts +14 -14
  84. package/lib/service/file-system.js +24 -24
  85. package/lib/service/file-writer.d.ts +6 -6
  86. package/lib/service/file-writer.js +33 -33
  87. package/lib/service/manifest-factory.d.ts +10 -10
  88. package/lib/service/manifest-factory.js +13 -13
  89. package/lib/service/metadata-processor.d.ts +3 -3
  90. package/lib/service/metadata-processor.js +16 -16
  91. package/lib/service/parser.d.ts +21 -21
  92. package/lib/service/parser.js +134 -134
  93. package/lib/service/state.d.ts +9 -9
  94. package/lib/service/state.js +19 -19
  95. package/lib/service/walkers/class-walker.d.ts +4 -4
  96. package/lib/service/walkers/class-walker.js +32 -32
  97. package/lib/service/walkers/enum-walker.d.ts +4 -4
  98. package/lib/service/walkers/enum-walker.js +10 -10
  99. package/lib/service/walkers/interface-walker.d.ts +4 -4
  100. package/lib/service/walkers/interface-walker.js +14 -14
  101. package/lib/service/walkers/walker-factory.d.ts +5 -5
  102. package/lib/service/walkers/walker-factory.js +20 -20
  103. package/lib/service/walkers/walker.d.ts +19 -19
  104. package/lib/service/walkers/walker.js +16 -16
  105. package/lib/settings.d.ts +64 -64
  106. package/lib/settings.js +88 -88
  107. package/lib/test-helpers/AnnotationBuilder.d.ts +12 -12
  108. package/lib/test-helpers/AnnotationBuilder.js +30 -30
  109. package/lib/test-helpers/ClassMirrorBuilder.d.ts +18 -18
  110. package/lib/test-helpers/ClassMirrorBuilder.js +53 -53
  111. package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +8 -8
  112. package/lib/test-helpers/DocCommentAnnotationBuilder.js +25 -25
  113. package/lib/test-helpers/DocCommentBuilder.d.ts +12 -12
  114. package/lib/test-helpers/DocCommentBuilder.js +37 -37
  115. package/lib/test-helpers/FieldMirrorBuilder.d.ts +18 -18
  116. package/lib/test-helpers/FieldMirrorBuilder.js +53 -53
  117. package/lib/test-helpers/MethodMirrorBuilder.d.ts +10 -10
  118. package/lib/test-helpers/MethodMirrorBuilder.js +36 -36
  119. package/lib/test-helpers/SettingsBuilder.d.ts +8 -8
  120. package/lib/test-helpers/SettingsBuilder.js +26 -26
  121. package/lib/transpiler/factory.d.ts +6 -6
  122. package/lib/transpiler/factory.js +31 -31
  123. package/lib/transpiler/file-container.d.ts +6 -6
  124. package/lib/transpiler/file-container.js +15 -15
  125. package/lib/transpiler/generator-choices.d.ts +1 -1
  126. package/lib/transpiler/generator-choices.js +2 -2
  127. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +8 -8
  128. package/lib/transpiler/markdown/class-file-generatorHelper.js +55 -55
  129. package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +6 -6
  130. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +12 -12
  131. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +11 -11
  132. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +50 -50
  133. package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +11 -11
  134. package/lib/transpiler/markdown/markdown-transpiler-base.js +23 -23
  135. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +6 -6
  136. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +13 -13
  137. package/lib/transpiler/openapi/open-api-docs-processor.d.ts +13 -13
  138. package/lib/transpiler/openapi/open-api-docs-processor.js +74 -74
  139. package/lib/transpiler/openapi/parsers/Builder.d.ts +16 -16
  140. package/lib/transpiler/openapi/parsers/Builder.js +29 -29
  141. package/lib/transpiler/openapi/parsers/MethodParser.d.ts +20 -20
  142. package/lib/transpiler/openapi/parsers/MethodParser.js +166 -166
  143. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +7 -7
  144. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +10 -10
  145. package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +39 -39
  146. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +225 -225
  147. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +10 -10
  148. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +19 -19
  149. package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +7 -7
  150. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +21 -21
  151. package/lib/transpiler/processor-type-transpiler.d.ts +10 -10
  152. package/lib/transpiler/processor-type-transpiler.js +8 -8
  153. package/lib/transpiler/transpiler.d.ts +5 -5
  154. package/lib/transpiler/transpiler.js +26 -26
  155. package/lib/util/error-logger.d.ts +8 -8
  156. package/lib/util/error-logger.js +89 -89
  157. package/lib/util/logger.d.ts +21 -21
  158. package/lib/util/logger.js +57 -57
  159. package/lib/util/string-utils.d.ts +2 -2
  160. package/lib/util/string-utils.js +14 -14
  161. package/package.json +78 -78
  162. package/tsconfig.json +20 -20
  163. package/tslint.json +5 -5
@@ -1,6 +1,6 @@
1
- import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
- import { LinkingStrategy } from '../../processor-type-transpiler';
3
- export default class DocsifyDocsProcessor extends MarkdownTranspilerBase {
4
- homeFileName(): string;
5
- getLinkingStrategy(): LinkingStrategy;
6
- }
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { LinkingStrategy } from '../../processor-type-transpiler';
3
+ export default class DocsifyDocsProcessor extends MarkdownTranspilerBase {
4
+ homeFileName(): string;
5
+ getLinkingStrategy(): LinkingStrategy;
6
+ }
@@ -1,13 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
4
- class DocsifyDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
5
- homeFileName() {
6
- return 'README';
7
- }
8
- getLinkingStrategy() {
9
- return 'root-relative';
10
- }
11
- }
12
- exports.default = DocsifyDocsProcessor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
4
+ class DocsifyDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
5
+ homeFileName() {
6
+ return 'README';
7
+ }
8
+ getLinkingStrategy() {
9
+ return 'root-relative';
10
+ }
11
+ }
12
+ exports.default = DocsifyDocsProcessor;
13
13
  //# sourceMappingURL=docsify-docs-processor.js.map
@@ -1,11 +1,11 @@
1
- import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
- import { Type } from '@cparra/apex-reflection';
3
- import { LinkingStrategy } from '../../processor-type-transpiler';
4
- export declare class JekyllDocsProcessor extends MarkdownTranspilerBase {
5
- homeFileName(): string;
6
- onBeforeProcess: (types: Type[]) => void;
7
- onProcess(type: Type): void;
8
- get frontMatterForHomeFile(): string;
9
- getFrontMatterHeader(type: Type): string;
10
- getLinkingStrategy(): LinkingStrategy;
11
- }
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ import { LinkingStrategy } from '../../processor-type-transpiler';
4
+ export declare class JekyllDocsProcessor extends MarkdownTranspilerBase {
5
+ homeFileName(): string;
6
+ onBeforeProcess: (types: Type[]) => void;
7
+ onProcess(type: Type): void;
8
+ get frontMatterForHomeFile(): string;
9
+ getFrontMatterHeader(type: Type): string;
10
+ getLinkingStrategy(): LinkingStrategy;
11
+ }
@@ -1,51 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JekyllDocsProcessor = void 0;
4
- const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
5
- const markdown_home_file_1 = require("../../../model/markdown-home-file");
6
- const markdown_type_file_1 = require("../../../model/markdown-type-file");
7
- const settings_1 = require("../../../settings");
8
- class JekyllDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
9
- constructor() {
10
- super(...arguments);
11
- this.onBeforeProcess = (types) => {
12
- this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types, this.frontMatterForHomeFile));
13
- };
14
- }
15
- homeFileName() {
16
- return 'index';
17
- }
18
- onProcess(type) {
19
- this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type, 1, this.getFrontMatterHeader(type)));
20
- }
21
- get frontMatterForHomeFile() {
22
- return '---\nlayout: default\n---';
23
- }
24
- getFrontMatterHeader(type) {
25
- var _a;
26
- const headerLines = ['---'];
27
- // "layout: default" is a required front matter header for Jekyll
28
- headerLines.push('layout: default');
29
- // Add any additional front matter headers that might have been configured in the settings
30
- const targetType = {
31
- name: type.name,
32
- typeName: type.type_name,
33
- accessModifier: type.access_modifier,
34
- group: type.group,
35
- description: (_a = type.docComment) === null || _a === void 0 ? void 0 : _a.description,
36
- };
37
- const configuredHeaders = settings_1.Settings.getInstance().frontMatterHeader(targetType);
38
- if (configuredHeaders) {
39
- configuredHeaders.forEach((header) => {
40
- headerLines.push(header);
41
- });
42
- }
43
- headerLines.push('---');
44
- return headerLines.join('\n');
45
- }
46
- getLinkingStrategy() {
47
- return 'path-relative';
48
- }
49
- }
50
- exports.JekyllDocsProcessor = JekyllDocsProcessor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JekyllDocsProcessor = void 0;
4
+ const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
5
+ const markdown_home_file_1 = require("../../../model/markdown-home-file");
6
+ const markdown_type_file_1 = require("../../../model/markdown-type-file");
7
+ const settings_1 = require("../../../settings");
8
+ class JekyllDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.onBeforeProcess = (types) => {
12
+ this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types, this.frontMatterForHomeFile));
13
+ };
14
+ }
15
+ homeFileName() {
16
+ return 'index';
17
+ }
18
+ onProcess(type) {
19
+ this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type, 1, this.getFrontMatterHeader(type)));
20
+ }
21
+ get frontMatterForHomeFile() {
22
+ return '---\nlayout: default\n---';
23
+ }
24
+ getFrontMatterHeader(type) {
25
+ var _a;
26
+ const headerLines = ['---'];
27
+ // "layout: default" is a required front matter header for Jekyll
28
+ headerLines.push('layout: default');
29
+ // Add any additional front matter headers that might have been configured in the settings
30
+ const targetType = {
31
+ name: type.name,
32
+ typeName: type.type_name,
33
+ accessModifier: type.access_modifier,
34
+ group: type.group,
35
+ description: (_a = type.docComment) === null || _a === void 0 ? void 0 : _a.description,
36
+ };
37
+ const configuredHeaders = settings_1.Settings.getInstance().frontMatterHeader(targetType);
38
+ if (configuredHeaders) {
39
+ configuredHeaders.forEach((header) => {
40
+ headerLines.push(header);
41
+ });
42
+ }
43
+ headerLines.push('---');
44
+ return headerLines.join('\n');
45
+ }
46
+ getLinkingStrategy() {
47
+ return 'path-relative';
48
+ }
49
+ }
50
+ exports.JekyllDocsProcessor = JekyllDocsProcessor;
51
51
  //# sourceMappingURL=jekyll-docsProcessor.js.map
@@ -1,11 +1,11 @@
1
- import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
- import { Type } from '@cparra/apex-reflection';
3
- import { FileContainer } from '../file-container';
4
- export declare abstract class MarkdownTranspilerBase extends ProcessorTypeTranspiler {
5
- protected readonly _fileContainer: FileContainer;
6
- constructor();
7
- abstract homeFileName(): string;
8
- fileBuilder(): FileContainer;
9
- onBeforeProcess: (types: Type[]) => void;
10
- onProcess(type: Type): void;
11
- }
1
+ import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ import { FileContainer } from '../file-container';
4
+ export declare abstract class MarkdownTranspilerBase extends ProcessorTypeTranspiler {
5
+ protected readonly _fileContainer: FileContainer;
6
+ constructor();
7
+ abstract homeFileName(): string;
8
+ fileBuilder(): FileContainer;
9
+ onBeforeProcess: (types: Type[]) => void;
10
+ onProcess(type: Type): void;
11
+ }
@@ -1,24 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MarkdownTranspilerBase = void 0;
4
- const processor_type_transpiler_1 = require("../processor-type-transpiler");
5
- const file_container_1 = require("../file-container");
6
- const markdown_home_file_1 = require("../../model/markdown-home-file");
7
- const markdown_type_file_1 = require("../../model/markdown-type-file");
8
- class MarkdownTranspilerBase extends processor_type_transpiler_1.default {
9
- constructor() {
10
- super();
11
- this.onBeforeProcess = (types) => {
12
- this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types));
13
- };
14
- this._fileContainer = new file_container_1.FileContainer();
15
- }
16
- fileBuilder() {
17
- return this._fileContainer;
18
- }
19
- onProcess(type) {
20
- this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type));
21
- }
22
- }
23
- exports.MarkdownTranspilerBase = MarkdownTranspilerBase;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarkdownTranspilerBase = void 0;
4
+ const processor_type_transpiler_1 = require("../processor-type-transpiler");
5
+ const file_container_1 = require("../file-container");
6
+ const markdown_home_file_1 = require("../../model/markdown-home-file");
7
+ const markdown_type_file_1 = require("../../model/markdown-type-file");
8
+ class MarkdownTranspilerBase extends processor_type_transpiler_1.default {
9
+ constructor() {
10
+ super();
11
+ this.onBeforeProcess = (types) => {
12
+ this._fileContainer.pushFile(new markdown_home_file_1.MarkdownHomeFile(this.homeFileName(), types));
13
+ };
14
+ this._fileContainer = new file_container_1.FileContainer();
15
+ }
16
+ fileBuilder() {
17
+ return this._fileContainer;
18
+ }
19
+ onProcess(type) {
20
+ this._fileContainer.pushFile(new markdown_type_file_1.MarkdownTypeFile(type));
21
+ }
22
+ }
23
+ exports.MarkdownTranspilerBase = MarkdownTranspilerBase;
24
24
  //# sourceMappingURL=markdown-transpiler-base.js.map
@@ -1,6 +1,6 @@
1
- import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
- import { LinkingStrategy } from '../../processor-type-transpiler';
3
- export declare class PlainMarkdownDocsProcessor extends MarkdownTranspilerBase {
4
- homeFileName(): string;
5
- getLinkingStrategy(): LinkingStrategy;
6
- }
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { LinkingStrategy } from '../../processor-type-transpiler';
3
+ export declare class PlainMarkdownDocsProcessor extends MarkdownTranspilerBase {
4
+ homeFileName(): string;
5
+ getLinkingStrategy(): LinkingStrategy;
6
+ }
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlainMarkdownDocsProcessor = void 0;
4
- const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
5
- class PlainMarkdownDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
6
- homeFileName() {
7
- return 'index';
8
- }
9
- getLinkingStrategy() {
10
- return 'path-relative';
11
- }
12
- }
13
- exports.PlainMarkdownDocsProcessor = PlainMarkdownDocsProcessor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlainMarkdownDocsProcessor = void 0;
4
+ const markdown_transpiler_base_1 = require("../markdown-transpiler-base");
5
+ class PlainMarkdownDocsProcessor extends markdown_transpiler_base_1.MarkdownTranspilerBase {
6
+ homeFileName() {
7
+ return 'index';
8
+ }
9
+ getLinkingStrategy() {
10
+ return 'path-relative';
11
+ }
12
+ }
13
+ exports.PlainMarkdownDocsProcessor = PlainMarkdownDocsProcessor;
14
14
  //# sourceMappingURL=plain-docsProcessor.js.map
@@ -1,13 +1,13 @@
1
- import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
- import { FileContainer } from '../file-container';
3
- import { Type } from '@cparra/apex-reflection';
4
- import { OpenApi } from '../../model/openapi/open-api';
5
- export declare class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
6
- protected readonly _fileContainer: FileContainer;
7
- openApiModel: OpenApi;
8
- constructor();
9
- fileBuilder(): FileContainer;
10
- onProcess(type: Type): void;
11
- onAfterProcess: ((types: Type[]) => void) | undefined;
12
- private getEndpointPath;
13
- }
1
+ import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
+ import { FileContainer } from '../file-container';
3
+ import { Type } from '@cparra/apex-reflection';
4
+ import { OpenApi } from '../../model/openapi/open-api';
5
+ export declare class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
6
+ protected readonly _fileContainer: FileContainer;
7
+ openApiModel: OpenApi;
8
+ constructor();
9
+ fileBuilder(): FileContainer;
10
+ onProcess(type: Type): void;
11
+ onAfterProcess: ((types: Type[]) => void) | undefined;
12
+ private getEndpointPath;
13
+ }
@@ -1,75 +1,75 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenApiDocsProcessor = void 0;
4
- const processor_type_transpiler_1 = require("../processor-type-transpiler");
5
- const file_container_1 = require("../file-container");
6
- const openapi_type_file_1 = require("../../model/openapi/openapi-type-file");
7
- const logger_1 = require("../../util/logger");
8
- const open_api_1 = require("../../model/openapi/open-api");
9
- const settings_1 = require("../../settings");
10
- const MethodParser_1 = require("./parsers/MethodParser");
11
- const string_utils_1 = require("../../util/string-utils");
12
- class OpenApiDocsProcessor extends processor_type_transpiler_1.default {
13
- constructor() {
14
- super();
15
- this.onAfterProcess = () => {
16
- this._fileContainer.pushFile(new openapi_type_file_1.OpenapiTypeFile(this.openApiModel));
17
- };
18
- this._fileContainer = new file_container_1.FileContainer();
19
- const title = settings_1.Settings.getInstance().getOpenApiTitle();
20
- if (!title) {
21
- throw Error('No OpenApi title was provided.');
22
- }
23
- this.openApiModel = new open_api_1.OpenApi(title, '1.0.0', settings_1.Settings.getInstance().getNamespace());
24
- }
25
- fileBuilder() {
26
- return this._fileContainer;
27
- }
28
- onProcess(type) {
29
- var _a, _b;
30
- logger_1.Logger.logSingle(`Processing ${type.name}`, false, 'green', false);
31
- const endpointPath = this.getEndpointPath(type);
32
- if (!endpointPath) {
33
- return;
34
- }
35
- this.openApiModel.paths[endpointPath] = {};
36
- if ((_a = type.docComment) === null || _a === void 0 ? void 0 : _a.description) {
37
- this.openApiModel.paths[endpointPath].description = type.docComment.description;
38
- }
39
- // We can safely cast to a ClassMirror, since only these support the @RestResource annotation
40
- const typeAsClass = type;
41
- // Add tags for this Apex class to the OpenApi model
42
- const tagName = (0, string_utils_1.camel2title)(endpointPath);
43
- this.openApiModel.tags.push({
44
- name: tagName,
45
- description: (_b = type.docComment) === null || _b === void 0 ? void 0 : _b.description,
46
- });
47
- const parser = new MethodParser_1.MethodParser(this.openApiModel);
48
- // GET
49
- parser.parseMethod(typeAsClass, endpointPath, 'get', tagName);
50
- // PATCH
51
- parser.parseMethod(typeAsClass, endpointPath, 'patch', tagName);
52
- // POST
53
- parser.parseMethod(typeAsClass, endpointPath, 'post', tagName);
54
- // PUT
55
- parser.parseMethod(typeAsClass, endpointPath, 'put', tagName);
56
- // DELETE
57
- parser.parseMethod(typeAsClass, endpointPath, 'delete', tagName);
58
- }
59
- getEndpointPath(type) {
60
- var _a;
61
- const restResourceAnnotation = type.annotations.find((element) => element.name.toLowerCase() === 'restresource');
62
- const urlMapping = (_a = restResourceAnnotation === null || restResourceAnnotation === void 0 ? void 0 : restResourceAnnotation.elementValues) === null || _a === void 0 ? void 0 : _a.find((element) => element.key.toLowerCase() === 'urlmapping');
63
- if (!urlMapping) {
64
- logger_1.Logger.error(`Type does not contain urlMapping annotation ${type.name}`);
65
- return null;
66
- }
67
- let endpointPath = urlMapping.value.replaceAll('"', '').replaceAll("'", '').replaceAll('/*', '/');
68
- if (endpointPath.startsWith('/')) {
69
- endpointPath = endpointPath.substring(1);
70
- }
71
- return endpointPath;
72
- }
73
- }
74
- exports.OpenApiDocsProcessor = OpenApiDocsProcessor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenApiDocsProcessor = void 0;
4
+ const processor_type_transpiler_1 = require("../processor-type-transpiler");
5
+ const file_container_1 = require("../file-container");
6
+ const openapi_type_file_1 = require("../../model/openapi/openapi-type-file");
7
+ const logger_1 = require("../../util/logger");
8
+ const open_api_1 = require("../../model/openapi/open-api");
9
+ const settings_1 = require("../../settings");
10
+ const MethodParser_1 = require("./parsers/MethodParser");
11
+ const string_utils_1 = require("../../util/string-utils");
12
+ class OpenApiDocsProcessor extends processor_type_transpiler_1.default {
13
+ constructor() {
14
+ super();
15
+ this.onAfterProcess = () => {
16
+ this._fileContainer.pushFile(new openapi_type_file_1.OpenapiTypeFile(this.openApiModel));
17
+ };
18
+ this._fileContainer = new file_container_1.FileContainer();
19
+ const title = settings_1.Settings.getInstance().getOpenApiTitle();
20
+ if (!title) {
21
+ throw Error('No OpenApi title was provided.');
22
+ }
23
+ this.openApiModel = new open_api_1.OpenApi(title, '1.0.0', settings_1.Settings.getInstance().getNamespace());
24
+ }
25
+ fileBuilder() {
26
+ return this._fileContainer;
27
+ }
28
+ onProcess(type) {
29
+ var _a, _b;
30
+ logger_1.Logger.logSingle(`Processing ${type.name}`, false, 'green', false);
31
+ const endpointPath = this.getEndpointPath(type);
32
+ if (!endpointPath) {
33
+ return;
34
+ }
35
+ this.openApiModel.paths[endpointPath] = {};
36
+ if ((_a = type.docComment) === null || _a === void 0 ? void 0 : _a.description) {
37
+ this.openApiModel.paths[endpointPath].description = type.docComment.description;
38
+ }
39
+ // We can safely cast to a ClassMirror, since only these support the @RestResource annotation
40
+ const typeAsClass = type;
41
+ // Add tags for this Apex class to the OpenApi model
42
+ const tagName = (0, string_utils_1.camel2title)(endpointPath);
43
+ this.openApiModel.tags.push({
44
+ name: tagName,
45
+ description: (_b = type.docComment) === null || _b === void 0 ? void 0 : _b.description,
46
+ });
47
+ const parser = new MethodParser_1.MethodParser(this.openApiModel);
48
+ // GET
49
+ parser.parseMethod(typeAsClass, endpointPath, 'get', tagName);
50
+ // PATCH
51
+ parser.parseMethod(typeAsClass, endpointPath, 'patch', tagName);
52
+ // POST
53
+ parser.parseMethod(typeAsClass, endpointPath, 'post', tagName);
54
+ // PUT
55
+ parser.parseMethod(typeAsClass, endpointPath, 'put', tagName);
56
+ // DELETE
57
+ parser.parseMethod(typeAsClass, endpointPath, 'delete', tagName);
58
+ }
59
+ getEndpointPath(type) {
60
+ var _a;
61
+ const restResourceAnnotation = type.annotations.find((element) => element.name.toLowerCase() === 'restresource');
62
+ const urlMapping = (_a = restResourceAnnotation === null || restResourceAnnotation === void 0 ? void 0 : restResourceAnnotation.elementValues) === null || _a === void 0 ? void 0 : _a.find((element) => element.key.toLowerCase() === 'urlmapping');
63
+ if (!urlMapping) {
64
+ logger_1.Logger.error(`Type does not contain urlMapping annotation ${type.name}`);
65
+ return null;
66
+ }
67
+ let endpointPath = urlMapping.value.replaceAll('"', '').replaceAll("'", '').replaceAll('/*', '/');
68
+ if (endpointPath.startsWith('/')) {
69
+ endpointPath = endpointPath.substring(1);
70
+ }
71
+ return endpointPath;
72
+ }
73
+ }
74
+ exports.OpenApiDocsProcessor = OpenApiDocsProcessor;
75
75
  //# sourceMappingURL=open-api-docs-processor.js.map
@@ -1,16 +1,16 @@
1
- import { Reference } from './ReferenceBuilder';
2
- import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
3
- import { SchemaObject } from '../../../model/openapi/open-api-types';
4
- export type ApexDocSchemaAware = {
5
- schema: ApexDocSchemaObject;
6
- };
7
- export declare abstract class Builder<T, K> {
8
- build(schemaAware: ApexDocSchemaAware): Response<T>;
9
- abstract buildBody(apexDocObject: K, reference?: Reference): T;
10
- protected getOpenApiSchemaFromApexDocSchema(schemaAware: ApexDocSchemaAware, reference?: Reference): SchemaObject;
11
- private isReferenceString;
12
- }
13
- export interface Response<T> {
14
- reference?: Reference;
15
- body: T;
16
- }
1
+ import { Reference } from './ReferenceBuilder';
2
+ import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
3
+ import { SchemaObject } from '../../../model/openapi/open-api-types';
4
+ export type ApexDocSchemaAware = {
5
+ schema: ApexDocSchemaObject;
6
+ };
7
+ export declare abstract class Builder<T, K> {
8
+ build(schemaAware: ApexDocSchemaAware): Response<T>;
9
+ abstract buildBody(apexDocObject: K, reference?: Reference): T;
10
+ protected getOpenApiSchemaFromApexDocSchema(schemaAware: ApexDocSchemaAware, reference?: Reference): SchemaObject;
11
+ private isReferenceString;
12
+ }
13
+ export interface Response<T> {
14
+ reference?: Reference;
15
+ body: T;
16
+ }
@@ -1,30 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Builder = void 0;
4
- const ReferenceBuilder_1 = require("./ReferenceBuilder");
5
- class Builder {
6
- constructor() {
7
- this.isReferenceString = (targetObject) => {
8
- return typeof targetObject === 'string' || targetObject instanceof String;
9
- };
10
- }
11
- build(schemaAware) {
12
- let reference;
13
- if (this.isReferenceString(schemaAware.schema)) {
14
- reference = new ReferenceBuilder_1.ReferenceBuilder().build(schemaAware.schema);
15
- }
16
- return {
17
- reference: reference,
18
- body: this.buildBody(schemaAware, reference),
19
- };
20
- }
21
- getOpenApiSchemaFromApexDocSchema(schemaAware, reference) {
22
- if (this.isReferenceString(schemaAware.schema)) {
23
- // We are dealing with a reference
24
- return reference.entrypointReferenceObject;
25
- }
26
- return schemaAware.schema;
27
- }
28
- }
29
- exports.Builder = Builder;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Builder = void 0;
4
+ const ReferenceBuilder_1 = require("./ReferenceBuilder");
5
+ class Builder {
6
+ constructor() {
7
+ this.isReferenceString = (targetObject) => {
8
+ return typeof targetObject === 'string' || targetObject instanceof String;
9
+ };
10
+ }
11
+ build(schemaAware) {
12
+ let reference;
13
+ if (this.isReferenceString(schemaAware.schema)) {
14
+ reference = new ReferenceBuilder_1.ReferenceBuilder().build(schemaAware.schema);
15
+ }
16
+ return {
17
+ reference: reference,
18
+ body: this.buildBody(schemaAware, reference),
19
+ };
20
+ }
21
+ getOpenApiSchemaFromApexDocSchema(schemaAware, reference) {
22
+ if (this.isReferenceString(schemaAware.schema)) {
23
+ // We are dealing with a reference
24
+ return reference.entrypointReferenceObject;
25
+ }
26
+ return schemaAware.schema;
27
+ }
28
+ }
29
+ exports.Builder = Builder;
30
30
  //# sourceMappingURL=Builder.js.map
@@ -1,20 +1,20 @@
1
- import { ClassMirror } from '@cparra/apex-reflection';
2
- import { OpenApi } from '../../../model/openapi/open-api';
3
- type HttpOperations = 'get' | 'put' | 'post' | 'delete' | 'patch';
4
- /**
5
- * Parses ApexDocs with HTTP REST annotations and turns them into an OpenApi specification.
6
- */
7
- export declare class MethodParser {
8
- openApiModel: OpenApi;
9
- constructor(openApiModel: OpenApi);
10
- parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations, tag: string): void;
11
- private parseHttpAnnotation;
12
- private addToOpenApiStrategy;
13
- private addRequestBodyToOpenApi;
14
- private addParametersToOpenApi;
15
- private addHttpResponsesToOpenApi;
16
- private fallbackHttpRequestBodyParser;
17
- private getFallbackHttpResponseParser;
18
- private addReference;
19
- }
20
- export {};
1
+ import { ClassMirror } from '@cparra/apex-reflection';
2
+ import { OpenApi } from '../../../model/openapi/open-api';
3
+ type HttpOperations = 'get' | 'put' | 'post' | 'delete' | 'patch';
4
+ /**
5
+ * Parses ApexDocs with HTTP REST annotations and turns them into an OpenApi specification.
6
+ */
7
+ export declare class MethodParser {
8
+ openApiModel: OpenApi;
9
+ constructor(openApiModel: OpenApi);
10
+ parseMethod(classMirror: ClassMirror, httpUrlEndpoint: string, httpMethodKey: HttpOperations, tag: string): void;
11
+ private parseHttpAnnotation;
12
+ private addToOpenApiStrategy;
13
+ private addRequestBodyToOpenApi;
14
+ private addParametersToOpenApi;
15
+ private addHttpResponsesToOpenApi;
16
+ private fallbackHttpRequestBodyParser;
17
+ private getFallbackHttpResponseParser;
18
+ private addReference;
19
+ }
20
+ export {};