@cparra/apexdocs 2.25.0-alpha.8 → 2.25.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 (429) hide show
  1. package/.eslintrc.js +12 -0
  2. package/README.md +12 -73
  3. package/apexdocs.config.ts +13 -0
  4. package/docs/.nojekyll +0 -0
  5. package/docs/README.md +1 -0
  6. package/docs/index.html +22 -0
  7. package/docs/restapi.json +589 -0
  8. package/docs/types/Classes/nspc.AnotherInterface.md +22 -0
  9. package/docs/types/Classes/nspc.ChildClass.md +97 -0
  10. package/docs/types/Main/nspc.GroupedClass.md +10 -0
  11. package/docs/types/Main/nspc.SampleClass.md +190 -0
  12. package/docs/types/Misc-Group/nspc.EscapedAnnotations.md +4 -0
  13. package/docs/types/Misc-Group/nspc.GrandparentClass.md +13 -0
  14. package/docs/types/Misc-Group/nspc.InterfaceWithInheritance.md +29 -0
  15. package/docs/types/Misc-Group/nspc.MemberGrouping.md +13 -0
  16. package/docs/types/Misc-Group/nspc.ParentClass.md +37 -0
  17. package/docs/types/Misc-Group/nspc.Reference1.md +18 -0
  18. package/docs/types/Misc-Group/nspc.Reference2.md +12 -0
  19. package/docs/types/Misc-Group/nspc.Reference3.md +7 -0
  20. package/docs/types/Misc-Group/nspc.Reference4.md +7 -0
  21. package/docs/types/Misc-Group/nspc.Reference5.md +7 -0
  22. package/docs/types/Misc-Group/nspc.Reference6.md +9 -0
  23. package/docs/types/Misc-Group/nspc.Reference7.md +7 -0
  24. package/docs/types/Misc-Group/nspc.SampleClassWithoutModifier.md +11 -0
  25. package/docs/types/Misc-Group/nspc.SampleRestResource.md +211 -0
  26. package/docs/types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +34 -0
  27. package/docs/types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +14 -0
  28. package/docs/types/README.md +97 -0
  29. package/docs/types/Sample-Interfaces/nspc.SampleInterface.md +23 -0
  30. package/examples/includes/header.md +3 -0
  31. package/jest.config.js +1 -6
  32. package/lib/application/Apexdocs.d.ts +13 -0
  33. package/lib/application/Apexdocs.js +77 -0
  34. package/lib/application/Apexdocs.js.map +1 -0
  35. package/lib/cli/generate.d.ts +2 -0
  36. package/lib/cli/generate.js +131 -0
  37. package/lib/cli/generate.js.map +1 -0
  38. package/lib/index.d.ts +1 -0
  39. package/lib/index.js +18 -0
  40. package/lib/index.js.map +1 -0
  41. package/lib/model/apex-bundle.d.ts +6 -0
  42. package/lib/model/apex-bundle.js +11 -0
  43. package/lib/model/apex-bundle.js.map +1 -0
  44. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +7 -0
  45. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +14 -0
  46. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js.map +1 -0
  47. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +7 -0
  48. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js +12 -0
  49. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js.map +1 -0
  50. package/lib/model/inheritance.d.ts +8 -0
  51. package/lib/model/inheritance.js +3 -0
  52. package/lib/model/inheritance.js.map +1 -0
  53. package/lib/model/manifest-diff.d.ts +27 -0
  54. package/lib/model/manifest-diff.js +69 -0
  55. package/lib/model/manifest-diff.js.map +1 -0
  56. package/lib/model/manifest.d.ts +22 -0
  57. package/lib/model/manifest.js +47 -0
  58. package/lib/model/manifest.js.map +1 -0
  59. package/lib/model/markdown-file.d.ts +16 -0
  60. package/lib/model/markdown-file.js +107 -0
  61. package/lib/model/markdown-file.js.map +1 -0
  62. package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +8 -0
  63. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +44 -0
  64. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -0
  65. package/lib/model/markdown-generation-util/field-declaration-util.d.ts +3 -0
  66. package/lib/model/markdown-generation-util/field-declaration-util.js +55 -0
  67. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -0
  68. package/lib/model/markdown-generation-util/index.d.ts +3 -0
  69. package/lib/model/markdown-generation-util/index.js +20 -0
  70. package/lib/model/markdown-generation-util/index.js.map +1 -0
  71. package/lib/model/markdown-generation-util/method-declaration-util.d.ts +4 -0
  72. package/lib/model/markdown-generation-util/method-declaration-util.js +115 -0
  73. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -0
  74. package/lib/model/markdown-generation-util/type-declaration-util.d.ts +3 -0
  75. package/lib/model/markdown-generation-util/type-declaration-util.js +82 -0
  76. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -0
  77. package/lib/model/markdown-home-file.d.ts +11 -0
  78. package/lib/model/markdown-home-file.js +54 -0
  79. package/lib/model/markdown-home-file.js.map +1 -0
  80. package/lib/model/markdown-type-file.d.ts +26 -0
  81. package/lib/model/markdown-type-file.js +134 -0
  82. package/lib/model/markdown-type-file.js.map +1 -0
  83. package/lib/model/openapi/apex-doc-types.d.ts +19 -0
  84. package/lib/model/openapi/apex-doc-types.js +5 -0
  85. package/lib/model/openapi/apex-doc-types.js.map +1 -0
  86. package/lib/model/openapi/open-api-types.d.ts +93 -0
  87. package/lib/model/openapi/open-api-types.js +3 -0
  88. package/lib/model/openapi/open-api-types.js.map +1 -0
  89. package/lib/model/openapi/open-api.d.ts +16 -0
  90. package/lib/model/openapi/open-api.js +34 -0
  91. package/lib/model/openapi/open-api.js.map +1 -0
  92. package/lib/model/openapi/openapi-type-file.d.ts +7 -0
  93. package/lib/model/openapi/openapi-type-file.js +17 -0
  94. package/lib/model/openapi/openapi-type-file.js.map +1 -0
  95. package/lib/model/outputFile.d.ts +10 -0
  96. package/lib/model/outputFile.js +29 -0
  97. package/lib/model/outputFile.js.map +1 -0
  98. package/lib/model/types-repository.d.ts +16 -0
  99. package/lib/model/types-repository.js +54 -0
  100. package/lib/model/types-repository.js.map +1 -0
  101. package/lib/service/apex-file-reader.d.ts +14 -0
  102. package/lib/service/apex-file-reader.js +46 -0
  103. package/lib/service/apex-file-reader.js.map +1 -0
  104. package/lib/service/file-system.d.ts +14 -0
  105. package/lib/service/file-system.js +25 -0
  106. package/lib/service/file-system.js.map +1 -0
  107. package/lib/service/file-writer.d.ts +6 -0
  108. package/lib/service/file-writer.js +34 -0
  109. package/lib/service/file-writer.js.map +1 -0
  110. package/lib/service/manifest-factory.d.ts +10 -0
  111. package/lib/service/manifest-factory.js +14 -0
  112. package/lib/service/manifest-factory.js.map +1 -0
  113. package/lib/service/metadata-processor.d.ts +3 -0
  114. package/lib/service/metadata-processor.js +17 -0
  115. package/lib/service/metadata-processor.js.map +1 -0
  116. package/lib/service/parser.d.ts +21 -0
  117. package/lib/service/parser.js +135 -0
  118. package/lib/service/parser.js.map +1 -0
  119. package/lib/service/state.d.ts +9 -0
  120. package/lib/service/state.js +20 -0
  121. package/lib/service/state.js.map +1 -0
  122. package/lib/service/walkers/class-walker.d.ts +4 -0
  123. package/lib/service/walkers/class-walker.js +33 -0
  124. package/lib/service/walkers/class-walker.js.map +1 -0
  125. package/lib/service/walkers/enum-walker.d.ts +4 -0
  126. package/lib/service/walkers/enum-walker.js +11 -0
  127. package/lib/service/walkers/enum-walker.js.map +1 -0
  128. package/lib/service/walkers/interface-walker.d.ts +4 -0
  129. package/lib/service/walkers/interface-walker.js +15 -0
  130. package/lib/service/walkers/interface-walker.js.map +1 -0
  131. package/lib/service/walkers/walker-factory.d.ts +5 -0
  132. package/lib/service/walkers/walker-factory.js +21 -0
  133. package/lib/service/walkers/walker-factory.js.map +1 -0
  134. package/lib/service/walkers/walker.d.ts +19 -0
  135. package/lib/service/walkers/walker.js +17 -0
  136. package/lib/service/walkers/walker.js.map +1 -0
  137. package/lib/settings.d.ts +64 -0
  138. package/lib/settings.js +89 -0
  139. package/lib/settings.js.map +1 -0
  140. package/lib/test-helpers/AnnotationBuilder.d.ts +12 -0
  141. package/lib/test-helpers/AnnotationBuilder.js +31 -0
  142. package/lib/test-helpers/AnnotationBuilder.js.map +1 -0
  143. package/lib/test-helpers/ClassMirrorBuilder.d.ts +18 -0
  144. package/lib/test-helpers/ClassMirrorBuilder.js +54 -0
  145. package/lib/test-helpers/ClassMirrorBuilder.js.map +1 -0
  146. package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +8 -0
  147. package/lib/test-helpers/DocCommentAnnotationBuilder.js +26 -0
  148. package/lib/test-helpers/DocCommentAnnotationBuilder.js.map +1 -0
  149. package/lib/test-helpers/DocCommentBuilder.d.ts +12 -0
  150. package/lib/test-helpers/DocCommentBuilder.js +38 -0
  151. package/lib/test-helpers/DocCommentBuilder.js.map +1 -0
  152. package/lib/test-helpers/FieldMirrorBuilder.d.ts +18 -0
  153. package/lib/test-helpers/FieldMirrorBuilder.js +54 -0
  154. package/lib/test-helpers/FieldMirrorBuilder.js.map +1 -0
  155. package/lib/test-helpers/MethodMirrorBuilder.d.ts +10 -0
  156. package/lib/test-helpers/MethodMirrorBuilder.js +37 -0
  157. package/lib/test-helpers/MethodMirrorBuilder.js.map +1 -0
  158. package/lib/test-helpers/SettingsBuilder.d.ts +8 -0
  159. package/lib/test-helpers/SettingsBuilder.js +27 -0
  160. package/lib/test-helpers/SettingsBuilder.js.map +1 -0
  161. package/lib/transpiler/factory.d.ts +6 -0
  162. package/lib/transpiler/factory.js +32 -0
  163. package/lib/transpiler/factory.js.map +1 -0
  164. package/lib/transpiler/file-container.d.ts +6 -0
  165. package/lib/transpiler/file-container.js +16 -0
  166. package/lib/transpiler/file-container.js.map +1 -0
  167. package/lib/transpiler/generator-choices.d.ts +1 -0
  168. package/lib/transpiler/generator-choices.js +3 -0
  169. package/lib/transpiler/generator-choices.js.map +1 -0
  170. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +8 -0
  171. package/lib/transpiler/markdown/class-file-generatorHelper.js +56 -0
  172. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -0
  173. package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +6 -0
  174. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +13 -0
  175. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +1 -0
  176. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +11 -0
  177. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +51 -0
  178. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -0
  179. package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +11 -0
  180. package/lib/transpiler/markdown/markdown-transpiler-base.js +24 -0
  181. package/lib/transpiler/markdown/markdown-transpiler-base.js.map +1 -0
  182. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +6 -0
  183. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +14 -0
  184. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +1 -0
  185. package/lib/transpiler/openapi/open-api-docs-processor.d.ts +13 -0
  186. package/lib/transpiler/openapi/open-api-docs-processor.js +75 -0
  187. package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -0
  188. package/lib/transpiler/openapi/parsers/Builder.d.ts +16 -0
  189. package/lib/transpiler/openapi/parsers/Builder.js +30 -0
  190. package/lib/transpiler/openapi/parsers/Builder.js.map +1 -0
  191. package/lib/transpiler/openapi/parsers/MethodParser.d.ts +20 -0
  192. package/lib/transpiler/openapi/parsers/MethodParser.js +167 -0
  193. package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -0
  194. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +7 -0
  195. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +11 -0
  196. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +1 -0
  197. package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +39 -0
  198. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +226 -0
  199. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -0
  200. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +10 -0
  201. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +20 -0
  202. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js.map +1 -0
  203. package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +7 -0
  204. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +22 -0
  205. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +1 -0
  206. package/lib/transpiler/processor-type-transpiler.d.ts +10 -0
  207. package/lib/transpiler/processor-type-transpiler.js +9 -0
  208. package/lib/transpiler/processor-type-transpiler.js.map +1 -0
  209. package/lib/transpiler/transpiler.d.ts +5 -0
  210. package/lib/transpiler/transpiler.js +27 -0
  211. package/lib/transpiler/transpiler.js.map +1 -0
  212. package/lib/util/error-logger.d.ts +8 -0
  213. package/lib/util/error-logger.js +90 -0
  214. package/lib/util/error-logger.js.map +1 -0
  215. package/lib/util/logger.d.ts +21 -0
  216. package/lib/util/logger.js +58 -0
  217. package/lib/util/logger.js.map +1 -0
  218. package/lib/util/string-utils.d.ts +2 -0
  219. package/lib/util/string-utils.js +15 -0
  220. package/lib/util/string-utils.js.map +1 -0
  221. package/package.json +36 -35
  222. package/src/application/Apexdocs.ts +70 -17
  223. package/src/cli/generate.ts +131 -10
  224. package/src/index.ts +1 -35
  225. package/src/model/__tests__/manifest-diff.spec.ts +147 -0
  226. package/src/model/apex-bundle.ts +3 -0
  227. package/src/{core/openapi → model}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  228. package/src/model/inheritance.ts +7 -0
  229. package/src/model/manifest-diff.ts +94 -0
  230. package/src/model/manifest.ts +74 -0
  231. package/src/model/markdown-file.ts +121 -0
  232. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +50 -0
  233. package/src/model/markdown-generation-util/field-declaration-util.ts +71 -0
  234. package/src/model/markdown-generation-util/index.ts +3 -0
  235. package/src/model/markdown-generation-util/method-declaration-util.ts +166 -0
  236. package/src/model/markdown-generation-util/type-declaration-util.ts +91 -0
  237. package/src/model/markdown-home-file.ts +58 -0
  238. package/src/model/markdown-type-file.ts +165 -0
  239. package/src/{core → model}/openapi/open-api-types.ts +2 -2
  240. package/src/model/openapi/openapi-type-file.ts +14 -0
  241. package/src/model/outputFile.ts +29 -0
  242. package/src/{core/openapi → model}/types-repository.ts +9 -0
  243. package/src/service/__tests__/apex-file-reader.spec.ts +92 -0
  244. package/src/{core/openapi → service}/__tests__/manifest-factory.spec.ts +2 -1
  245. package/src/service/apex-file-reader.ts +51 -0
  246. package/src/service/file-writer.ts +34 -0
  247. package/src/{core/openapi → service}/manifest-factory.ts +3 -3
  248. package/src/service/metadata-processor.ts +16 -0
  249. package/src/{core/openapi → service}/parser.ts +9 -9
  250. package/src/service/state.ts +24 -0
  251. package/src/service/walkers/class-walker.ts +30 -0
  252. package/src/service/walkers/enum-walker.ts +7 -0
  253. package/src/service/walkers/interface-walker.ts +12 -0
  254. package/src/service/walkers/walker-factory.ts +19 -0
  255. package/src/service/walkers/walker.ts +42 -0
  256. package/src/settings.ts +147 -0
  257. package/src/test-helpers/ClassMirrorBuilder.ts +1 -14
  258. package/src/test-helpers/FieldMirrorBuilder.ts +1 -1
  259. package/src/test-helpers/MethodMirrorBuilder.ts +6 -46
  260. package/src/test-helpers/SettingsBuilder.ts +4 -1
  261. package/src/transpiler/factory.ts +33 -0
  262. package/src/transpiler/file-container.ts +13 -0
  263. package/src/transpiler/generator-choices.ts +1 -0
  264. package/src/transpiler/markdown/class-file-generatorHelper.ts +58 -0
  265. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +12 -0
  266. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +50 -0
  267. package/src/transpiler/markdown/markdown-transpiler-base.ts +28 -0
  268. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +12 -0
  269. package/src/{core → transpiler}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  270. package/src/{core → transpiler}/openapi/open-api-docs-processor.ts +10 -9
  271. package/src/{core → transpiler}/openapi/parsers/Builder.ts +3 -3
  272. package/src/{core → transpiler}/openapi/parsers/MethodParser.ts +6 -6
  273. package/src/{core → transpiler}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  274. package/src/{core → transpiler}/openapi/parsers/ReferenceBuilder.ts +6 -7
  275. package/src/{core → transpiler}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  276. package/src/{core → transpiler}/openapi/parsers/ResponsesBuilder.ts +2 -2
  277. package/src/{core → transpiler}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  278. package/src/{core → transpiler}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  279. package/src/{core → transpiler}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  280. package/src/{core → transpiler}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  281. package/src/{core → transpiler}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  282. package/src/transpiler/processor-type-transpiler.ts +18 -0
  283. package/src/{core/openapi → transpiler}/transpiler.ts +6 -2
  284. package/src/util/error-logger.ts +4 -4
  285. package/src/util/logger.ts +6 -6
  286. package/src/util/string-utils.ts +4 -0
  287. package/tsconfig.json +3 -8
  288. package/.github/workflows/ci.yaml +0 -22
  289. package/__mocks__/chalk.js +0 -12
  290. package/__mocks__/log-update.js +0 -6
  291. package/dist/cli/generate.js +0 -2976
  292. package/dist/defaults-DUwru49Q.js +0 -12
  293. package/dist/defaults-SH0Rsi5E.js +0 -11
  294. package/dist/index.d.ts +0 -62
  295. package/dist/index.js +0 -36
  296. package/eslint.config.mjs +0 -10
  297. package/examples/plain-markdown/.forceignore +0 -12
  298. package/examples/plain-markdown/config/project-scratch-def.json +0 -5
  299. package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +0 -16
  300. package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +0 -73
  301. package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +0 -15
  302. package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +0 -8
  303. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +0 -25
  304. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +0 -119
  305. package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +0 -320
  306. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +0 -38
  307. package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +0 -173
  308. package/examples/plain-markdown/docs/index.md +0 -117
  309. package/examples/plain-markdown/force-app/classes/BaseClass.cls +0 -3
  310. package/examples/plain-markdown/force-app/classes/MultiInheritanceClass.cls +0 -1
  311. package/examples/plain-markdown/force-app/classes/ParentInterface.cls +0 -3
  312. package/examples/plain-markdown/force-app/classes/ReferencedEnum.cls +0 -3
  313. package/examples/plain-markdown/force-app/classes/SampleClass.cls +0 -72
  314. package/examples/plain-markdown/force-app/classes/SampleEnum.cls +0 -30
  315. package/examples/plain-markdown/force-app/classes/SampleException.cls +0 -17
  316. package/examples/plain-markdown/force-app/classes/SampleInterface.cls +0 -46
  317. package/examples/plain-markdown/force-app/classes/Url.cls +0 -194
  318. package/examples/plain-markdown/package-lock.json +0 -665
  319. package/examples/plain-markdown/package.json +0 -20
  320. package/examples/plain-markdown/sfdx-project.json +0 -12
  321. package/examples/vitepress/.forceignore +0 -12
  322. package/examples/vitepress/apexdocs.config.ts +0 -108
  323. package/examples/vitepress/config/project-scratch-def.json +0 -13
  324. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +0 -259
  325. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
  326. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +0 -40
  327. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +0 -11474
  328. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +0 -7
  329. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +0 -9172
  330. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +0 -7
  331. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +0 -3
  332. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4339
  333. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  334. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -567
  335. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  336. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +0 -323
  337. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +0 -7
  338. package/examples/vitepress/docs/.vitepress/config.mts +0 -21
  339. package/examples/vitepress/docs/.vitepress/sidebar.json +0 -119
  340. package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +0 -20
  341. package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +0 -76
  342. package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +0 -19
  343. package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +0 -15
  344. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +0 -28
  345. package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +0 -116
  346. package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +0 -317
  347. package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +0 -40
  348. package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +0 -174
  349. package/examples/vitepress/docs/api-examples.md +0 -49
  350. package/examples/vitepress/docs/index-frontmatter.md +0 -16
  351. package/examples/vitepress/docs/index.md +0 -56
  352. package/examples/vitepress/docs/markdown-examples.md +0 -85
  353. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +0 -3
  354. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +0 -1
  355. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +0 -3
  356. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +0 -5
  357. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +0 -72
  358. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +0 -30
  359. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +0 -17
  360. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +0 -46
  361. package/examples/vitepress/force-app/main/default/classes/Url.cls +0 -198
  362. package/examples/vitepress/package-lock.json +0 -2574
  363. package/examples/vitepress/package.json +0 -18
  364. package/examples/vitepress/sfdx-project.json +0 -12
  365. package/jest.d.ts +0 -7
  366. package/src/application/__tests__/apex-file-reader.spec.ts +0 -104
  367. package/src/application/apex-file-reader.ts +0 -42
  368. package/src/application/file-writer.ts +0 -25
  369. package/src/application/generators/markdown.ts +0 -53
  370. package/src/application/generators/openapi.ts +0 -56
  371. package/src/cli/args.ts +0 -43
  372. package/src/cli/commands/markdown.ts +0 -58
  373. package/src/core/manifest.ts +0 -90
  374. package/src/core/markdown/__test__/expect-extensions.ts +0 -32
  375. package/src/core/markdown/__test__/generating-class-docs.spec.ts +0 -733
  376. package/src/core/markdown/__test__/generating-enum-docs.spec.ts +0 -385
  377. package/src/core/markdown/__test__/generating-interface-docs.spec.ts +0 -459
  378. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +0 -184
  379. package/src/core/markdown/__test__/inheritance-chain.test.ts +0 -54
  380. package/src/core/markdown/__test__/test-helpers.ts +0 -22
  381. package/src/core/markdown/adapters/__tests__/documentables.spec.ts +0 -109
  382. package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +0 -112
  383. package/src/core/markdown/adapters/__tests__/references.spec.ts +0 -136
  384. package/src/core/markdown/adapters/apex-types.ts +0 -237
  385. package/src/core/markdown/adapters/documentables.ts +0 -116
  386. package/src/core/markdown/adapters/fields-and-properties.ts +0 -45
  387. package/src/core/markdown/adapters/inline.ts +0 -143
  388. package/src/core/markdown/adapters/methods-and-constructors.ts +0 -133
  389. package/src/core/markdown/adapters/renderable-bundle.ts +0 -144
  390. package/src/core/markdown/adapters/renderable-to-page-data.ts +0 -92
  391. package/src/core/markdown/adapters/type-utils.ts +0 -13
  392. package/src/core/markdown/adapters/types.d.ts +0 -182
  393. package/src/core/markdown/generate-docs.ts +0 -158
  394. package/src/core/markdown/reflection/error-handling.ts +0 -37
  395. package/src/core/markdown/reflection/filter-scope.ts +0 -13
  396. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +0 -22
  397. package/src/core/markdown/reflection/inheritance-chain.ts +0 -23
  398. package/src/core/markdown/reflection/inherited-member-expansion.ts +0 -105
  399. package/src/core/markdown/reflection/reflect-source.ts +0 -41
  400. package/src/core/markdown/reflection/sort-members.ts +0 -59
  401. package/src/core/markdown/templates/class-template.ts +0 -75
  402. package/src/core/markdown/templates/constructors-partial-template.ts +0 -32
  403. package/src/core/markdown/templates/documentable-partial-template.ts +0 -26
  404. package/src/core/markdown/templates/enum-template.ts +0 -12
  405. package/src/core/markdown/templates/fieldsPartialTemplate.ts +0 -23
  406. package/src/core/markdown/templates/grouped-members-partial-template.ts +0 -6
  407. package/src/core/markdown/templates/hookable.ts +0 -7
  408. package/src/core/markdown/templates/interface-template.ts +0 -16
  409. package/src/core/markdown/templates/methods-partial-template.ts +0 -43
  410. package/src/core/markdown/templates/reference-guide.ts +0 -14
  411. package/src/core/markdown/templates/template.ts +0 -114
  412. package/src/core/markdown/templates/type-doc-partial.ts +0 -27
  413. package/src/core/markdown/utils.ts +0 -3
  414. package/src/core/openapi/file-container.ts +0 -13
  415. package/src/core/openapi/openapi-type-file.ts +0 -14
  416. package/src/core/parse-apex-metadata.ts +0 -14
  417. package/src/core/settings.ts +0 -56
  418. package/src/core/shared/types.d.ts +0 -92
  419. package/src/core/shared/utils.ts +0 -5
  420. package/src/defaults.ts +0 -8
  421. package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -39
  422. package/src/util/fp.ts +0 -3
  423. /package/src/{core/__test__ → model/__tests__}/manifest.spec.ts +0 -0
  424. /package/src/{core/openapi → model}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  425. /package/src/{core/openapi → model}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  426. /package/src/{core → model}/openapi/__tests__/open-api.spec.ts +0 -0
  427. /package/src/{core → model}/openapi/apex-doc-types.ts +0 -0
  428. /package/src/{core → model}/openapi/open-api.ts +0 -0
  429. /package/src/{application → service}/file-system.ts +0 -0
