@cparra/apexdocs 2.25.0 → 3.0.0-alpha.10

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 (431) hide show
  1. package/.github/workflows/ci.yaml +22 -0
  2. package/README.md +73 -12
  3. package/__mocks__/chalk.js +12 -0
  4. package/__mocks__/log-update.js +6 -0
  5. package/dist/cli/generate.js +3181 -0
  6. package/dist/defaults-DGKfeZq-.js +13 -0
  7. package/dist/index.d.ts +117 -0
  8. package/dist/index.js +36 -0
  9. package/eslint.config.mjs +10 -0
  10. package/examples/markdown/.forceignore +12 -0
  11. package/examples/markdown/config/project-scratch-def.json +5 -0
  12. package/examples/markdown/docs/index.md +109 -0
  13. package/examples/markdown/docs/miscellaneous/BaseClass.md +16 -0
  14. package/examples/markdown/docs/miscellaneous/MultiInheritanceClass.md +72 -0
  15. package/examples/markdown/docs/miscellaneous/ParentInterface.md +15 -0
  16. package/examples/markdown/docs/miscellaneous/ReferencedEnum.md +8 -0
  17. package/examples/markdown/docs/miscellaneous/SampleException.md +24 -0
  18. package/examples/markdown/docs/miscellaneous/SampleInterface.md +116 -0
  19. package/examples/markdown/docs/miscellaneous/Url.md +309 -0
  20. package/examples/markdown/docs/sample-enums/SampleEnum.md +36 -0
  21. package/examples/markdown/docs/samplegroup/SampleClass.md +170 -0
  22. package/examples/markdown/force-app/classes/BaseClass.cls +3 -0
  23. package/examples/markdown/force-app/classes/MultiInheritanceClass.cls +1 -0
  24. package/examples/markdown/force-app/classes/ParentInterface.cls +3 -0
  25. package/examples/markdown/force-app/classes/ReferencedEnum.cls +3 -0
  26. package/examples/markdown/force-app/classes/SampleClass.cls +72 -0
  27. package/examples/markdown/force-app/classes/SampleEnum.cls +30 -0
  28. package/examples/markdown/force-app/classes/SampleException.cls +17 -0
  29. package/examples/markdown/force-app/classes/SampleInterface.cls +50 -0
  30. package/examples/markdown/force-app/classes/Url.cls +194 -0
  31. package/examples/markdown/package-lock.json +665 -0
  32. package/examples/markdown/package.json +20 -0
  33. package/examples/markdown/sfdx-project.json +12 -0
  34. package/examples/vitepress/.forceignore +12 -0
  35. package/examples/vitepress/apexdocs.config.ts +106 -0
  36. package/examples/vitepress/config/project-scratch-def.json +13 -0
  37. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
  38. package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
  39. package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
  40. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
  41. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
  42. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
  43. package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
  44. package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
  45. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
  46. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  47. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
  48. package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  49. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
  50. package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
  51. package/examples/vitepress/docs/.vitepress/config.mts +21 -0
  52. package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
  53. package/examples/vitepress/docs/api-examples.md +49 -0
  54. package/examples/vitepress/docs/index-frontmatter.md +16 -0
  55. package/examples/vitepress/docs/index.md +56 -0
  56. package/examples/vitepress/docs/markdown-examples.md +85 -0
  57. package/examples/vitepress/docs/miscellaneous/BaseClass.md +20 -0
  58. package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +76 -0
  59. package/examples/vitepress/docs/miscellaneous/ParentInterface.md +19 -0
  60. package/examples/vitepress/docs/miscellaneous/ReferencedEnum.md +15 -0
  61. package/examples/vitepress/docs/miscellaneous/SampleException.md +28 -0
  62. package/examples/vitepress/docs/miscellaneous/SampleInterface.md +116 -0
  63. package/examples/vitepress/docs/miscellaneous/Url.md +317 -0
  64. package/examples/vitepress/docs/sample-enums/SampleEnum.md +40 -0
  65. package/examples/vitepress/docs/samplegroup/SampleClass.md +174 -0
  66. package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
  67. package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
  68. package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
  69. package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
  70. package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
  71. package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
  72. package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
  73. package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
  74. package/examples/vitepress/force-app/main/default/classes/Url.cls +198 -0
  75. package/examples/vitepress/package-lock.json +2574 -0
  76. package/examples/vitepress/package.json +18 -0
  77. package/examples/vitepress/sfdx-project.json +12 -0
  78. package/jest.config.js +6 -1
  79. package/jest.d.ts +7 -0
  80. package/package.json +34 -36
  81. package/src/application/Apexdocs.ts +58 -68
  82. package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
  83. package/src/application/apex-file-reader.ts +55 -0
  84. package/src/application/file-system.ts +69 -0
  85. package/src/application/file-writer.ts +43 -0
  86. package/src/application/generators/markdown.ts +45 -0
  87. package/src/application/generators/openapi.ts +60 -0
  88. package/src/cli/args.ts +43 -0
  89. package/src/cli/commands/markdown.ts +53 -0
  90. package/src/cli/generate.ts +10 -131
  91. package/src/core/manifest.ts +90 -0
  92. package/src/core/markdown/__test__/expect-extensions.ts +32 -0
  93. package/src/core/markdown/__test__/generating-class-docs.spec.ts +733 -0
  94. package/src/core/markdown/__test__/generating-enum-docs.spec.ts +385 -0
  95. package/src/core/markdown/__test__/generating-interface-docs.spec.ts +461 -0
  96. package/src/core/markdown/__test__/generating-reference-guide.spec.ts +180 -0
  97. package/src/core/markdown/__test__/inheritance-chain.test.ts +54 -0
  98. package/src/core/markdown/__test__/test-helpers.ts +23 -0
  99. package/src/core/markdown/adapters/__tests__/documentables.spec.ts +109 -0
  100. package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +148 -0
  101. package/src/core/markdown/adapters/__tests__/link-generator.spec.ts +130 -0
  102. package/src/core/markdown/adapters/__tests__/references.spec.ts +136 -0
  103. package/src/core/markdown/adapters/apex-types.ts +238 -0
  104. package/src/core/markdown/adapters/documentables.ts +115 -0
  105. package/src/core/markdown/adapters/fields-and-properties.ts +45 -0
  106. package/src/core/markdown/adapters/generate-link.ts +82 -0
  107. package/src/core/markdown/adapters/inline.ts +143 -0
  108. package/src/core/markdown/adapters/methods-and-constructors.ts +133 -0
  109. package/src/core/markdown/adapters/reference-guide.ts +37 -0
  110. package/src/core/markdown/adapters/renderable-bundle.ts +61 -0
  111. package/src/core/markdown/adapters/renderable-to-page-data.ts +89 -0
  112. package/src/core/markdown/adapters/type-utils.ts +13 -0
  113. package/src/core/markdown/adapters/types.d.ts +180 -0
  114. package/src/core/markdown/generate-docs.ts +212 -0
  115. package/src/core/markdown/reflection/filter-scope.ts +13 -0
  116. package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
  117. package/src/core/markdown/reflection/inheritance-chain.ts +23 -0
  118. package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
  119. package/src/core/markdown/reflection/reflect-source.ts +123 -0
  120. package/src/core/markdown/reflection/sort-members.ts +59 -0
  121. package/src/core/markdown/templates/class-template.ts +75 -0
  122. package/src/core/markdown/templates/constructors-partial-template.ts +32 -0
  123. package/src/core/markdown/templates/documentable-partial-template.ts +26 -0
  124. package/src/core/markdown/templates/enum-template.ts +12 -0
  125. package/src/core/markdown/templates/fieldsPartialTemplate.ts +23 -0
  126. package/src/core/markdown/templates/grouped-members-partial-template.ts +6 -0
  127. package/src/core/markdown/templates/hookable.ts +7 -0
  128. package/src/core/markdown/templates/interface-template.ts +16 -0
  129. package/src/core/markdown/templates/methods-partial-template.ts +43 -0
  130. package/src/core/markdown/templates/reference-guide.ts +14 -0
  131. package/src/core/markdown/templates/template.ts +114 -0
  132. package/src/core/markdown/templates/type-doc-partial.ts +27 -0
  133. package/src/core/markdown/utils.ts +3 -0
  134. package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +1 -2
  135. package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
  136. package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
  137. package/src/core/openapi/file-container.ts +13 -0
  138. package/src/{service → core/openapi}/manifest-factory.ts +3 -3
  139. package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +10 -11
  140. package/src/{model → core}/openapi/open-api-types.ts +2 -2
  141. package/src/core/openapi/openapi-type-file.ts +12 -0
  142. package/src/{service → core/openapi}/parser.ts +7 -21
  143. package/src/{transpiler → core}/openapi/parsers/Builder.ts +3 -3
  144. package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +6 -6
  145. package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
  146. package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +7 -6
  147. package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
  148. package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
  149. package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
  150. package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
  151. package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
  152. package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
  153. package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
  154. package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
  155. package/src/{model → core/openapi}/types-repository.ts +0 -9
  156. package/src/core/parse-apex-metadata.ts +30 -0
  157. package/src/core/settings.ts +56 -0
  158. package/src/core/shared/types.d.ts +147 -0
  159. package/src/core/shared/utils.ts +5 -0
  160. package/src/defaults.ts +9 -0
  161. package/src/index.ts +36 -1
  162. package/src/test-helpers/ClassMirrorBuilder.ts +14 -1
  163. package/src/test-helpers/FieldMirrorBuilder.ts +1 -1
  164. package/src/test-helpers/InterfaceMirrorBuilder.ts +39 -0
  165. package/src/test-helpers/MethodMirrorBuilder.ts +46 -6
  166. package/src/test-helpers/SettingsBuilder.ts +1 -4
  167. package/src/util/error-logger.ts +4 -4
  168. package/src/util/fp.ts +3 -0
  169. package/src/util/logger.ts +12 -25
  170. package/src/util/string-utils.ts +0 -4
  171. package/tsconfig.json +8 -3
  172. package/.eslintrc.js +0 -12
  173. package/apexdocs.config.ts +0 -13
  174. package/docs/.nojekyll +0 -0
  175. package/docs/README.md +0 -1
  176. package/docs/index.html +0 -22
  177. package/docs/restapi.json +0 -589
  178. package/docs/types/Classes/nspc.AnotherInterface.md +0 -22
  179. package/docs/types/Classes/nspc.ChildClass.md +0 -97
  180. package/docs/types/Main/nspc.GroupedClass.md +0 -10
  181. package/docs/types/Main/nspc.SampleClass.md +0 -190
  182. package/docs/types/Misc-Group/nspc.EscapedAnnotations.md +0 -4
  183. package/docs/types/Misc-Group/nspc.GrandparentClass.md +0 -13
  184. package/docs/types/Misc-Group/nspc.InterfaceWithInheritance.md +0 -29
  185. package/docs/types/Misc-Group/nspc.MemberGrouping.md +0 -13
  186. package/docs/types/Misc-Group/nspc.ParentClass.md +0 -37
  187. package/docs/types/Misc-Group/nspc.Reference1.md +0 -18
  188. package/docs/types/Misc-Group/nspc.Reference2.md +0 -12
  189. package/docs/types/Misc-Group/nspc.Reference3.md +0 -7
  190. package/docs/types/Misc-Group/nspc.Reference4.md +0 -7
  191. package/docs/types/Misc-Group/nspc.Reference5.md +0 -7
  192. package/docs/types/Misc-Group/nspc.Reference6.md +0 -9
  193. package/docs/types/Misc-Group/nspc.Reference7.md +0 -7
  194. package/docs/types/Misc-Group/nspc.SampleClassWithoutModifier.md +0 -11
  195. package/docs/types/Misc-Group/nspc.SampleRestResource.md +0 -211
  196. package/docs/types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +0 -34
  197. package/docs/types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +0 -14
  198. package/docs/types/README.md +0 -97
  199. package/docs/types/Sample-Interfaces/nspc.SampleInterface.md +0 -23
  200. package/examples/includes/header.md +0 -3
  201. package/lib/application/Apexdocs.d.ts +0 -13
  202. package/lib/application/Apexdocs.js +0 -77
  203. package/lib/application/Apexdocs.js.map +0 -1
  204. package/lib/cli/generate.d.ts +0 -2
  205. package/lib/cli/generate.js +0 -131
  206. package/lib/cli/generate.js.map +0 -1
  207. package/lib/index.d.ts +0 -1
  208. package/lib/index.js +0 -18
  209. package/lib/index.js.map +0 -1
  210. package/lib/model/apex-bundle.d.ts +0 -6
  211. package/lib/model/apex-bundle.js +0 -11
  212. package/lib/model/apex-bundle.js.map +0 -1
  213. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -7
  214. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -14
  215. package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -1
  216. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -7
  217. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -12
  218. package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -1
  219. package/lib/model/inheritance.d.ts +0 -8
  220. package/lib/model/inheritance.js +0 -3
  221. package/lib/model/inheritance.js.map +0 -1
  222. package/lib/model/manifest-diff.d.ts +0 -27
  223. package/lib/model/manifest-diff.js +0 -69
  224. package/lib/model/manifest-diff.js.map +0 -1
  225. package/lib/model/manifest.d.ts +0 -22
  226. package/lib/model/manifest.js +0 -47
  227. package/lib/model/manifest.js.map +0 -1
  228. package/lib/model/markdown-file.d.ts +0 -16
  229. package/lib/model/markdown-file.js +0 -107
  230. package/lib/model/markdown-file.js.map +0 -1
  231. package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -8
  232. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +0 -44
  233. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
  234. package/lib/model/markdown-generation-util/field-declaration-util.d.ts +0 -3
  235. package/lib/model/markdown-generation-util/field-declaration-util.js +0 -55
  236. package/lib/model/markdown-generation-util/field-declaration-util.js.map +0 -1
  237. package/lib/model/markdown-generation-util/index.d.ts +0 -3
  238. package/lib/model/markdown-generation-util/index.js +0 -20
  239. package/lib/model/markdown-generation-util/index.js.map +0 -1
  240. package/lib/model/markdown-generation-util/method-declaration-util.d.ts +0 -4
  241. package/lib/model/markdown-generation-util/method-declaration-util.js +0 -115
  242. package/lib/model/markdown-generation-util/method-declaration-util.js.map +0 -1
  243. package/lib/model/markdown-generation-util/type-declaration-util.d.ts +0 -3
  244. package/lib/model/markdown-generation-util/type-declaration-util.js +0 -82
  245. package/lib/model/markdown-generation-util/type-declaration-util.js.map +0 -1
  246. package/lib/model/markdown-home-file.d.ts +0 -11
  247. package/lib/model/markdown-home-file.js +0 -54
  248. package/lib/model/markdown-home-file.js.map +0 -1
  249. package/lib/model/markdown-type-file.d.ts +0 -26
  250. package/lib/model/markdown-type-file.js +0 -134
  251. package/lib/model/markdown-type-file.js.map +0 -1
  252. package/lib/model/openapi/apex-doc-types.d.ts +0 -19
  253. package/lib/model/openapi/apex-doc-types.js +0 -5
  254. package/lib/model/openapi/apex-doc-types.js.map +0 -1
  255. package/lib/model/openapi/open-api-types.d.ts +0 -93
  256. package/lib/model/openapi/open-api-types.js +0 -3
  257. package/lib/model/openapi/open-api-types.js.map +0 -1
  258. package/lib/model/openapi/open-api.d.ts +0 -16
  259. package/lib/model/openapi/open-api.js +0 -34
  260. package/lib/model/openapi/open-api.js.map +0 -1
  261. package/lib/model/openapi/openapi-type-file.d.ts +0 -7
  262. package/lib/model/openapi/openapi-type-file.js +0 -17
  263. package/lib/model/openapi/openapi-type-file.js.map +0 -1
  264. package/lib/model/outputFile.d.ts +0 -10
  265. package/lib/model/outputFile.js +0 -29
  266. package/lib/model/outputFile.js.map +0 -1
  267. package/lib/model/types-repository.d.ts +0 -16
  268. package/lib/model/types-repository.js +0 -54
  269. package/lib/model/types-repository.js.map +0 -1
  270. package/lib/service/apex-file-reader.d.ts +0 -14
  271. package/lib/service/apex-file-reader.js +0 -46
  272. package/lib/service/apex-file-reader.js.map +0 -1
  273. package/lib/service/file-system.d.ts +0 -14
  274. package/lib/service/file-system.js +0 -25
  275. package/lib/service/file-system.js.map +0 -1
  276. package/lib/service/file-writer.d.ts +0 -6
  277. package/lib/service/file-writer.js +0 -34
  278. package/lib/service/file-writer.js.map +0 -1
  279. package/lib/service/manifest-factory.d.ts +0 -10
  280. package/lib/service/manifest-factory.js +0 -14
  281. package/lib/service/manifest-factory.js.map +0 -1
  282. package/lib/service/metadata-processor.d.ts +0 -3
  283. package/lib/service/metadata-processor.js +0 -17
  284. package/lib/service/metadata-processor.js.map +0 -1
  285. package/lib/service/parser.d.ts +0 -21
  286. package/lib/service/parser.js +0 -135
  287. package/lib/service/parser.js.map +0 -1
  288. package/lib/service/state.d.ts +0 -9
  289. package/lib/service/state.js +0 -20
  290. package/lib/service/state.js.map +0 -1
  291. package/lib/service/walkers/class-walker.d.ts +0 -4
  292. package/lib/service/walkers/class-walker.js +0 -33
  293. package/lib/service/walkers/class-walker.js.map +0 -1
  294. package/lib/service/walkers/enum-walker.d.ts +0 -4
  295. package/lib/service/walkers/enum-walker.js +0 -11
  296. package/lib/service/walkers/enum-walker.js.map +0 -1
  297. package/lib/service/walkers/interface-walker.d.ts +0 -4
  298. package/lib/service/walkers/interface-walker.js +0 -15
  299. package/lib/service/walkers/interface-walker.js.map +0 -1
  300. package/lib/service/walkers/walker-factory.d.ts +0 -5
  301. package/lib/service/walkers/walker-factory.js +0 -21
  302. package/lib/service/walkers/walker-factory.js.map +0 -1
  303. package/lib/service/walkers/walker.d.ts +0 -19
  304. package/lib/service/walkers/walker.js +0 -17
  305. package/lib/service/walkers/walker.js.map +0 -1
  306. package/lib/settings.d.ts +0 -64
  307. package/lib/settings.js +0 -89
  308. package/lib/settings.js.map +0 -1
  309. package/lib/test-helpers/AnnotationBuilder.d.ts +0 -12
  310. package/lib/test-helpers/AnnotationBuilder.js +0 -31
  311. package/lib/test-helpers/AnnotationBuilder.js.map +0 -1
  312. package/lib/test-helpers/ClassMirrorBuilder.d.ts +0 -18
  313. package/lib/test-helpers/ClassMirrorBuilder.js +0 -54
  314. package/lib/test-helpers/ClassMirrorBuilder.js.map +0 -1
  315. package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -8
  316. package/lib/test-helpers/DocCommentAnnotationBuilder.js +0 -26
  317. package/lib/test-helpers/DocCommentAnnotationBuilder.js.map +0 -1
  318. package/lib/test-helpers/DocCommentBuilder.d.ts +0 -12
  319. package/lib/test-helpers/DocCommentBuilder.js +0 -38
  320. package/lib/test-helpers/DocCommentBuilder.js.map +0 -1
  321. package/lib/test-helpers/FieldMirrorBuilder.d.ts +0 -18
  322. package/lib/test-helpers/FieldMirrorBuilder.js +0 -54
  323. package/lib/test-helpers/FieldMirrorBuilder.js.map +0 -1
  324. package/lib/test-helpers/MethodMirrorBuilder.d.ts +0 -10
  325. package/lib/test-helpers/MethodMirrorBuilder.js +0 -37
  326. package/lib/test-helpers/MethodMirrorBuilder.js.map +0 -1
  327. package/lib/test-helpers/SettingsBuilder.d.ts +0 -8
  328. package/lib/test-helpers/SettingsBuilder.js +0 -27
  329. package/lib/test-helpers/SettingsBuilder.js.map +0 -1
  330. package/lib/transpiler/factory.d.ts +0 -6
  331. package/lib/transpiler/factory.js +0 -32
  332. package/lib/transpiler/factory.js.map +0 -1
  333. package/lib/transpiler/file-container.d.ts +0 -6
  334. package/lib/transpiler/file-container.js +0 -16
  335. package/lib/transpiler/file-container.js.map +0 -1
  336. package/lib/transpiler/generator-choices.d.ts +0 -1
  337. package/lib/transpiler/generator-choices.js +0 -3
  338. package/lib/transpiler/generator-choices.js.map +0 -1
  339. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +0 -8
  340. package/lib/transpiler/markdown/class-file-generatorHelper.js +0 -56
  341. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
  342. package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -6
  343. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +0 -13
  344. package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -1
  345. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -11
  346. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -51
  347. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -1
  348. package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +0 -11
  349. package/lib/transpiler/markdown/markdown-transpiler-base.js +0 -24
  350. package/lib/transpiler/markdown/markdown-transpiler-base.js.map +0 -1
  351. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -6
  352. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +0 -14
  353. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +0 -1
  354. package/lib/transpiler/openapi/open-api-docs-processor.d.ts +0 -13
  355. package/lib/transpiler/openapi/open-api-docs-processor.js +0 -75
  356. package/lib/transpiler/openapi/open-api-docs-processor.js.map +0 -1
  357. package/lib/transpiler/openapi/parsers/Builder.d.ts +0 -16
  358. package/lib/transpiler/openapi/parsers/Builder.js +0 -30
  359. package/lib/transpiler/openapi/parsers/Builder.js.map +0 -1
  360. package/lib/transpiler/openapi/parsers/MethodParser.d.ts +0 -20
  361. package/lib/transpiler/openapi/parsers/MethodParser.js +0 -167
  362. package/lib/transpiler/openapi/parsers/MethodParser.js.map +0 -1
  363. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -7
  364. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -11
  365. package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -1
  366. package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -39
  367. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +0 -226
  368. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -1
  369. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -10
  370. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -20
  371. package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -1
  372. package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -7
  373. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +0 -22
  374. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -1
  375. package/lib/transpiler/processor-type-transpiler.d.ts +0 -10
  376. package/lib/transpiler/processor-type-transpiler.js +0 -9
  377. package/lib/transpiler/processor-type-transpiler.js.map +0 -1
  378. package/lib/transpiler/transpiler.d.ts +0 -5
  379. package/lib/transpiler/transpiler.js +0 -27
  380. package/lib/transpiler/transpiler.js.map +0 -1
  381. package/lib/util/error-logger.d.ts +0 -8
  382. package/lib/util/error-logger.js +0 -90
  383. package/lib/util/error-logger.js.map +0 -1
  384. package/lib/util/logger.d.ts +0 -21
  385. package/lib/util/logger.js +0 -58
  386. package/lib/util/logger.js.map +0 -1
  387. package/lib/util/string-utils.d.ts +0 -2
  388. package/lib/util/string-utils.js +0 -15
  389. package/lib/util/string-utils.js.map +0 -1
  390. package/src/model/__tests__/manifest-diff.spec.ts +0 -147
  391. package/src/model/apex-bundle.ts +0 -3
  392. package/src/model/inheritance.ts +0 -7
  393. package/src/model/manifest-diff.ts +0 -94
  394. package/src/model/manifest.ts +0 -74
  395. package/src/model/markdown-file.ts +0 -121
  396. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
  397. package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
  398. package/src/model/markdown-generation-util/index.ts +0 -3
  399. package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
  400. package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
  401. package/src/model/markdown-home-file.ts +0 -58
  402. package/src/model/markdown-type-file.ts +0 -165
  403. package/src/model/openapi/openapi-type-file.ts +0 -14
  404. package/src/model/outputFile.ts +0 -29
  405. package/src/service/__tests__/apex-file-reader.spec.ts +0 -92
  406. package/src/service/apex-file-reader.ts +0 -51
  407. package/src/service/file-system.ts +0 -33
  408. package/src/service/file-writer.ts +0 -34
  409. package/src/service/metadata-processor.ts +0 -16
  410. package/src/service/state.ts +0 -24
  411. package/src/service/walkers/class-walker.ts +0 -30
  412. package/src/service/walkers/enum-walker.ts +0 -7
  413. package/src/service/walkers/interface-walker.ts +0 -12
  414. package/src/service/walkers/walker-factory.ts +0 -19
  415. package/src/service/walkers/walker.ts +0 -42
  416. package/src/settings.ts +0 -147
  417. package/src/transpiler/factory.ts +0 -33
  418. package/src/transpiler/file-container.ts +0 -13
  419. package/src/transpiler/generator-choices.ts +0 -1
  420. package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -58
  421. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
  422. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
  423. package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
  424. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +0 -12
  425. package/src/transpiler/processor-type-transpiler.ts +0 -18
  426. /package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +0 -0
  427. /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
  428. /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
  429. /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
  430. /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
  431. /package/src/{model → core}/openapi/open-api.ts +0 -0
