@xpack/doxygen2docusaurus 2.0.0 → 2.2.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 (365) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -1
  3. package/bin/doxygen2docusaurus.js +5 -5
  4. package/dist/cli/main.d.ts +0 -14
  5. package/dist/cli/main.d.ts.map +1 -1
  6. package/dist/cli/main.js +0 -34
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/docusaurus/cli-options.d.ts +3 -292
  9. package/dist/docusaurus/cli-options.d.ts.map +1 -1
  10. package/dist/docusaurus/cli-options.js +6 -290
  11. package/dist/docusaurus/cli-options.js.map +1 -1
  12. package/dist/docusaurus/generator.d.ts +0 -172
  13. package/dist/docusaurus/generator.d.ts.map +1 -1
  14. package/dist/docusaurus/generator.js +20 -280
  15. package/dist/docusaurus/generator.js.map +1 -1
  16. package/dist/docusaurus/renderers/conceptparts.d.ts +9 -0
  17. package/dist/docusaurus/renderers/conceptparts.d.ts.map +1 -0
  18. package/dist/docusaurus/renderers/conceptparts.js +21 -0
  19. package/dist/docusaurus/renderers/conceptparts.js.map +1 -0
  20. package/dist/docusaurus/renderers/descriptiontype.d.ts +0 -417
  21. package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
  22. package/dist/docusaurus/renderers/descriptiontype.js +11 -555
  23. package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
  24. package/dist/docusaurus/renderers/docinternalstype.d.ts +0 -132
  25. package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
  26. package/dist/docusaurus/renderers/docinternalstype.js +0 -156
  27. package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
  28. package/dist/docusaurus/renderers/doclisttype.d.ts +0 -22
  29. package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
  30. package/dist/docusaurus/renderers/doclisttype.js +0 -42
  31. package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
  32. package/dist/docusaurus/renderers/doctabletype.d.ts +0 -88
  33. package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
  34. package/dist/docusaurus/renderers/doctabletype.js +1 -113
  35. package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
  36. package/dist/docusaurus/renderers/doctitletype.d.ts +0 -22
  37. package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
  38. package/dist/docusaurus/renderers/doctitletype.js +0 -42
  39. package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
  40. package/dist/docusaurus/renderers/docvariablelisttype.d.ts +0 -44
  41. package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
  42. package/dist/docusaurus/renderers/docvariablelisttype.js +1 -69
  43. package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
  44. package/dist/docusaurus/renderers/docxrefsecttype.d.ts +0 -22
  45. package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
  46. package/dist/docusaurus/renderers/docxrefsecttype.js +0 -38
  47. package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
  48. package/dist/docusaurus/renderers/element-renderer-base.d.ts +0 -74
  49. package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
  50. package/dist/docusaurus/renderers/element-renderer-base.js +0 -64
  51. package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
  52. package/dist/docusaurus/renderers/inctype.d.ts +0 -23
  53. package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
  54. package/dist/docusaurus/renderers/inctype.js +0 -41
  55. package/dist/docusaurus/renderers/inctype.js.map +1 -1
  56. package/dist/docusaurus/renderers/linkedtexttype.d.ts +0 -22
  57. package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
  58. package/dist/docusaurus/renderers/linkedtexttype.js +0 -45
  59. package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
  60. package/dist/docusaurus/renderers/listingtype.d.ts +0 -52
  61. package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
  62. package/dist/docusaurus/renderers/listingtype.js +1 -88
  63. package/dist/docusaurus/renderers/listingtype.js.map +1 -1
  64. package/dist/docusaurus/renderers/paramtype.d.ts +0 -22
  65. package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
  66. package/dist/docusaurus/renderers/paramtype.js +2 -51
  67. package/dist/docusaurus/renderers/paramtype.js.map +1 -1
  68. package/dist/docusaurus/renderers/referencetype.d.ts +0 -23
  69. package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
  70. package/dist/docusaurus/renderers/referencetype.js +0 -38
  71. package/dist/docusaurus/renderers/referencetype.js.map +1 -1
  72. package/dist/docusaurus/renderers/reftexttype.d.ts +0 -22
  73. package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
  74. package/dist/docusaurus/renderers/reftexttype.js +0 -38
  75. package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
  76. package/dist/docusaurus/renderers/reftype.d.ts +0 -22
  77. package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
  78. package/dist/docusaurus/renderers/reftype.js +0 -38
  79. package/dist/docusaurus/renderers/reftype.js.map +1 -1
  80. package/dist/docusaurus/renderers/renderers.d.ts +0 -151
  81. package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
  82. package/dist/docusaurus/renderers/renderers.js +15 -186
  83. package/dist/docusaurus/renderers/renderers.js.map +1 -1
  84. package/dist/docusaurus/renderers/substringtype.d.ts +0 -22
  85. package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
  86. package/dist/docusaurus/renderers/substringtype.js +0 -39
  87. package/dist/docusaurus/renderers/substringtype.js.map +1 -1
  88. package/dist/docusaurus/renderers/tableofcontentstype.d.ts +0 -22
  89. package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
  90. package/dist/docusaurus/renderers/tableofcontentstype.js +0 -39
  91. package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
  92. package/dist/docusaurus/types.d.ts +0 -110
  93. package/dist/docusaurus/types.d.ts.map +1 -1
  94. package/dist/docusaurus/types.js +0 -11
  95. package/dist/docusaurus/types.js.map +1 -1
  96. package/dist/docusaurus/utils.d.ts +0 -214
  97. package/dist/docusaurus/utils.d.ts.map +1 -1
  98. package/dist/docusaurus/utils.js +0 -296
  99. package/dist/docusaurus/utils.js.map +1 -1
  100. package/dist/docusaurus/view-model/classes-vm.d.ts +0 -137
  101. package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
  102. package/dist/docusaurus/view-model/classes-vm.js +9 -225
  103. package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
  104. package/dist/docusaurus/view-model/collection-base.d.ts +0 -120
  105. package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
  106. package/dist/docusaurus/view-model/collection-base.js +11 -101
  107. package/dist/docusaurus/view-model/collection-base.js.map +1 -1
  108. package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -147
  109. package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
  110. package/dist/docusaurus/view-model/compound-base-vm.js +47 -225
  111. package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
  112. package/dist/docusaurus/view-model/concepts-vm.d.ts +27 -0
  113. package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
  114. package/dist/docusaurus/view-model/concepts-vm.js +337 -0
  115. package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
  116. package/dist/docusaurus/view-model/description-anchors.d.ts +0 -58
  117. package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
  118. package/dist/docusaurus/view-model/description-anchors.js +0 -71
  119. package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
  120. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +0 -247
  121. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
  122. package/dist/docusaurus/view-model/files-and-folders-vm.js +61 -353
  123. package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
  124. package/dist/docusaurus/view-model/groups-vm.d.ts +0 -148
  125. package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
  126. package/dist/docusaurus/view-model/groups-vm.js +2 -223
  127. package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
  128. package/dist/docusaurus/view-model/members-vm.d.ts +0 -552
  129. package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
  130. package/dist/docusaurus/view-model/members-vm.js +17 -702
  131. package/dist/docusaurus/view-model/members-vm.js.map +1 -1
  132. package/dist/docusaurus/view-model/namespaces-vm.d.ts +5 -199
  133. package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
  134. package/dist/docusaurus/view-model/namespaces-vm.js +85 -284
  135. package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
  136. package/dist/docusaurus/view-model/options.d.ts +0 -43
  137. package/dist/docusaurus/view-model/options.d.ts.map +1 -1
  138. package/dist/docusaurus/view-model/options.js +0 -57
  139. package/dist/docusaurus/view-model/options.js.map +1 -1
  140. package/dist/docusaurus/view-model/pages-vm.d.ts +0 -115
  141. package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
  142. package/dist/docusaurus/view-model/pages-vm.js +39 -162
  143. package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
  144. package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -142
  145. package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
  146. package/dist/docusaurus/view-model/tree-entries-vm.js +54 -174
  147. package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
  148. package/dist/docusaurus/view-model/view-model.d.ts +0 -125
  149. package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
  150. package/dist/docusaurus/view-model/view-model.js +20 -182
  151. package/dist/docusaurus/view-model/view-model.js.map +1 -1
  152. package/dist/docusaurus/workspace.d.ts +1 -126
  153. package/dist/docusaurus/workspace.d.ts.map +1 -1
  154. package/dist/docusaurus/workspace.js +8 -221
  155. package/dist/docusaurus/workspace.js.map +1 -1
  156. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +7 -492
  157. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
  158. package/dist/doxygen/data-model/compounds/compounddef-dm.js +28 -672
  159. package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
  160. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -129
  161. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
  162. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -145
  163. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
  164. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts +23 -0
  165. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts.map +1 -0
  166. package/dist/doxygen/data-model/compounds/concepts-dm.js +94 -0
  167. package/dist/doxygen/data-model/compounds/concepts-dm.js.map +1 -0
  168. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +104 -2848
  169. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
  170. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +73 -3975
  171. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
  172. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts +0 -165
  173. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
  174. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -229
  175. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
  176. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts +0 -70
  177. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
  178. package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -105
  179. package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
  180. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -84
  181. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
  182. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -122
  183. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
  184. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -116
  185. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
  186. package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -155
  187. package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
  188. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -138
  189. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
  190. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -180
  191. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
  192. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -76
  193. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
  194. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -107
  195. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
  196. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -162
  197. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
  198. package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -203
  199. package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
  200. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -443
  201. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
  202. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -475
  203. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
  204. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -141
  205. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
  206. package/dist/doxygen/data-model/compounds/memberreftype-dm.js +0 -176
  207. package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
  208. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -101
  209. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
  210. package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -115
  211. package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
  212. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -164
  213. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
  214. package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -208
  215. package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
  216. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -139
  217. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
  218. package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -175
  219. package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
  220. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts +0 -120
  221. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
  222. package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -141
  223. package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
  224. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -268
  225. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
  226. package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -326
  227. package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
  228. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -105
  229. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
  230. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -139
  231. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
  232. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts +2 -0
  233. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts.map +1 -0
  234. package/dist/doxygen/data-model/compounds/requirements-dm.js +2 -0
  235. package/dist/doxygen/data-model/compounds/requirements-dm.js.map +1 -0
  236. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -168
  237. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
  238. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -209
  239. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
  240. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -267
  241. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
  242. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -354
  243. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
  244. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -66
  245. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
  246. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -97
  247. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
  248. package/dist/doxygen/data-model/data-model.d.ts +0 -149
  249. package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
  250. package/dist/doxygen/data-model/data-model.js +8 -200
  251. package/dist/doxygen/data-model/data-model.js.map +1 -1
  252. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -115
  253. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
  254. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -129
  255. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
  256. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -87
  257. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
  258. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -118
  259. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
  260. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -253
  261. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
  262. package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -291
  263. package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
  264. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -98
  265. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
  266. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -122
  267. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
  268. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -82
  269. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
  270. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -114
  271. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
  272. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -85
  273. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
  274. package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -107
  275. package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
  276. package/dist/doxygen/data-model/types.d.ts +0 -104
  277. package/dist/doxygen/data-model/types.d.ts.map +1 -1
  278. package/dist/doxygen/data-model/types.js +0 -52
  279. package/dist/doxygen/data-model/types.js.map +1 -1
  280. package/dist/index.d.ts +5 -16
  281. package/dist/index.d.ts.map +1 -1
  282. package/dist/index.js +5 -42
  283. package/dist/index.js.map +1 -1
  284. package/package.json +49 -52
  285. package/src/cli/main.ts +122 -0
  286. package/src/docusaurus/cli-options.ts +560 -0
  287. package/src/docusaurus/generator.ts +788 -0
  288. package/src/docusaurus/renderers/conceptparts.ts +119 -0
  289. package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
  290. package/src/docusaurus/renderers/docinternalstype.ts +354 -0
  291. package/src/docusaurus/renderers/doclisttype.ts +134 -0
  292. package/src/docusaurus/renderers/doctabletype.ts +220 -0
  293. package/src/docusaurus/renderers/doctitletype.ts +77 -0
  294. package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
  295. package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
  296. package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
  297. package/src/docusaurus/renderers/inctype.ts +75 -0
  298. package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
  299. package/src/docusaurus/renderers/listingtype.ts +235 -0
  300. package/src/docusaurus/renderers/paramtype.ts +116 -0
  301. package/src/docusaurus/renderers/referencetype.ts +83 -0
  302. package/src/docusaurus/renderers/reftexttype.ts +81 -0
  303. package/src/docusaurus/renderers/reftype.ts +77 -0
  304. package/src/docusaurus/renderers/renderers.ts +812 -0
  305. package/src/docusaurus/renderers/substringtype.ts +53 -0
  306. package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
  307. package/src/docusaurus/types.ts +187 -0
  308. package/src/docusaurus/utils.ts +409 -0
  309. package/src/docusaurus/view-model/README.md +12 -0
  310. package/src/docusaurus/view-model/classes-vm.ts +1088 -0
  311. package/src/docusaurus/view-model/collection-base.ts +352 -0
  312. package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
  313. package/src/docusaurus/view-model/concepts-vm.ts +749 -0
  314. package/src/docusaurus/view-model/description-anchors.ts +107 -0
  315. package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
  316. package/src/docusaurus/view-model/groups-vm.ts +548 -0
  317. package/src/docusaurus/view-model/members-vm.ts +1943 -0
  318. package/src/docusaurus/view-model/namespaces-vm.ts +1037 -0
  319. package/src/docusaurus/view-model/options.ts +95 -0
  320. package/src/docusaurus/view-model/pages-vm.ts +389 -0
  321. package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
  322. package/src/docusaurus/view-model/view-model.ts +513 -0
  323. package/src/docusaurus/workspace.ts +588 -0
  324. package/src/doxygen/data-model/README.md +13 -0
  325. package/src/doxygen/data-model/compounds/compounddef-dm.ts +1230 -0
  326. package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
  327. package/src/doxygen/data-model/compounds/concepts-dm.ts +362 -0
  328. package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10114 -0
  329. package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
  330. package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
  331. package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
  332. package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
  333. package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
  334. package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
  335. package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
  336. package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +881 -0
  337. package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
  338. package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
  339. package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
  340. package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
  341. package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
  342. package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
  343. package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
  344. package/src/doxygen/data-model/compounds/requirements-dm.ts +50 -0
  345. package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
  346. package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +564 -0
  347. package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
  348. package/src/doxygen/data-model/data-model.ts +378 -0
  349. package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
  350. package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
  351. package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
  352. package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
  353. package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
  354. package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
  355. package/src/doxygen/data-model/types.ts +175 -0
  356. package/src/doxygen/data-model/xsds/README.md +6 -0
  357. package/src/doxygen/data-model/xsds/compound.xsd +1788 -0
  358. package/src/doxygen/data-model/xsds/doxyfile.xsd +365 -0
  359. package/src/doxygen/data-model/xsds/index.xsd +74 -0
  360. package/src/doxygen/data-model/xsds/xml.xsd +23 -0
  361. package/src/index.ts +267 -0
  362. package/src/tsconfig.json +12 -0
  363. package/dist/doxygen2docusaurus.d.ts +0 -4774
  364. package/dist/tsconfig.tsbuildinfo +0 -1
  365. package/dist/tsdoc-metadata.json +0 -11