@@ -0,0 +1,147 @@
1
+ import { GeneratorChoices } from './transpiler/generator-choices';
2
+
3
+ export type OnBeforeFileWrite = (file: TargetFile) => TargetFile;
4
+
5
+ export type TargetFile = {
6
+ name: string;
7
+ extension: string;
8
+ dir: OutputDir;
9
+ };
10
+
11
+ export type OutputDir = {
12
+ baseDir: string;
13
+ fileDir: string;
14
+ };
15
+
16
+ export type TargetType = {
17
+ name: string;
18
+ typeName: 'class' | 'interface' | 'enum';
19
+ accessModifier: string;
20
+ description?: string;
21
+ group?: string;
22
+ };
23
+
24
+ export interface SettingsConfig {
25
+ sourceDirectory: string;
26
+ recursive: boolean;
27
+ scope: string[];
28
+ outputDir: string;
29
+ targetGenerator: GeneratorChoices;
30
+ indexOnly: boolean;
31
+ defaultGroupName: string;
32
+ sanitizeHtml: boolean;
33
+ openApiTitle?: string;
34
+ title: string;
35
+ namespace?: string;
36
+ openApiFileName: string;
37
+ includeMetadata: boolean;
38
+ rootDir?: string;
39
+ sortMembersAlphabetically?: boolean;
40
+ onAfterProcess?: (files: TargetFile[]) => void;
41
+ onBeforeFileWrite?: (file: TargetFile) => TargetFile;
42
+ frontMatterHeader?: (file: TargetType) => string[];
43
+ }
44
+
45
+ export class Settings {
46
+ private static instance: Settings;
47
+
48
+ private constructor(public config: SettingsConfig) {}
49
+
50
+ public static build(config: SettingsConfig) {
51
+ Settings.instance = new Settings(config);
52
+ }
53
+
54
+ public static getInstance(): Settings {
55
+ if (!Settings.instance) {
56
+ throw new Error('Settings has not been initialized');
57
+ }
58
+ return Settings.instance;
59
+ }
60
+
61
+ get sourceDirectory(): string {
62
+ return this.config.sourceDirectory;
63
+ }
64
+
65
+ get recursive(): boolean {
66
+ return this.config.recursive;
67
+ }
68
+
69
+ get scope(): string[] {
70
+ return this.config.scope;
71
+ }
72
+
73
+ get outputDir(): string {
74
+ return this.config.outputDir;
75
+ }
76
+
77
+ get targetGenerator(): GeneratorChoices {
78
+ return this.config.targetGenerator;
79
+ }
80
+
81
+ get indexOnly(): boolean {
82
+ return this.config.indexOnly;
83
+ }
84
+
85
+ get sanitizeHtml(): boolean {
86
+ return this.config.sanitizeHtml;
87
+ }
88
+
89
+ public getDefaultGroupName(): string {
90
+ return this.config.defaultGroupName;
91
+ }
92
+
93
+ public getOpenApiTitle(): string | undefined {
94
+ return this.config.openApiTitle ?? this.config.title;
95
+ }
96
+
97
+ public getTitle(): string {
98
+ return this.config.title;
99
+ }
100
+
101
+ public getNamespace(): string | undefined {
102
+ return this.config.namespace;
103
+ }
104
+
105
+ public getNamespacePrefix(): string {
106
+ if (!this.config.namespace) {
107
+ return '';
108
+ }
109
+ return `${this.config.namespace}.`;
110
+ }
111
+
112
+ public openApiFileName(): string {
113
+ return this.config.openApiFileName;
114
+ }
115
+
116
+ public includeMetadata(): boolean {
117
+ return this.config.includeMetadata;
118
+ }
119
+
120
+ public sortMembersAlphabetically(): boolean {
121
+ return this.config.sortMembersAlphabetically ?? false;
122
+ }
123
+
124
+ public getRootDir(): string | undefined {
125
+ return this.config.rootDir;
126
+ }
127
+
128
+ public onAfterProcess(files: TargetFile[]): void {
129
+ if (this.config.onAfterProcess) {
130
+ this.config.onAfterProcess(files);
131
+ }
132
+ }
133
+
134
+ public onBeforeFileWrite(file: TargetFile): TargetFile {
135
+ if (this.config.onBeforeFileWrite) {
136
+ return this.config.onBeforeFileWrite(file);
137
+ }
138
+ return file;
139
+ }
140
+
141
+ public frontMatterHeader(file: TargetType): string[] {
142
+ if (this.config.frontMatterHeader) {
143
+ return this.config.frontMatterHeader(file);
144
+ }
145
+ return [];
146
+ }
147
+ }
@@ -10,8 +10,6 @@ export class ClassMirrorBuilder {
10
10
  private docComment?: DocComment;
11
11
  private methods: MethodMirror[] = [];
12
12
  private fields: FieldMirror[] = [];
13
- private innerClasses: ClassMirror[] = [];
14
- private extendedClass: string | undefined;
15
13
 
16
14
  withName(name: string): ClassMirrorBuilder {
17
15
  this.name = name;
@@ -38,16 +36,6 @@ export class ClassMirrorBuilder {
38
36
  return this;
39
37
  }
40
38
 
41
- addInnerClass(innerClass: ClassMirror): ClassMirrorBuilder {
42
- this.innerClasses.push(innerClass);
43
- return this;
44
- }
45
-
46
- withExtendedClass(extendedClass: string): ClassMirrorBuilder {
47
- this.extendedClass = extendedClass;
48
- return this;
49
- }
50
-
51
39
  build(): ClassMirror {
52
40
  return {
53
41
  annotations: this.annotations,
@@ -60,10 +48,9 @@ export class ClassMirrorBuilder {
60
48
  constructors: [],
61
49
  enums: [],
62
50
  interfaces: [],
63
- classes: this.innerClasses,
51
+ classes: [],
64
52
  access_modifier: 'public',
65
53
  docComment: this.docComment,
66
- extended_class: this.extendedClass,
67
54
  };
68
55
  }
69
56
  }
@@ -1,5 +1,5 @@
1
1
  import { DocComment, FieldMirror } from '@cparra/apex-reflection';
2
- import { ReferencedType } from '@cparra/apex-reflection';
2
+ import { ReferencedType } from '@cparra/apex-reflection/index';
3
3
 
4
4
  type MemberModifier = 'static' | 'webservice' | 'final' | 'override' | 'testmethod' | 'transient';
5
5
 
@@ -1,16 +1,9 @@
1
- import { Annotation, DocComment, MethodMirror, ParameterMirror } from '@cparra/apex-reflection';
2
-
3
- type Parameter = ParameterMirror;
1
+ import { Annotation, DocComment, MethodMirror } from '@cparra/apex-reflection';
4
2
 
5
3
  export class MethodMirrorBuilder {
6
4
  private name = 'sampleMethod';
7
5
  private annotations: Annotation[] = [];
8
6
  private docComment?: DocComment;
9
- private typeReference: { type: string; rawDeclaration: string } = {
10
- type: 'void',
11
- rawDeclaration: 'void',
12
- };
13
- private parameters: Parameter[] = [];
14
7
 
15
8
  withName(name: string): MethodMirrorBuilder {
16
9
  this.name = name;
@@ -27,51 +20,18 @@ export class MethodMirrorBuilder {
27
20
  return this;
28
21
  }
29
22
 
30
- withTypeReference(param: { type: string; rawDeclaration: string }) {
31
- this.typeReference = param;
32
- return this;
33
- }
34
-
35
- addParameter(parameter: Parameter): MethodMirrorBuilder {
36
- this.parameters.push(parameter);
37
- return this;
38
- }
39
-
40
23
  build(): MethodMirror {
41
24
  return {
42
25
  access_modifier: 'public',
43
26
  annotations: this.annotations,
44
27
  name: this.name,
45
28
  memberModifiers: [],
46
- typeReference: this.typeReference,
47
- parameters: this.parameters,
29
+ typeReference: {
30
+ type: 'void',
31
+ rawDeclaration: 'void',
32
+ },
33
+ parameters: [],
48
34
  docComment: this.docComment,
49
35
  };
50
36
  }
51
37
  }
52
-
53
- export class ParameterBuilder {
54
- private name = 'param';
55
- private typeReference: { type: string; rawDeclaration: string } = {
56
- type: 'String',
57
- rawDeclaration: 'String',
58
- };
59
-
60
- withName(name: string): ParameterBuilder {
61
- this.name = name;
62
- return this;
63
- }
64
-
65
- withTypeReference(param: { type: string; rawDeclaration: string }) {
66
- this.typeReference = param;
67
- return this;
68
- }
69
-
70
- build(): Parameter {
71
- return {
72
- memberModifiers: [],
73
- name: this.name,
74
- typeReference: this.typeReference,
75
- };
76
- }
77
- }
@@ -1,4 +1,4 @@
1
- import { SettingsConfig } from '../core/settings';
1
+ import { SettingsConfig } from '../settings';
2
2
 
3
3
  /**
4
4
  * Builder class to create SettingsConfig objects.
@@ -8,13 +8,16 @@ export class SettingsBuilder {
8
8
  build(): SettingsConfig {
9
9
  return {
10
10
  sourceDirectory: './',
11
+ recursive: true,
11
12
  scope: [],
12
13
  outputDir: './',
13
14
  targetGenerator: 'openapi',
14
15
  indexOnly: false,
15
16
  defaultGroupName: 'Misc',
17
+ sanitizeHtml: true,
16
18
  openApiTitle: 'Apex API',
17
19
  openApiFileName: 'openapi',
20
+ title: 'Classes',
18
21
  includeMetadata: false,
19
22
  };
20
23
  }
@@ -0,0 +1,33 @@
1
+ import ProcessorTypeTranspiler from './processor-type-transpiler';
2
+ import { GeneratorChoices } from './generator-choices';
3
+ import { JekyllDocsProcessor } from './markdown/jekyll/jekyll-docsProcessor';
4
+ import DocsifyDocsProcessor from './markdown/docsify/docsify-docs-processor';
5
+ import { PlainMarkdownDocsProcessor } from './markdown/plain-markdown/plain-docsProcessor';
6
+ import { OpenApiDocsProcessor } from './openapi/open-api-docs-processor';
7
+
8
+ export class TypeTranspilerFactory {
9
+ private static typeTranspilerCache?: ProcessorTypeTranspiler;
10
+
11
+ public static get(generator: GeneratorChoices): ProcessorTypeTranspiler {
12
+ if (this.typeTranspilerCache) {
13
+ return this.typeTranspilerCache;
14
+ }
15
+
16
+ switch (generator) {
17
+ case 'jekyll':
18
+ this.typeTranspilerCache = new JekyllDocsProcessor();
19
+ return this.typeTranspilerCache;
20
+ case 'docsify':
21
+ this.typeTranspilerCache = new DocsifyDocsProcessor();
22
+ return this.typeTranspilerCache;
23
+ case 'plain-markdown':
24
+ this.typeTranspilerCache = new PlainMarkdownDocsProcessor();
25
+ return this.typeTranspilerCache;
26
+ case 'openapi':
27
+ this.typeTranspilerCache = new OpenApiDocsProcessor();
28
+ return this.typeTranspilerCache;
29
+ default:
30
+ throw Error('Invalid target generator');
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,13 @@
1
+ import { OutputFile } from '../model/outputFile';
2
+
3
+ export class FileContainer {
4
+ _files: OutputFile[] = [];
5
+
6
+ files(): OutputFile[] {
7
+ return this._files;
8
+ }
9
+
10
+ pushFile(file: OutputFile): void {
11
+ this._files.push(file);
12
+ }
13
+ }
@@ -0,0 +1 @@
1
+ export type GeneratorChoices = 'jekyll' | 'docsify' | 'plain-markdown' | 'openapi';
@@ -0,0 +1,58 @@
1
+ import { Type } from '@cparra/apex-reflection';
2
+ import { TypesRepository } from '../../model/types-repository';
3
+ import { Settings } from '../../settings';
4
+ import State from '../../service/state';
5
+ import { TypeTranspilerFactory } from '../factory';
6
+
7
+ export default class ClassFileGeneratorHelper {
8
+ public static getSanitizedGroup(classModel: Type) {
9
+ return this.getClassGroup(classModel).replace(/ /g, '-').replace('.', '');
10
+ }
11
+
12
+ public static getFileLink(classModel: Type) {
13
+ const documentationRoot = Settings.getInstance().getRootDir() ?? '';
14
+ const directoryRoot = `${documentationRoot}${this.getDirectoryRoot(classModel)}`;
15
+ const fullClassName = `${Settings.getInstance().getNamespacePrefix()}${classModel.name}`;
16
+ return `[${fullClassName}](${directoryRoot}${fullClassName}.md)`;
17
+ }
18
+
19
+ public static getFileLinkByTypeName(typeName: string) {
20
+ const type = TypesRepository.getInstance().getFromScopedByName(typeName);
21
+ if (!type) {
22
+ // If the type is not found, we return a Markdown hyperlink with whatever we received.
23
+ return `[${typeName}](${typeName})`;
24
+ }
25
+
26
+ return this.getFileLink(type);
27
+ }
28
+
29
+ private static getDirectoryRoot(classModel: Type) {
30
+ // root-relative links start from the root by using a leading '/'
31
+ const generator = Settings.getInstance().targetGenerator;
32
+ if (TypeTranspilerFactory.get(generator).getLinkingStrategy() === 'root-relative') {
33
+ return `/${this.getSanitizedGroup(classModel)}/`;
34
+ }
35
+
36
+ // path-relative links traverse the directory structure
37
+ const typeBeingProcessed = State.getInstance().getTypeBeingProcessed();
38
+ if (typeBeingProcessed) {
39
+ if (this.getClassGroup(typeBeingProcessed) === this.getClassGroup(classModel)) {
40
+ // If the types the same groups then we simply link directly to that file
41
+ return './';
42
+ } else {
43
+ // If the types have different groups, then we have to go up a directory
44
+ return `../${this.getSanitizedGroup(classModel)}/`;
45
+ }
46
+ } else {
47
+ // If nothing is being processed, then we assume we are at the root and links should include the groups
48
+ return `./${this.getSanitizedGroup(classModel)}/`;
49
+ }
50
+ }
51
+
52
+ private static getClassGroup(classModel: Type): string {
53
+ const groupAnnotation = classModel.docComment?.annotations.find(
54
+ (annotation) => annotation.name.toLowerCase() === 'group',
55
+ );
56
+ return groupAnnotation?.body ?? Settings.getInstance().getDefaultGroupName();
57
+ }
58
+ }
@@ -0,0 +1,12 @@
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { LinkingStrategy } from '../../processor-type-transpiler';
3
+
4
+ export default class DocsifyDocsProcessor extends MarkdownTranspilerBase {
5
+ homeFileName(): string {
6
+ return 'README';
7
+ }
8
+
9
+ getLinkingStrategy(): LinkingStrategy {
10
+ return 'root-relative';
11
+ }
12
+ }
@@ -0,0 +1,50 @@
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ import { MarkdownHomeFile } from '../../../model/markdown-home-file';
4
+ import { MarkdownTypeFile } from '../../../model/markdown-type-file';
5
+ import { LinkingStrategy } from '../../processor-type-transpiler';
6
+ import { Settings } from '../../../settings';
7
+
8
+ export class JekyllDocsProcessor extends MarkdownTranspilerBase {
9
+ homeFileName(): string {
10
+ return 'index';
11
+ }
12
+
13
+ onBeforeProcess = (types: Type[]) => {
14
+ this._fileContainer.pushFile(new MarkdownHomeFile(this.homeFileName(), types, this.frontMatterForHomeFile));
15
+ };
16
+
17
+ onProcess(type: Type): void {
18
+ this._fileContainer.pushFile(new MarkdownTypeFile(type, 1, this.getFrontMatterHeader(type)));
19
+ }
20
+
21
+ get frontMatterForHomeFile(): string {
22
+ return '---\nlayout: default\n---';
23
+ }
24
+
25
+ getFrontMatterHeader(type: Type): string {
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: type.docComment?.description,
36
+ };
37
+ const configuredHeaders = 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
+
47
+ getLinkingStrategy(): LinkingStrategy {
48
+ return 'path-relative';
49
+ }
50
+ }
@@ -0,0 +1,28 @@
1
+ import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
+ import { Type } from '@cparra/apex-reflection';
3
+ import { FileContainer } from '../file-container';
4
+ import { MarkdownHomeFile } from '../../model/markdown-home-file';
5
+ import { MarkdownTypeFile } from '../../model/markdown-type-file';
6
+
7
+ export abstract class MarkdownTranspilerBase extends ProcessorTypeTranspiler {
8
+ protected readonly _fileContainer: FileContainer;
9
+
10
+ constructor() {
11
+ super();
12
+ this._fileContainer = new FileContainer();
13
+ }
14
+
15
+ abstract homeFileName(): string;
16
+
17
+ fileBuilder(): FileContainer {
18
+ return this._fileContainer;
19
+ }
20
+
21
+ onBeforeProcess = (types: Type[]) => {
22
+ this._fileContainer.pushFile(new MarkdownHomeFile(this.homeFileName(), types));
23
+ };
24
+
25
+ onProcess(type: Type): void {
26
+ this._fileContainer.pushFile(new MarkdownTypeFile(type));
27
+ }
28
+ }
@@ -0,0 +1,12 @@
1
+ import { MarkdownTranspilerBase } from '../markdown-transpiler-base';
2
+ import { LinkingStrategy } from '../../processor-type-transpiler';
3
+
4
+ export class PlainMarkdownDocsProcessor extends MarkdownTranspilerBase {
5
+ homeFileName(): string {
6
+ return 'index';
7
+ }
8
+
9
+ getLinkingStrategy(): LinkingStrategy {
10
+ return 'path-relative';
11
+ }
12
+ }
@@ -1,5 +1,5 @@
1
1
  import { OpenApiDocsProcessor } from '../open-api-docs-processor';
2
- import { Settings } from '../../settings';
2
+ import { Settings } from '../../../settings';
3
3
  import { SettingsBuilder } from '../../../test-helpers/SettingsBuilder';
4
4
  import { DocCommentBuilder } from '../../../test-helpers/DocCommentBuilder';
5
5
  import { AnnotationBuilder } from '../../../test-helpers/AnnotationBuilder';
@@ -1,17 +1,19 @@
1
- import { FileContainer } from './file-container';
1
+ import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
+ import { FileContainer } from '../file-container';
2
3
  import { ClassMirror, Type } from '@cparra/apex-reflection';
3
- import { Logger } from '#utils/logger';
4
- import { OpenApi } from './open-api';
5
- import { Settings } from '../settings';
4
+ import { OpenapiTypeFile } from '../../model/openapi/openapi-type-file';
5
+ import { Logger } from '../../util/logger';
6
+ import { OpenApi } from '../../model/openapi/open-api';
7
+ import { Settings } from '../../settings';
6
8
  import { MethodParser } from './parsers/MethodParser';
7
- import { camel2title } from '#utils/string-utils';
8
- import { createOpenApiFile } from './openapi-type-file';
9
+ import { camel2title } from '../../util/string-utils';
9
10
 
10
- export class OpenApiDocsProcessor {
11
+ export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
11
12
  protected readonly _fileContainer: FileContainer;
12
13
  openApiModel: OpenApi;
13
14
 
14
15
  constructor() {
16
+ super();
15
17
  this._fileContainer = new FileContainer();
16
18
  const title = Settings.getInstance().getOpenApiTitle();
17
19
  if (!title) {
@@ -66,8 +68,7 @@ export class OpenApiDocsProcessor {
66
68
  }
67
69
 
68
70
  onAfterProcess: ((types: Type[]) => void) | undefined = () => {
69
- const page = createOpenApiFile(Settings.getInstance().openApiFileName(), this.openApiModel);
70
- this._fileContainer.pushFile(page);
71
+ this._fileContainer.pushFile(new OpenapiTypeFile(this.openApiModel));
71
72
  };
72
73
 
73
74
  private getEndpointPath(type: Type): string | null {
@@ -1,6 +1,6 @@
1
1
  import { Reference, ReferenceBuilder } from './ReferenceBuilder';
2
- import { ApexDocSchemaObject } from '../../../core/openapi/apex-doc-types';
3
- import { SchemaObject } from '../../../core/openapi/open-api-types';
2
+ import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
3
+ import { SchemaObject } from '../../../model/openapi/open-api-types';
4
4
 
5
5
  export type ApexDocSchemaAware = {
6
6
  schema: ApexDocSchemaObject;
@@ -29,7 +29,7 @@ export abstract class Builder<T, K> {
29
29
  return schemaAware.schema;
30
30
  }
31
31
 
32
- private isReferenceString = (targetObject: unknown): targetObject is string => {
32
+ private isReferenceString = (targetObject: any): targetObject is string => {
33
33
  return typeof targetObject === 'string' || targetObject instanceof String;
34
34
  };
35
35
  }
@@ -1,7 +1,7 @@
1
1
  import { ClassMirror, MethodMirror } from '@cparra/apex-reflection';
2
- import { OpenApi } from '../../../core/openapi/open-api';
2
+ import { OpenApi } from '../../../model/openapi/open-api';
3
3
  import * as yaml from 'js-yaml';
4
- import { ClassMirrorWrapper } from '../../../core/openapi/apex-type-wrappers/ClassMirrorWrapper';
4
+ import { ClassMirrorWrapper } from '../../../model/apex-type-wrappers/ClassMirrorWrapper';
5
5
  import { Reference, ReferenceBuilder } from './ReferenceBuilder';
6
6
  import { ParameterObjectBuilder } from './ParameterObjectBuilder';
7
7
  import { ResponsesBuilder } from './ResponsesBuilder';
@@ -9,11 +9,11 @@ import {
9
9
  ApexDocHttpRequestBody,
10
10
  ApexDocHttpResponse,
11
11
  ApexDocParameterObject,
12
- } from '../../../core/openapi/apex-doc-types';
12
+ } from '../../../model/openapi/apex-doc-types';
13
13
  import { RequestBodyBuilder } from './RequestBodyBuilder';
14
14
  import { ApexDocSchemaAware } from './Builder';
15
- import { PropertiesObject, ReferenceObject } from '../../../core/openapi/open-api-types';
16
- import { MethodMirrorWrapper } from '../../../core/openapi/apex-type-wrappers/MethodMirrorWrapper';
15
+ import { PropertiesObject, ReferenceObject } from '../../../model/openapi/open-api-types';
16
+ import { MethodMirrorWrapper } from '../../../model/apex-type-wrappers/MethodMirrorWrapper';
17
17
 
18
18
  type FallbackMethodParser = (methodMirror: MethodMirror) => void;
19
19
  type AddToOpenApi<T extends ApexDocSchemaAware> = (input: T, urlValue: string, httpMethodKey: HttpOperations) => void;
@@ -95,7 +95,7 @@ export class MethodParser {
95
95
 
96
96
  for (const annotation of annotations) {
97
97
  // We expect the ApexDoc data representing this to be in YAML format.
98
- const inYaml = annotation?.bodyLines.reduce((prev, current) => prev + '\n' + current);
98
+ const inYaml = annotation?.bodyLines.reduce((prev, current, _) => prev + '\n' + current);
99
99
 
100
100
  if (!inYaml) {
101
101
  return;
@@ -1,6 +1,6 @@
1
- import { ParameterObject } from '../../../core/openapi/open-api-types';
1
+ import { ParameterObject } from '../../../model/openapi/open-api-types';
2
2
  import { Reference } from './ReferenceBuilder';
3
- import { ApexDocParameterObject } from '../../../core/openapi/apex-doc-types';
3
+ import { ApexDocParameterObject } from '../../../model/openapi/apex-doc-types';
4
4
  import { Builder } from './Builder';
5
5
 
6
6
  export class ParameterObjectBuilder extends Builder<ParameterObject, ApexDocParameterObject> {
@@ -5,11 +5,11 @@ import {
5
5
  SchemaObject,
6
6
  SchemaObjectArray,
7
7
  SchemaObjectObject,
8
- } from '../../../core/openapi/open-api-types';
9
- import { TypeBundle, TypesRepository } from '../../../core/openapi/types-repository';
8
+ } from '../../../model/openapi/open-api-types';
9
+ import { TypeBundle, TypesRepository } from '../../../model/types-repository';
10
10
  import { ClassMirror, DocCommentAnnotation, FieldMirror, PropertyMirror } from '@cparra/apex-reflection';
11
11
  import { ListObjectType, ReferencedType } from '@cparra/apex-reflection';
12
- import { ApexDocSchemaObject } from '../../../core/openapi/apex-doc-types';
12
+ import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
13
13
 
14
14
  type TypeBundleWithIsCollectionAndReferenceOverrides = TypeBundle & {
15
15
  originalTypeName: string;
@@ -131,7 +131,7 @@ export class ReferenceBuilder {
131
131
  referencedComponents: ReferenceComponent[],
132
132
  ) {
133
133
  // This can be of type ApexDocSchemaObject
134
- const inYaml = manuallyDefinedHttpSchema?.bodyLines.reduce((prev, current) => prev + '\n' + current);
134
+ const inYaml = manuallyDefinedHttpSchema?.bodyLines.reduce((prev, current, _) => prev + '\n' + current);
135
135
  const asJson = yaml.load(inYaml) as ApexDocSchemaObject;
136
136
  const isReferenceString = this.isReferenceString(asJson);
137
137
 
@@ -227,7 +227,7 @@ export class ReferenceBuilder {
227
227
  return { schema: { type: 'object' }, referenceComponents: [] };
228
228
  case 'object':
229
229
  return { schema: { type: 'object' }, referenceComponents: [] };
230
- default: {
230
+ default:
231
231
  // If we got here we are dealing with a non-primitive (most likely a custom class or an SObject).
232
232
  const referencedType = TypesRepository.getInstance().getFromAllByName(typeName);
233
233
  if (!referencedType) {
@@ -243,7 +243,6 @@ export class ReferenceBuilder {
243
243
  schema: reference.entrypointReferenceObject,
244
244
  referenceComponents: [...reference.referenceComponents],
245
245
  };
246
- }
247
246
  }
248
247
  }
249
248
 
@@ -267,7 +266,7 @@ type SchemaObjectReferencePair = {
267
266
 
268
267
  class ReferenceOverrides {
269
268
  static build(referenceAsString: string): ReferenceOverride[] {
270
- const cleanedUpReference = referenceAsString.replace(/[[\]]/g, '');
269
+ const cleanedUpReference = referenceAsString.replace(/[\[\]]/g, '');
271
270
  const referenceStrings = cleanedUpReference.split(',').map((item) => item.replace(/\s/g, ''));
272
271
  return referenceStrings.map((item) => {
273
272
  const [propertyName, referenceName] = item.split(':');