@@ -0,0 +1,12 @@
1
+ export const enumMarkdownTemplate = `
2
+ {{ heading headingLevel heading }}
3
+
4
+ {{> typeDocumentation }}
5
+
6
+ {{ heading values.headingLevel values.heading }}
7
+ | Value | Description |
8
+ |-------|-------------|
9
+ {{#each values.value}}
10
+ | {{value}} | {{description}} |
11
+ {{/each}}
12
+ `.trim();
@@ -0,0 +1,23 @@
1
+ export const fieldsPartialTemplate = `
2
+ {{ heading headingLevel heading }}
3
+ {{#each value}}
4
+ {{{ heading headingLevel (inlineCode heading) }}}
5
+
6
+ {{#if inherited}}
7
+ *Inherited*
8
+ {{/if}}
9
+
10
+ {{#> documentablePartialTemplate }}
11
+
12
+ {{ heading signature.headingLevel signature.heading }}
13
+ {{ code signature.value }}
14
+
15
+ {{ heading type.headingLevel type.heading }}
16
+ {{link type.value}}
17
+
18
+ {{/documentablePartialTemplate}}
19
+
20
+ {{#unless @last}}---{{/unless}}
21
+
22
+ {{/each}}
23
+ `.trim();
@@ -0,0 +1,6 @@
1
+ export const groupedMembersPartialTemplate = `
2
+ {{ heading headingLevel heading }}
3
+ {{#each value}}
4
+ {{> (lookup .. "subTemplate") this}}
5
+ {{/each}}
6
+ `.trim();
@@ -0,0 +1,7 @@
1
+ export const hookableTemplate = `
2
+ {{#if frontmatter}}
3
+ {{{frontmatter}}}
4
+ {{/if}}
5
+
6
+ {{{content}}}
7
+ `.trim();
@@ -0,0 +1,16 @@
1
+ export const interfaceMarkdownTemplate = `
2
+ {{ heading headingLevel heading }}
3
+
4
+ {{> typeDocumentation }}
5
+
6
+ {{#if extends}}
7
+ **Extends**
8
+ {{#each extends}}
9
+ {{link this}}{{#unless @last}}, {{/unless}}
10
+ {{/each}}
11
+ {{/if}}
12
+
13
+ {{#if methods}}
14
+ {{> methodsPartialTemplate methods}}
15
+ {{/if}}
16
+ `.trim();
@@ -0,0 +1,43 @@
1
+ export const methodsPartialTemplate = `
2
+ {{ heading headingLevel heading }}
3
+ {{#each value}}
4
+ {{{ heading headingLevel (inlineCode heading) }}}
5
+
6
+ {{#if inherited}}
7
+ *Inherited*
8
+ {{/if}}
9
+
10
+ {{#> documentablePartialTemplate}}
11
+
12
+ {{ heading signature.headingLevel signature.heading }}
13
+ {{ code signature.value }}
14
+
15
+ {{#if parameters.value}}
16
+ {{ heading parameters.headingLevel parameters.heading }}
17
+ | Name | Type | Description |
18
+ |------|------|-------------|
19
+ {{#each parameters.value}}
20
+ | {{name}} | {{link type}} | {{{renderContent description}}} |
21
+ {{/each}}
22
+ {{/if}}
23
+
24
+ {{ heading returnType.headingLevel returnType.heading }}
25
+ **{{link returnType.value.type}}**
26
+
27
+ {{#if returnType.value.description}}
28
+ {{returnType.value.description}}
29
+ {{/if}}
30
+
31
+ {{#if throws.value}}
32
+ {{ heading throws.headingLevel throws.heading }}
33
+ {{#each throws.value}}
34
+ {{link this.type}}: {{this.description}}
35
+
36
+ {{/each}}
37
+ {{/if}}
38
+ {{/documentablePartialTemplate}}
39
+
40
+ {{#unless @last}}---{{/unless}}
41
+
42
+ {{/each}}
43
+ `.trim();
@@ -0,0 +1,14 @@
1
+ export const referenceGuideTemplate = `
2
+ # Apex Reference Guide
3
+
4
+ {{#each this}}
5
+ ## {{@key}}
6
+
7
+ {{#each this}}
8
+ ### {{link title}}
9
+
10
+ {{{renderContent description}}}
11
+
12
+ {{/each}}
13
+ {{/each}}
14
+ `.trim();
@@ -0,0 +1,114 @@
1
+ import Handlebars from 'handlebars';
2
+ import { CodeBlock, RenderableContent, StringOrLink } from '../adapters/types';
3
+ import { isCodeBlock, isEmptyLine, isInlineCode } from '../adapters/type-utils';
4
+ import { typeDocPartial } from './type-doc-partial';
5
+ import { documentablePartialTemplate } from './documentable-partial-template';
6
+ import { methodsPartialTemplate } from './methods-partial-template';
7
+ import { groupedMembersPartialTemplate } from './grouped-members-partial-template';
8
+ import { constructorsPartialTemplate } from './constructors-partial-template';
9
+ import { fieldsPartialTemplate } from './fieldsPartialTemplate';
10
+ import { classMarkdownTemplate } from './class-template';
11
+ import { enumMarkdownTemplate } from './enum-template';
12
+ import { interfaceMarkdownTemplate } from './interface-template';
13
+
14
+ export type CompilationRequest = {
15
+ template: string;
16
+ source: unknown;
17
+ };
18
+
19
+ export class Template {
20
+ private static instance: Template;
21
+
22
+ private constructor() {
23
+ Handlebars.registerPartial('typeDocumentation', typeDocPartial);
24
+ Handlebars.registerPartial('documentablePartialTemplate', documentablePartialTemplate);
25
+ Handlebars.registerPartial('methodsPartialTemplate', methodsPartialTemplate);
26
+ Handlebars.registerPartial('constructorsPartialTemplate', constructorsPartialTemplate);
27
+ Handlebars.registerPartial('groupedMembersPartialTemplate', groupedMembersPartialTemplate);
28
+ Handlebars.registerPartial('fieldsPartialTemplate', fieldsPartialTemplate);
29
+ Handlebars.registerPartial('classTemplate', classMarkdownTemplate);
30
+ Handlebars.registerPartial('enumTemplate', enumMarkdownTemplate);
31
+ Handlebars.registerPartial('interfaceTemplate', interfaceMarkdownTemplate);
32
+
33
+ Handlebars.registerHelper('link', link);
34
+ Handlebars.registerHelper('code', convertCodeBlock);
35
+ Handlebars.registerHelper('renderContent', resolveRenderableContent);
36
+ Handlebars.registerHelper('heading', heading);
37
+ Handlebars.registerHelper('inlineCode', inlineCode);
38
+ Handlebars.registerHelper('splitAndCapitalize', splitAndCapitalize);
39
+ }
40
+
41
+ public static getInstance(): Template {
42
+ if (!Template.instance) {
43
+ Template.instance = new Template();
44
+ }
45
+ return Template.instance;
46
+ }
47
+
48
+ compile(request: CompilationRequest): string {
49
+ const compiled = Handlebars.compile(request.template);
50
+ return (
51
+ compiled(request.source)
52
+ .trim()
53
+ // clean up extra newlines
54
+ .replace(/\n{3,}/g, '\n\n')
55
+ );
56
+ }
57
+ }
58
+
59
+ const splitAndCapitalize = (text: string) => {
60
+ const words = text.split(/[-_]+/);
61
+ const capitalizedWords = [];
62
+ for (const word of words) {
63
+ capitalizedWords.push(word.charAt(0).toUpperCase() + word.slice(1));
64
+ }
65
+ return capitalizedWords.join(' ');
66
+ };
67
+
68
+ const heading = (level: number, text: string) => {
69
+ return `${'#'.repeat(level)} ${text}`;
70
+ };
71
+
72
+ const inlineCode = (text: string) => {
73
+ return new Handlebars.SafeString(`\`${text}\``);
74
+ };
75
+
76
+ const convertCodeBlock = (codeBlock: CodeBlock): Handlebars.SafeString => {
77
+ return new Handlebars.SafeString(
78
+ `
79
+ \`\`\`${codeBlock.language}
80
+ ${codeBlock.content.join('\n')}
81
+ \`\`\`
82
+ `.trim(),
83
+ );
84
+ };
85
+
86
+ const resolveRenderableContent = (description?: RenderableContent[]): string => {
87
+ if (!description) {
88
+ return '';
89
+ }
90
+
91
+ function reduceDescription(acc: string, curr: RenderableContent) {
92
+ if (isEmptyLine(curr)) {
93
+ return acc + '\n';
94
+ }
95
+ if (isCodeBlock(curr)) {
96
+ return acc + convertCodeBlock(curr) + '\n';
97
+ }
98
+ if (isInlineCode(curr)) {
99
+ return acc + inlineCode(curr.content).toString() + ' ';
100
+ } else {
101
+ return acc + Handlebars.escapeExpression(link(curr)).trim() + ' ';
102
+ }
103
+ }
104
+
105
+ return description.reduce(reduceDescription, '').trim();
106
+ };
107
+
108
+ const link = (source: StringOrLink): string => {
109
+ if (typeof source === 'string') {
110
+ return source;
111
+ } else {
112
+ return `[${source.title}](${source.url})`;
113
+ }
114
+ };
@@ -0,0 +1,27 @@
1
+ export const typeDocPartial = `
2
+ {{#> documentablePartialTemplate}}
3
+
4
+ {{#if doc.group}}
5
+ **Group** {{doc.group}}
6
+ {{/if}}
7
+
8
+ {{#if doc.author}}
9
+ **Author** {{doc.author}}
10
+ {{/if}}
11
+
12
+ {{#if doc.date}}
13
+ **Date** {{doc.date}}
14
+ {{/if}}
15
+
16
+ {{#each doc.sees}}
17
+ **See** {{link this}}
18
+
19
+ {{/each}}
20
+
21
+ {{#if namespace}}
22
+ ## Namespace
23
+ {{namespace}}
24
+ {{/if}}
25
+
26
+ {{/documentablePartialTemplate}}
27
+ `.trim();
@@ -0,0 +1,3 @@
1
+ import { ParsedFile } from '../shared/types';
2
+
3
+ export const parsedFilesToTypes = (parsedFiles: ParsedFile[]) => parsedFiles.map((parsedFile) => parsedFile.type);
@@ -1,7 +1,6 @@
1
1
  import { createManifest } from '../manifest-factory';