@@ -0,0 +1,150 @@
1
+ /*
2
+ * This file is part of the xPack project (http://xpack.github.io).
3
+ * Copyright (c) 2025-2026 Liviu Ionescu. All rights reserved.
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose is hereby granted, under the terms of the MIT license.
7
+ *
8
+ * If a copy of the license was not distributed with this file, it can be
9
+ * obtained from https://opensource.org/licenses/mit.
10
+ */
11
+
12
+ // ----------------------------------------------------------------------------
13
+
14
+ import assert from 'node:assert'
15
+ import * as util from 'node:util'
16
+
17
+ import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
18
+ import { ParamDataModel } from './paramtype-dm.js'
19
+ import { AbstractDataModelBase } from '../types.js'
20
+
21
+ // ----------------------------------------------------------------------------
22
+
23
+ // <xsd:complexType name="templateparamlistType">
24
+ // <xsd:sequence>
25
+ // <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
26
+ // </xsd:sequence>
27
+ // </xsd:complexType>
28
+
29
+ /**
30
+ * Abstract base class for template parameter list type data models.
31
+ *
32
+ * @remarks
33
+ * Represents template parameter list elements within Doxygen XML structures,
34
+ * corresponding to the templateparamlistType complex type in the XML schema.
35
+ * This class handles the parsing of parameter collections for templated
36
+ * constructs such as template classes and functions. All concrete template
37
+ * parameter list data model classes should extend this abstract base to
38
+ * ensure consistent parsing and data representation.
39
+ *
40
+ * @public
41
+ */
42
+ // eslint-disable-next-line max-len
43
+ export abstract class AbstractTemplateParamListType extends AbstractDataModelBase {
44
+ /**
45
+ * Collection of parameter data models within this template parameter list.
46
+ *
47
+ * @remarks
48
+ * Optional array containing parameter elements found within the template
49
+ * parameter list structure. Each parameter represents a template parameter
50
+ * definition including its type, name, and other attributes. The array
51
+ * supports zero to many parameters as per the XML schema, accommodating
52
+ * both non-templated constructs and complex template declarations.
53
+ */
54
+ params?: ParamDataModel[] | undefined
55
+
56
+ /**
57
+ * Constructs a new AbstractTemplateParamListType instance from XML data.
58
+ *
59
+ * @param xml - The Doxygen XML parser instance for processing XML elements
60
+ * @param element - The XML element containing the template parameter list
61
+ * data
62
+ * @param elementName - The name of the XML element being processed
63
+ *
64
+ * @remarks
65
+ * Parses the provided XML element to extract template parameter list
66
+ * information including parameter collections. The constructor processes
67
+ * parameter elements into ParamDataModel instances when present. This
68
+ * element type has no attributes as per the XML schema definition,
69
+ * containing only parameter child elements.
70
+ */
71
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
72
+ super(elementName)
73
+
74
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
75
+
76
+ // ------------------------------------------------------------------------
77
+ // Process elements.
78
+
79
+ const innerElements = xml.getInnerElements(element, elementName)
80
+ assert(innerElements.length > 0)
81
+
82
+ // console.log(util.inspect(item))
83
+ for (const innerElement of innerElements) {
84
+ if (xml.hasInnerText(innerElement)) {
85
+ // Ignore texts
86
+ } else if (xml.hasInnerElement(innerElement, 'param')) {
87
+ this.params ??= []
88
+ this.params.push(new ParamDataModel(xml, innerElement))
89
+ } else {
90
+ console.error(util.inspect(innerElement))
91
+ console.error(
92
+ `${elementName} element:`,
93
+ Object.keys(innerElement),
94
+ 'not implemented yet in',
95
+ this.constructor.name
96
+ )
97
+ }
98
+ }
99
+
100
+ // ------------------------------------------------------------------------
101
+ // Process attributes.
102
+
103
+ assert(!xml.hasAttributes(element))
104
+
105
+ // ------------------------------------------------------------------------
106
+
107
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
108
+ }
109
+ }
110
+
111
+ // ----------------------------------------------------------------------------
112
+
113
+ // <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
114
+
115
+ /**
116
+ * Concrete data model class for template parameter list elements.
117
+ *
118
+ * @remarks
119
+ * Represents individual template parameter list elements found within
120
+ * Doxygen compound XML structures. This class extends the abstract base
121
+ * to provide specific handling for 'templateparamlist' elements, which
122
+ * define the template parameters for templated constructs such as template
123
+ * classes, template functions, and template variables. Each template
124
+ * parameter list contains parameter definitions that specify the generic
125
+ * types and values used in template instantiation.
126
+ *
127
+ * @public
128
+ */
129
+ export class TemplateParamListDataModel extends AbstractTemplateParamListType {
130
+ /**
131
+ * Constructs a new TemplateParamListDataModel instance from XML data.
132
+ *
133
+ * @param xml - The Doxygen XML parser instance for processing XML elements
134
+ * @param element - The XML element containing the template parameter list
135
+ * data
136
+ *
137
+ * @remarks
138
+ * Initialises the template parameter list data model by parsing the
139
+ * provided XML element as a 'templateparamlist' element type. The
140
+ * constructor delegates to the parent class for common parameter list
141
+ * processing whilst specifying the element name for proper XML structure
142
+ * handling.
143
+ */
144
+ constructor(xml: DoxygenXmlParser, element: object) {
145
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
146
+ super(xml, element, 'templateparamlist')
147
+ }
148
+ }
149
+
150
+ // ----------------------------------------------------------------------------
@@ -0,0 +1,378 @@
1
+ /*
2
+ * This file is part of the xPack project (http://xpack.github.io).
3
+ * Copyright (c) 2025-2026 Liviu Ionescu. All rights reserved.
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose is hereby granted, under the terms of the MIT license.
7
+ *
8
+ * If a copy of the license was not distributed with this file, it can be
9
+ * obtained from https://opensource.org/licenses/mit.
10
+ */
11
+
12
+ // ----------------------------------------------------------------------------
13
+
14
+ import assert from 'node:assert'
15
+ import * as fs from 'node:fs/promises'
16
+ import * as path from 'node:path'
17
+ import * as util from 'node:util'
18
+
19
+ import { CliOptions } from '../../docusaurus/cli-options.js'
20
+ import { CompoundDefDataModel } from './compounds/compounddef-dm.js'
21
+ import { DoxygenFileDataModel } from './doxyfile/doxyfiletype-dm.js'
22
+ import { DoxygenIndexDataModel } from './index/indexdoxygentype-dm.js'
23
+ import { XmlElement } from './types.js'
24
+ import { IndexCompoundDataModel } from './index/indexcompoundtype-dm.js'
25
+ import { DoxygenDataModel } from './compounds/doxygentype-dm.js'
26
+ import { MemberDefDataModel } from './compounds/memberdeftype-dm.js'
27
+ import { DoxygenXmlParser } from './doxygen-xml-parser.js'
28
+
29
+ // ----------------------------------------------------------------------------
30
+
31
+ /**
32
+ * Top-level data model class for orchestrating Doxygen XML parsing and data
33
+ * organisation.
34
+ *
35
+ * @remarks
36
+ * This class serves as the primary entry point for parsing Doxygen-generated
37
+ * XML files and constructing a comprehensive data model. It coordinates the
38
+ * parsing of index files, compound definitions, and configuration files,
39
+ * maintaining references to all parsed content for subsequent processing.
40
+ * The class provides methods for sequential parsing operations and ensures
41
+ * data integrity throughout the parsing workflow.
42
+ *
43
+ * @public
44
+ */
45
+ export class DataModel {
46
+ /**
47
+ * The global configuration options for the parsing operation.
48
+ *
49
+ * @remarks
50
+ * Contains command-line interface options that control the behaviour of
51
+ * the parser and influence how XML files are processed and data models
52
+ * are constructed.
53
+ */
54
+ options: CliOptions
55
+
56
+ /**
57
+ * The XML parser instance used for processing Doxygen XML files.
58
+ *
59
+ * @remarks
60
+ * Provides low-level XML parsing functionality and utility methods for
61
+ * extracting elements, attributes, and text content from the parsed XML
62
+ * structure.
63
+ */
64
+ xml: DoxygenXmlParser
65
+
66
+ /**
67
+ * Counter tracking the number of XML files successfully parsed.
68
+ *
69
+ * @remarks
70
+ * Incremented for each XML file processed during the parsing operation,
71
+ * providing metrics for progress monitoring and diagnostic reporting.
72
+ *
73
+ * @defaultValue 0
74
+ */
75
+ parsedFilesCounter = 0
76
+
77
+ /**
78
+ * The parsed Doxygen index data model from the main index XML file.
79
+ *
80
+ * @remarks
81
+ * Contains the top-level index structure that references all compound
82
+ * definitions and provides the navigation structure for the documentation.
83
+ * Populated during the initial parsing phase from `index.xml`.
84
+ */
85
+ doxygenindex?: DoxygenIndexDataModel // from index.xml
86
+
87
+ /**
88
+ * Collection of compound definition data models parsed from individual XML
89
+ * files.
90
+ *
91
+ * @remarks
92
+ * Each compound definition represents a documented entity such as a class,
93
+ * namespace, or file, along with its members and associated documentation.
94
+ * Populated by parsing XML files referenced in the index.
95
+ */
96
+ compoundDefs: CompoundDefDataModel[] // from `${'@_refid'}.xml`
97
+
98
+ /**
99
+ * The parsed Doxyfile configuration data model.
100
+ *
101
+ * @remarks
102
+ * Contains the Doxygen configuration options and settings that influenced
103
+ * the generation of the XML documentation. Parsed from `Doxyfile.xml` if
104
+ * present in the input folder.
105
+ */
106
+ doxyfile?: DoxygenFileDataModel // from Doxyfile.xml
107
+
108
+ /**
109
+ * The project version string extracted from the documentation metadata.
110
+ *
111
+ * @remarks
112
+ * Optional version identifier for the documented project, typically derived
113
+ * from the Doxygen configuration or project metadata during parsing.
114
+ */
115
+ projectVersion?: string
116
+
117
+ /**
118
+ * Constructs a new DataModel instance with the specified configuration
119
+ * options.
120
+ *
121
+ * @param options - The command-line interface options for controlling parsing
122
+ * behaviour
123
+ *
124
+ * @remarks
125
+ * Initialises the data model with the provided configuration options and
126
+ * creates a new DoxygenXmlParser instance for XML processing. The compound
127
+ * definitions array is initialised as empty and will be populated during
128
+ * the parsing phase.
129
+ */
130
+ constructor(options: CliOptions) {
131
+ this.options = options
132
+
133
+ this.xml = new DoxygenXmlParser(options)
134
+
135
+ this.compoundDefs = []
136
+ }
137
+
138
+ /**
139
+ * Orchestrates the complete parsing of Doxygen XML files and data model
140
+ * construction.
141
+ *
142
+ * @remarks
143
+ * This method performs the complete parsing workflow in sequential phases:
144
+ * parsing the main index file, processing all referenced compound XML files,
145
+ * and parsing the Doxyfile configuration. It maintains the original XML
146
+ * element order and content fidelity throughout the process. Progress
147
+ * information is logged to the console, with detailed output in verbose mode.
148
+ */
149
+ async parse(): Promise<void> {
150
+ // The parser is configured to preserve the original, non-trimmed content
151
+ // and the original elements order. The downsize
152
+ // Some details are from the schematic documentation:
153
+ // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/README.md#documents
154
+ // The defaults are in the project source:
155
+ // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/src/xmlparser/OptionsBuilder.js
156
+
157
+ // ------------------------------------------------------------------------
158
+ // Parse the top index.xml file.
159
+
160
+ await this.parseDoxygenIndex()
161
+
162
+ assert(this.doxygenindex !== undefined)
163
+
164
+ if (!this.options.verbose) {
165
+ const version = this.doxygenindex.version
166
+ console.log(`Parsing .xml files generated by Doxygen ${version}...`)
167
+ }
168
+
169
+ // ------------------------------------------------------------------------
170
+ // Parse all compound *.xml files mentioned in the index.
171
+
172
+ if (Array.isArray(this.doxygenindex.compounds)) {
173
+ for (const indexCompound of this.doxygenindex.compounds) {
174
+ // Parallelise not possible, the order is relevant.
175
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
176
+ const parsedDoxygenElements: XmlElement[] = await this.parseFile({
177
+ fileName: `${indexCompound.refid}.xml`,
178
+ })
179
+ // console.log(util.inspect(parsedDoxygen))
180
+ // console.log(JSON.stringify(parsedDoxygen, null, ' '))
181
+ this.processCompoundDefs(indexCompound, parsedDoxygenElements)
182
+ }
183
+
184
+ this.processMemberdefs()
185
+ }
186
+
187
+ // ------------------------------------------------------------------------
188
+ // Parse the Doxyfile.xml with the options.
189
+
190
+ await this.parseDoxyfile()
191
+
192
+ assert(this.doxyfile)
193
+
194
+ console.log(this.parsedFilesCounter, 'xml files parsed')
195
+ if (this.options.verbose) {
196
+ if (this.xml.images.length > 0) {
197
+ console.log(this.xml.images.length, 'images identified')
198
+ }
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Parses the main Doxygen index XML file and initialises the index data
204
+ * model.
205
+ *
206
+ * @remarks
207
+ * This method reads and parses the `index.xml` file, ignoring the XML
208
+ * prologue and top-level text nodes. It extracts the `doxygenindex`
209
+ * element and constructs the corresponding data model. Any unrecognised
210
+ * elements are logged for diagnostic purposes.
211
+ */
212
+ async parseDoxygenIndex(): Promise<void> {
213
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
214
+ const parsedIndexElements: XmlElement[] = await this.parseFile({
215
+ fileName: 'index.xml',
216
+ })
217
+ // console.log(util.inspect(parsedIndex))
218
+ // console.log(util.inspect(parsedIndex[0]['?xml']))
219
+ // console.log(JSON.stringify(parsedIndex, null, ' '))
220
+
221
+ for (const element of parsedIndexElements) {
222
+ if (this.xml.hasInnerElement(element, '?xml')) {
223
+ // Ignore the top xml prologue.
224
+ } else if (this.xml.hasInnerText(element)) {
225
+ // Ignore top texts.
226
+ } else if (this.xml.hasInnerElement(element, 'doxygenindex')) {
227
+ this.doxygenindex = new DoxygenIndexDataModel(this.xml, element)
228
+ } else {
229
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
230
+ console.error(
231
+ 'index.xml element:',
232
+ Object.keys(element),
233
+ 'not implemented yet in',
234
+ this.constructor.name
235
+ )
236
+ }
237
+ }
238
+ }
239
+
240
+ /**
241
+ * Processes compound definitions from the parsed Doxygen XML elements.
242
+ *
243
+ * @param indexCompound - The compound index data model
244
+ * @param parsedDoxygenElements - The array of parsed XML elements for the
245
+ * compound
246
+ *
247
+ * @remarks
248
+ * This method iterates through the parsed XML elements, ignoring the XML
249
+ * prologue and top-level text nodes. For recognised `doxygen` elements, it
250
+ * constructs the compound definitions and appends them to the internal data
251
+ * model. Unrecognised elements are logged for further analysis.
252
+ */
253
+ processCompoundDefs(
254
+ indexCompound: IndexCompoundDataModel,
255
+ parsedDoxygenElements: XmlElement[]
256
+ ) {
257
+ for (const element of parsedDoxygenElements) {
258
+ if (this.xml.hasInnerElement(element, '?xml')) {
259
+ // Ignore the top xml prologue.
260
+ } else if (this.xml.hasInnerText(element)) {
261
+ // Ignore top texts.
262
+ } else if (this.xml.hasInnerElement(element, 'doxygen')) {
263
+ const doxygen = new DoxygenDataModel(this.xml, element)
264
+ if (Array.isArray(doxygen.compoundDefs)) {
265
+ this.compoundDefs.push(...doxygen.compoundDefs)
266
+ }
267
+ } else {
268
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
269
+ console.error(
270
+ `${indexCompound.refid}.xml element:`,
271
+ Object.keys(element),
272
+ 'not implemented yet in',
273
+ this.constructor.name
274
+ )
275
+ }
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Processes member definitions and updates member kinds where necessary.
281
+ *
282
+ * @remarks
283
+ * This method traverses all compound definitions and their associated
284
+ * sections. It collects member definitions by their identifiers and, for
285
+ * each member with an empty kind, assigns the kind from the corresponding
286
+ * member definition. This ensures that all members are correctly classified
287
+ * within the internal data model.
288
+ */
289
+ processMemberdefs() {
290
+ const memberDefsById = new Map<string, MemberDefDataModel>()
291
+ for (const compoundDef of this.compoundDefs) {
292
+ if (compoundDef.sectionDefs !== undefined) {
293
+ for (const sectionDef of compoundDef.sectionDefs) {
294
+ if (sectionDef.memberDefs !== undefined) {
295
+ for (const memberDef of sectionDef.memberDefs) {
296
+ memberDefsById.set(memberDef.id, memberDef)
297
+ }
298
+ }
299
+ if (sectionDef.members !== undefined) {
300
+ for (const member of sectionDef.members) {
301
+ if (member.kind.length === 0) {
302
+ const memberDef = memberDefsById.get(member.refid)
303
+ assert(memberDef !== undefined)
304
+ member.kind = memberDef.kind
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+ }
311
+ }
312
+
313
+ /**
314
+ * Parses the Doxyfile XML and initialises the configuration data model.
315
+ *
316
+ * @remarks
317
+ * This method reads and parses the `Doxyfile.xml` file, ignoring the XML
318
+ * prologue and top-level text nodes. It extracts the `doxyfile` element and
319
+ * constructs the corresponding configuration data model. Any unrecognised
320
+ * elements are logged for diagnostic purposes.
321
+ */
322
+ async parseDoxyfile(): Promise<void> {
323
+ const parsedDoxyfileElements = (await this.parseFile({
324
+ fileName: 'Doxyfile.xml',
325
+ })) as XmlElement[]
326
+ // console.log(util.inspect(parsedDoxyfile))
327
+ // console.log(JSON.stringify(parsedDoxyfile, null, ' '))
328
+
329
+ for (const element of parsedDoxyfileElements) {
330
+ if (this.xml.hasInnerElement(element, '?xml')) {
331
+ // Ignore the top xml prologue.
332
+ } else if (this.xml.hasInnerElement(element, '#text')) {
333
+ // Ignore top texts.
334
+ } else if (this.xml.hasInnerElement(element, 'doxyfile')) {
335
+ this.doxyfile = new DoxygenFileDataModel(this.xml, element)
336
+ } else {
337
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
338
+ console.error(
339
+ 'Doxyfile.xml element:',
340
+ Object.keys(element),
341
+ 'not implemented yet in',
342
+ this.constructor.name
343
+ )
344
+ }
345
+ }
346
+ }
347
+
348
+ // --------------------------------------------------------------------------
349
+ // Support methods.
350
+
351
+ /**
352
+ * Reads and parses the specified XML file, returning the parsed content.
353
+ *
354
+ * @param fileName - The name of the XML file to be parsed
355
+ * @returns A promise that resolves to the parsed XML content
356
+ *
357
+ * @remarks
358
+ * This method constructs the full file path using the configured input
359
+ * folder, reads the XML file as a UTF-8 string, and parses it using the
360
+ * configured XML parser. The method increments the internal counter for
361
+ * parsed files and, if verbose mode is enabled, logs the file being parsed.
362
+ */
363
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
364
+ async parseFile({ fileName }: { fileName: string }): Promise<any> {
365
+ const folderPath = this.options.doxygenXmlInputFolderPath
366
+ const filePath: string = path.join(folderPath, fileName)
367
+ const xmlString: string = await fs.readFile(filePath, { encoding: 'utf8' })
368
+
369
+ if (this.options.verbose) {
370
+ console.log(`Parsing '${fileName}'...`)
371
+ }
372
+ this.parsedFilesCounter += 1
373
+
374
+ return this.xml.xmlParser.parse(xmlString)
375
+ }
376
+ }
377
+
378
+ // ----------------------------------------------------------------------------