2
2
  import { Type } from '@cparra/apex-reflection';
3
3
  import { TypeParser } from '../parser';
4
- import ApexBundle from '../../model/apex-bundle';
5
4
 
6
5
  class TestParser implements TypeParser {
7
6
  parse(): Type[] {
@@ -10,7 +9,7 @@ class TestParser implements TypeParser {
10
9
  }
11
10
 
12
11
  it('creates a manifest from the result of a type parser', () => {
13
- const manifest = createManifest(new TestParser(), (bundle: ApexBundle) => {
12
+ const manifest = createManifest(new TestParser(), () => {
14
13
  return {};
15
14
  });
16
15
  expect(manifest.types.length).toBe(0);
@@ -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,7 +1,7 @@
1
- import { ClassMirrorBuilder } from '../../../test-helpers/ClassMirrorBuilder';
2
1
  import { ClassMirrorWrapper } from '../ClassMirrorWrapper';
3
- import { AnnotationBuilder } from '../../../test-helpers/AnnotationBuilder';
4
- import { MethodMirrorBuilder } from '../../../test-helpers/MethodMirrorBuilder';
2
+ import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
3
+ import { MethodMirrorBuilder } from '../../../../test-helpers/MethodMirrorBuilder';
4
+ import { AnnotationBuilder } from '../../../../test-helpers/AnnotationBuilder';
5
5
 
6
6
  it('should return methods by annotation when they exist', function () {
7
7
  const classMirror = new ClassMirrorBuilder()
@@ -0,0 +1,13 @@
1
+ import { PageData } from '../shared/types';
2
+
3
+ export class FileContainer {
4
+ _files: PageData[] = [];
5
+
6
+ files(): PageData[] {
7
+ return this._files;
8
+ }
9
+
10
+ pushFile(file: PageData): void {
11
+ this._files.push(file);
12
+ }
13
+ }
@@ -1,7 +1,7 @@
1
- import Manifest from '../model/manifest';
1
+ import Manifest from '../manifest';
2
2
  import { TypeParser } from './parser';
3
3
  import { ReflectionResult } from '@cparra/apex-reflection';
4
- import ApexBundle from '../model/apex-bundle';
4
+ import { UnparsedSourceFile } from '../shared/types';
5
5
 
6
6
  /**
7
7
  * Builds a new Manifest object, sourcing its types from the received TypeParser.
@@ -10,7 +10,7 @@ import ApexBundle from '../model/apex-bundle';
10
10
  */
11
11
  export function createManifest(
12
12
  typeParser: TypeParser,
13
- reflect: (apexBundle: ApexBundle) => ReflectionResult,
13
+ reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult,
14
14
  ): Manifest {
15
15
  return new Manifest(typeParser.parse(reflect));
16
16
  }
@@ -1,19 +1,17 @@
1
- import ProcessorTypeTranspiler from '../processor-type-transpiler';
2
- import { FileContainer } from '../file-container';
1
+ import { FileContainer } from './file-container';
3
2
  import { ClassMirror, Type } from '@cparra/apex-reflection';
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';
3
+ import { Logger } from '#utils/logger';
4
+ import { OpenApi } from './open-api';
5
+ import { Settings } from '../settings';
8
6
  import { MethodParser } from './parsers/MethodParser';
9
- import { camel2title } from '../../util/string-utils';
7
+ import { camel2title } from '#utils/string-utils';
8
+ import { createOpenApiFile } from './openapi-type-file';
10
9
 
11
- export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
10
+ export class OpenApiDocsProcessor {
12
11
  protected readonly _fileContainer: FileContainer;
13
12
  openApiModel: OpenApi;
14
13
 
15
14
  constructor() {
16
- super();
17
15
  this._fileContainer = new FileContainer();
18
16
  const title = Settings.getInstance().getOpenApiTitle();
19
17
  if (!title) {
@@ -27,7 +25,7 @@ export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
27
25
  }
28
26
 
29
27
  onProcess(type: Type): void {
30
- Logger.logSingle(`Processing ${type.name}`, false, 'green', false);
28
+ Logger.logSingle(`Processing ${type.name}`, 'green');
31
29
 
32
30
  const endpointPath = this.getEndpointPath(type);
33
31
  if (!endpointPath) {
@@ -68,7 +66,8 @@ export class OpenApiDocsProcessor extends ProcessorTypeTranspiler {
68
66
  }
69
67
 
70
68
  onAfterProcess: ((types: Type[]) => void) | undefined = () => {
71
- this._fileContainer.pushFile(new OpenapiTypeFile(this.openApiModel));
69
+ const page = createOpenApiFile(Settings.getInstance().openApiFileName(), this.openApiModel);
70
+ this._fileContainer.pushFile(page);
72
71
  };
73
72
 
74
73
  private getEndpointPath(type: Type): string | null {
@@ -56,14 +56,14 @@ export type RequestBodyContent = {
56
56
 
57
57
  export type MediaTypeObject = {
58
58
  schema?: SchemaObject;
59
- example?: any;
59
+ example?: unknown;
60
60
  examples?: { [index: string]: ExampleObject };
61
61
  };
62
62
 
63
63
  export type ExampleObject = {
64
64
  summary?: string;
65
65
  description?: string;
66
- value?: any;
66
+ value?: unknown;
67
67
  };
68
68
 
69
69
  // Responses
@@ -0,0 +1,12 @@
1
+ import { OpenApi } from './open-api';
2
+ import { OpenApiPageData } from '../shared/types';
3
+
4
+ export function createOpenApiFile(fileName: string, openApiModel: OpenApi): OpenApiPageData {
5
+ const content = JSON.stringify({ ...openApiModel, namespace: undefined }, null, 2);
6
+ return {
7
+ outputDocPath: '',
8
+ content,
9
+ frontmatter: null,
10
+ group: null,
11
+ };
12
+ }
@@ -1,35 +1,21 @@
1
1
  import { ClassMirror, InterfaceMirror, ReflectionResult, Type } from '@cparra/apex-reflection';
2
- import ApexBundle from '../model/apex-bundle';
3
- import MetadataProcessor from './metadata-processor';
4
- import { Logger } from '../util/logger';
2
+ import { Logger } from '#utils/logger';
3
+ import { UnparsedSourceFile } from '../shared/types';
5
4
 
6
5
  export interface TypeParser {
7
- parse(reflect: (apexBundle: ApexBundle) => ReflectionResult): Type[];
6
+ parse(reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult): Type[];
8
7
  }
9
8
 
10
9
  type NameAware = { name: string };
11
10
 
12
11
  export class RawBodyParser implements TypeParser {
13
- constructor(public typeBundles: ApexBundle[]) {}
12
+ constructor(public typeBundles: UnparsedSourceFile[]) {}
14
13
 
15
- parse(reflect: (apexBundle: ApexBundle) => ReflectionResult): Type[] {
14
+ parse(reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult): Type[] {
16
15
  const types = this.typeBundles
17
16
  .map((currentBundle) => {
18
17
  Logger.log(`Parsing file: ${currentBundle.filePath}`);
19
- const result = reflect(currentBundle);
20
- if (!!result.typeMirror && !!currentBundle.rawMetadataContent) {
21
- // If successful and there is a metadata file
22
- const metadataParams = MetadataProcessor.process(currentBundle.rawMetadataContent);
23
- metadataParams.forEach((value, key) => {
24
- const declaration = `${key}: ${value}`;
25
- result.typeMirror?.annotations.push({
26
- rawDeclaration: declaration,
27
- name: declaration,
28
- type: declaration,
29
- });
30
- });
31
- }
32
- return result;
18
+ return reflect(currentBundle);
33
19
  })
34
20
  .filter((reflectionResult) => {
35
21
  return reflectionResult.typeMirror;
@@ -60,7 +46,7 @@ export class RawBodyParser implements TypeParser {
60
46
  continue;
61
47
  }
62
48
 
63
- // If reaching here then we are dealing with an interface
49
+ // At this stage, we can be sure we are dealing with an interface
64
50
  let typeAsInterface = currentType as InterfaceMirror;
65
51
  if (!typeAsInterface.extended_interfaces.length) {
66
52
  typesWithFields.push(currentType);
@@ -1,6 +1,6 @@
1
1
  import { Reference, ReferenceBuilder } from './ReferenceBuilder';
2
- import { ApexDocSchemaObject } from '../../../model/openapi/apex-doc-types';
3
- import { SchemaObject } from '../../../model/openapi/open-api-types';
2
+ import { ApexDocSchemaObject } from '../../../core/openapi/apex-doc-types';
3
+ import { SchemaObject } from '../../../core/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: any): targetObject is string => {
32
+ private isReferenceString = (targetObject: unknown): 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 '../../../model/openapi/open-api';
2
+ import { OpenApi } from '../../../core/openapi/open-api';
3
3
  import * as yaml from 'js-yaml';
4
- import { ClassMirrorWrapper } from '../../../model/apex-type-wrappers/ClassMirrorWrapper';
4
+ import { ClassMirrorWrapper } from '../../../core/openapi/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 '../../../model/openapi/apex-doc-types';
12
+ } from '../../../core/openapi/apex-doc-types';
13
13
  import { RequestBodyBuilder } from './RequestBodyBuilder';
14
14
  import { ApexDocSchemaAware } from './Builder';
15
- import { PropertiesObject, ReferenceObject } from '../../../model/openapi/open-api-types';
16
- import { MethodMirrorWrapper } from '../../../model/apex-type-wrappers/MethodMirrorWrapper';
15
+ import { PropertiesObject, ReferenceObject } from '../../../core/openapi/open-api-types';
16
+ import { MethodMirrorWrapper } from '../../../core/openapi/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 '../../../model/openapi/open-api-types';
1
+ import { ParameterObject } from '../../../core/openapi/open-api-types';
2
2
  import { Reference } from './ReferenceBuilder';
3
- import { ApexDocParameterObject } from '../../../model/openapi/apex-doc-types';
3
+ import { ApexDocParameterObject } from '../../../core/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 '../../../model/openapi/open-api-types';
9
- import { TypeBundle, TypesRepository } from '../../../model/types-repository';
8
+ } from '../../../core/openapi/open-api-types';
9
+ import { TypeBundle, TypesRepository } from '../../../core/openapi/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 '../../../model/openapi/apex-doc-types';
12
+ import { ApexDocSchemaObject } from '../../../core/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,6 +243,7 @@ export class ReferenceBuilder {
243
243
  schema: reference.entrypointReferenceObject,
244
244
  referenceComponents: [...reference.referenceComponents],
245
245
  };
246
+ }
246
247
  }
247
248
  }
248
249
 
@@ -266,7 +267,7 @@ type SchemaObjectReferencePair = {
266
267
 
267
268
  class ReferenceOverrides {
268
269
  static build(referenceAsString: string): ReferenceOverride[] {
269
- const cleanedUpReference = referenceAsString.replace(/[\[\]]/g, '');
270
+ const cleanedUpReference = referenceAsString.replace(/[[\]]/g, '');
270
271
  const referenceStrings = cleanedUpReference.split(',').map((item) => item.replace(/\s/g, ''));
271
272
  return referenceStrings.map((item) => {
272
273
  const [propertyName, referenceName] = item.split(':');
@@ -1,6 +1,6 @@
1
- import { RequestBody } from '../../../model/openapi/open-api-types';
1
+ import { RequestBody } from '../../../core/openapi/open-api-types';
2
2
  import { Reference } from './ReferenceBuilder';
3
- import { ApexDocHttpRequestBody } from '../../../model/openapi/apex-doc-types';
3
+ import { ApexDocHttpRequestBody } from '../../../core/openapi/apex-doc-types';
4
4
  import { Builder } from './Builder';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
- import { ResponseObject } from '../../../model/openapi/open-api-types';
1
+ import { ResponseObject } from '../../../core/openapi/open-api-types';
2
2
  import { Reference } from './ReferenceBuilder';
3
- import { ApexDocHttpResponse } from '../../../model/openapi/apex-doc-types';
3
+ import { ApexDocHttpResponse } from '../../../core/openapi/apex-doc-types';
4
4
  import { Builder } from './Builder';
5
5
 
6
6
  export class ResponsesBuilder extends Builder<ResponseObject, ApexDocHttpResponse> {
@@ -1,7 +1,7 @@
1
1
  import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
2
2
  import { MethodMirrorBuilder } from '../../../../test-helpers/MethodMirrorBuilder';
3
3
  import { AnnotationBuilder } from '../../../../test-helpers/AnnotationBuilder';
4
- import { OpenApi } from '../../../../model/openapi/open-api';
4
+ import { OpenApi } from '../../../../core/openapi/open-api';
5
5
  import { MethodParser } from '../MethodParser';
6
6
  import { DocCommentBuilder } from '../../../../test-helpers/DocCommentBuilder';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { ParameterObjectBuilder } from '../ParameterObjectBuilder';
2
2
  import { Reference } from '../ReferenceBuilder';
3
- import { ReferenceObject } from '../../../../model/openapi/open-api-types';
4
- import { ApexDocParameterObject } from '../../../../model/openapi/apex-doc-types';
3
+ import { ReferenceObject } from '../../../../core/openapi/open-api-types';
4
+ import { ApexDocParameterObject } from '../../../../core/openapi/apex-doc-types';
5
5
 
6
6
  jest.mock('../ReferenceBuilder', () => {
7
7
  return {
@@ -1,8 +1,8 @@
1
- import { TypesRepository } from '../../../../model/types-repository';
1
+ import { TypesRepository } from '../../../../core/openapi/types-repository';
2
2
  import { ReferenceBuilder } from '../ReferenceBuilder';
3
3
  import { ClassMirrorBuilder } from '../../../../test-helpers/ClassMirrorBuilder';
4
4
  import { FieldMirrorBuilder } from '../../../../test-helpers/FieldMirrorBuilder';
5
- import { SchemaObjectArray, SchemaObjectObject } from '../../../../model/openapi/open-api-types';
5
+ import { SchemaObjectArray, SchemaObjectObject } from '../../../../core/openapi/open-api-types';
6
6
  import { DocCommentBuilder } from '../../../../test-helpers/DocCommentBuilder';
7
7
  import { DocCommentAnnotationBuilder } from '../../../../test-helpers/DocCommentAnnotationBuilder';
8
8