@xpack/doxygen2docusaurus 1.1.0 → 2.1.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 (329) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -3
  3. package/bin/doxygen2docusaurus.js +1 -1
  4. package/dist/cli/main.d.ts +0 -8
  5. package/dist/cli/main.d.ts.map +1 -1
  6. package/dist/cli/main.js +1 -29
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/docusaurus/cli-options.d.ts +4 -65
  9. package/dist/docusaurus/cli-options.d.ts.map +1 -1
  10. package/dist/docusaurus/cli-options.js +16 -91
  11. package/dist/docusaurus/cli-options.js.map +1 -1
  12. package/dist/docusaurus/generator.d.ts +7 -4
  13. package/dist/docusaurus/generator.d.ts.map +1 -1
  14. package/dist/docusaurus/generator.js +50 -140
  15. package/dist/docusaurus/generator.js.map +1 -1
  16. package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
  17. package/dist/docusaurus/renderers/descriptiontype.js +11 -138
  18. package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
  19. package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
  20. package/dist/docusaurus/renderers/docinternalstype.js +0 -24
  21. package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
  22. package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
  23. package/dist/docusaurus/renderers/doclisttype.js +0 -22
  24. package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
  25. package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
  26. package/dist/docusaurus/renderers/doctabletype.js +1 -25
  27. package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
  28. package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
  29. package/dist/docusaurus/renderers/doctitletype.js +0 -20
  30. package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
  31. package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
  32. package/dist/docusaurus/renderers/docvariablelisttype.js +1 -25
  33. package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
  34. package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
  35. package/dist/docusaurus/renderers/docxrefsecttype.js +0 -16
  36. package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
  37. package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
  38. package/dist/docusaurus/renderers/element-renderer-base.js +0 -12
  39. package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
  40. package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
  41. package/dist/docusaurus/renderers/inctype.js +0 -18
  42. package/dist/docusaurus/renderers/inctype.js.map +1 -1
  43. package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
  44. package/dist/docusaurus/renderers/linkedtexttype.js +0 -23
  45. package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
  46. package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
  47. package/dist/docusaurus/renderers/listingtype.js +1 -24
  48. package/dist/docusaurus/renderers/listingtype.js.map +1 -1
  49. package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
  50. package/dist/docusaurus/renderers/paramtype.js +2 -29
  51. package/dist/docusaurus/renderers/paramtype.js.map +1 -1
  52. package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
  53. package/dist/docusaurus/renderers/referencetype.js +0 -17
  54. package/dist/docusaurus/renderers/referencetype.js.map +1 -1
  55. package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
  56. package/dist/docusaurus/renderers/reftexttype.js +0 -16
  57. package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
  58. package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
  59. package/dist/docusaurus/renderers/reftype.js +0 -16
  60. package/dist/docusaurus/renderers/reftype.js.map +1 -1
  61. package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
  62. package/dist/docusaurus/renderers/renderers.js +4 -33
  63. package/dist/docusaurus/renderers/renderers.js.map +1 -1
  64. package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
  65. package/dist/docusaurus/renderers/substringtype.js +0 -17
  66. package/dist/docusaurus/renderers/substringtype.js.map +1 -1
  67. package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
  68. package/dist/docusaurus/renderers/tableofcontentstype.js +0 -17
  69. package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
  70. package/dist/docusaurus/types.d.ts +4 -8
  71. package/dist/docusaurus/types.d.ts.map +1 -1
  72. package/dist/docusaurus/types.js +0 -11
  73. package/dist/docusaurus/types.js.map +1 -1
  74. package/dist/docusaurus/utils.d.ts.map +1 -1
  75. package/dist/docusaurus/utils.js +0 -82
  76. package/dist/docusaurus/utils.js.map +1 -1
  77. package/dist/docusaurus/view-model/classes-vm.d.ts +2 -2
  78. package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
  79. package/dist/docusaurus/view-model/classes-vm.js +12 -87
  80. package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
  81. package/dist/docusaurus/view-model/collection-base.d.ts +2 -2
  82. package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
  83. package/dist/docusaurus/view-model/collection-base.js +11 -23
  84. package/dist/docusaurus/view-model/collection-base.js.map +1 -1
  85. package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -32
  86. package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
  87. package/dist/docusaurus/view-model/compound-base-vm.js +47 -129
  88. package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
  89. package/dist/docusaurus/view-model/concepts-vm.d.ts +26 -0
  90. package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
  91. package/dist/docusaurus/view-model/concepts-vm.js +329 -0
  92. package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
  93. package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
  94. package/dist/docusaurus/view-model/description-anchors.js +0 -13
  95. package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
  96. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +2 -2
  97. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
  98. package/dist/docusaurus/view-model/files-and-folders-vm.js +64 -110
  99. package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
  100. package/dist/docusaurus/view-model/groups-vm.d.ts +2 -2
  101. package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
  102. package/dist/docusaurus/view-model/groups-vm.js +7 -80
  103. package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
  104. package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
  105. package/dist/docusaurus/view-model/members-vm.js +17 -154
  106. package/dist/docusaurus/view-model/members-vm.js.map +1 -1
  107. package/dist/docusaurus/view-model/namespaces-vm.d.ts +6 -2
  108. package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
  109. package/dist/docusaurus/view-model/namespaces-vm.js +82 -89
  110. package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
  111. package/dist/docusaurus/view-model/options.d.ts.map +1 -1
  112. package/dist/docusaurus/view-model/options.js +0 -14
  113. package/dist/docusaurus/view-model/options.js.map +1 -1
  114. package/dist/docusaurus/view-model/pages-vm.d.ts +2 -2
  115. package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
  116. package/dist/docusaurus/view-model/pages-vm.js +3 -50
  117. package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
  118. package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -22
  119. package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
  120. package/dist/docusaurus/view-model/tree-entries-vm.js +54 -54
  121. package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
  122. package/dist/docusaurus/view-model/view-model.d.ts +0 -6
  123. package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
  124. package/dist/docusaurus/view-model/view-model.js +20 -63
  125. package/dist/docusaurus/view-model/view-model.js.map +1 -1
  126. package/dist/docusaurus/workspace.d.ts +1 -20
  127. package/dist/docusaurus/workspace.d.ts.map +1 -1
  128. package/dist/docusaurus/workspace.js +9 -116
  129. package/dist/docusaurus/workspace.js.map +1 -1
  130. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +5 -7
  131. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
  132. package/dist/doxygen/data-model/compounds/compounddef-dm.js +23 -187
  133. package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
  134. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -9
  135. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
  136. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -47
  137. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
  138. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +0 -39
  139. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
  140. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +36 -1308
  141. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
  142. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
  143. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -64
  144. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
  145. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
  146. package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -35
  147. package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
  148. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -6
  149. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
  150. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -44
  151. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
  152. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -9
  153. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
  154. package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -48
  155. package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
  156. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -15
  157. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
  158. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -57
  159. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
  160. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -6
  161. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
  162. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -38
  163. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
  164. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -6
  165. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
  166. package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -52
  167. package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
  168. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -10
  169. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
  170. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -64
  171. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
  172. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -6
  173. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
  174. package/dist/doxygen/data-model/compounds/memberreftype-dm.js +1 -45
  175. package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
  176. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -6
  177. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
  178. package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -43
  179. package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
  180. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -6
  181. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
  182. package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -51
  183. package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
  184. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -9
  185. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
  186. package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -47
  187. package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
  188. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
  189. package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -38
  190. package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
  191. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -21
  192. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
  193. package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -82
  194. package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
  195. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -6
  196. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
  197. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -42
  198. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
  199. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -9
  200. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
  201. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -53
  202. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
  203. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -12
  204. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
  205. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -105
  206. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
  207. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -6
  208. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
  209. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -38
  210. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
  211. package/dist/doxygen/data-model/data-model.d.ts +0 -65
  212. package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
  213. package/dist/doxygen/data-model/data-model.js +4 -115
  214. package/dist/doxygen/data-model/data-model.js.map +1 -1
  215. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -6
  216. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
  217. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -47
  218. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
  219. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -6
  220. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
  221. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -40
  222. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
  223. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -236
  224. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
  225. package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -289
  226. package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
  227. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -6
  228. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
  229. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -45
  230. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
  231. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -6
  232. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
  233. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -41
  234. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
  235. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -6
  236. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
  237. package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -43
  238. package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
  239. package/dist/doxygen/data-model/types.d.ts +1 -10
  240. package/dist/doxygen/data-model/types.d.ts.map +1 -1
  241. package/dist/doxygen/data-model/types.js +0 -15
  242. package/dist/doxygen/data-model/types.js.map +1 -1
  243. package/dist/index.d.ts +4 -16
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +4 -42
  246. package/dist/index.js.map +1 -1
  247. package/package.json +53 -56
  248. package/src/cli/main.ts +122 -0
  249. package/src/docusaurus/cli-options.ts +560 -0
  250. package/src/docusaurus/generator.ts +788 -0
  251. package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
  252. package/src/docusaurus/renderers/docinternalstype.ts +354 -0
  253. package/src/docusaurus/renderers/doclisttype.ts +134 -0
  254. package/src/docusaurus/renderers/doctabletype.ts +220 -0
  255. package/src/docusaurus/renderers/doctitletype.ts +77 -0
  256. package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
  257. package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
  258. package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
  259. package/src/docusaurus/renderers/inctype.ts +75 -0
  260. package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
  261. package/src/docusaurus/renderers/listingtype.ts +235 -0
  262. package/src/docusaurus/renderers/paramtype.ts +116 -0
  263. package/src/docusaurus/renderers/referencetype.ts +83 -0
  264. package/src/docusaurus/renderers/reftexttype.ts +81 -0
  265. package/src/docusaurus/renderers/reftype.ts +77 -0
  266. package/src/docusaurus/renderers/renderers.ts +756 -0
  267. package/src/docusaurus/renderers/substringtype.ts +53 -0
  268. package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
  269. package/src/docusaurus/types.ts +187 -0
  270. package/src/docusaurus/utils.ts +409 -0
  271. package/src/docusaurus/view-model/README.md +12 -0
  272. package/src/docusaurus/view-model/classes-vm.ts +1088 -0
  273. package/src/docusaurus/view-model/collection-base.ts +352 -0
  274. package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
  275. package/src/docusaurus/view-model/concepts-vm.ts +719 -0
  276. package/src/docusaurus/view-model/description-anchors.ts +107 -0
  277. package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
  278. package/src/docusaurus/view-model/groups-vm.ts +548 -0
  279. package/src/docusaurus/view-model/members-vm.ts +1943 -0
  280. package/src/docusaurus/view-model/namespaces-vm.ts +1018 -0
  281. package/src/docusaurus/view-model/options.ts +95 -0
  282. package/src/docusaurus/view-model/pages-vm.ts +342 -0
  283. package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
  284. package/src/docusaurus/view-model/view-model.ts +513 -0
  285. package/src/docusaurus/workspace.ts +588 -0
  286. package/src/doxygen/data-model/README.md +13 -0
  287. package/src/doxygen/data-model/compounds/compounddef-dm.ts +1156 -0
  288. package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
  289. package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10107 -0
  290. package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
  291. package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
  292. package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
  293. package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
  294. package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
  295. package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
  296. package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
  297. package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +874 -0
  298. package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
  299. package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
  300. package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
  301. package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
  302. package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
  303. package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
  304. package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
  305. package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
  306. package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +563 -0
  307. package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
  308. package/src/doxygen/data-model/data-model.ts +377 -0
  309. package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
  310. package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
  311. package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
  312. package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
  313. package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
  314. package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
  315. package/src/doxygen/data-model/types.ts +175 -0
  316. package/src/doxygen/data-model/xsds/README.md +6 -0
  317. package/src/doxygen/data-model/xsds/compound.xsd +1699 -0
  318. package/src/doxygen/data-model/xsds/doxyfile.xsd +355 -0
  319. package/src/doxygen/data-model/xsds/index.xsd +72 -0
  320. package/src/doxygen/data-model/xsds/xml.xsd +23 -0
  321. package/src/index.ts +261 -0
  322. package/src/tsconfig.json +10 -0
  323. package/dist/doxygen2docusaurus.d.ts +0 -1147
  324. package/dist/tsconfig.tsbuildinfo +0 -1
  325. package/dist/tsdoc-metadata.json +0 -11
  326. /package/{template → templates}/css/custom.css +0 -0
  327. /package/{template → templates}/img/README.md +0 -0
  328. /package/{template → templates}/img/document-svgrepo-com.svg +0 -0
  329. /package/{template → templates}/img/folder-svgrepo-com.svg +0 -0
@@ -0,0 +1,1156 @@
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
6
+ * for any 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
9
+ * be obtained from https://opensource.org/licenses/MIT.
10
+ */
11
+
12
+ // ----------------------------------------------------------------------------
13
+
14
+ import * as util from 'node:util'
15
+ import assert from 'node:assert'
16
+
17
+ import { IncludedByDataModel, IncludesDataModel } from './inctype-dm.js'
18
+ import {
19
+ BaseCompoundRefDataModel,
20
+ DerivedCompoundRefDataModel,
21
+ } from './compoundreftype-dm.js'
22
+ import { TemplateParamListDataModel } from './templateparamlisttype-dm.js'
23
+ import { SectionDefDataModel } from './sectiondeftype-dm.js'
24
+ import { ListOfAllMembersDataModel } from './listofallmemberstype-dm.js'
25
+ import {
26
+ AbstractStringType,
27
+ BriefDescriptionDataModel,
28
+ DetailedDescriptionDataModel,
29
+ ParaDataModel,
30
+ ProgramListingDataModel,
31
+ Sect5DataModel,
32
+ } from './descriptiontype-dm.js'
33
+ import {
34
+ InnerClassDataModel,
35
+ InnerConceptDataModel,
36
+ InnerDirDataModel,
37
+ InnerFileDataModel,
38
+ InnerGroupDataModel,
39
+ InnerNamespaceDataModel,
40
+ InnerPageDataModel,
41
+ } from './reftype-dm.js'
42
+ import { LocationDataModel } from './locationtype-dm.js'
43
+ import { AbstractDataModelBase } from '../types.js'
44
+ import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
45
+ import { TableOfContentsDataModel } from './tableofcontentstype-dm.js'
46
+ import {
47
+ InitializerDataModel,
48
+ RequiresClauseDataModel,
49
+ } from './linkedtexttype-dm.js'
50
+
51
+ // ----------------------------------------------------------------------------
52
+
53
+ /**
54
+ * Abstract template class for creating new data model objects.
55
+ *
56
+ * @remarks
57
+ * This template provides a standardised structure for implementing new
58
+ * data model types with common properties and processing patterns. It
59
+ * demonstrates the typical XML parsing approach used throughout the
60
+ * Doxygen data model implementation, including element and attribute
61
+ * processing workflows.
62
+ *
63
+ * @public
64
+ */
65
+ // Template, to be used for creating new objects.
66
+ export abstract class AbstractXyzType extends AbstractDataModelBase {
67
+ // If the object has a text.
68
+ text = ''
69
+
70
+ // Mandatory elements.
71
+ compoundName = ''
72
+ colsCount = NaN
73
+ elm12 = false
74
+ // elm13: BriefDescriptionDataModel
75
+
76
+ // Optional elements.
77
+ elm20?: string | undefined
78
+ elm21?: boolean | undefined
79
+ elm22?: number | undefined
80
+ briefDescription: BriefDescriptionDataModel | undefined
81
+ includes?: IncludesDataModel[] | undefined
82
+
83
+ // Mandatory attributes.
84
+ id = ''
85
+ rowsCount = NaN
86
+ thead = false
87
+
88
+ // Optional attributes.
89
+ language?: string | undefined
90
+ final?: boolean | undefined
91
+ lineno?: number | undefined
92
+ attr23?: string[] | undefined
93
+
94
+ // ------------------------------------------
95
+
96
+ // children: Array<string | ParaDataModel | Sect5DataModel> = []
97
+
98
+ /**
99
+ * Constructs a new template data model instance.
100
+ *
101
+ * @remarks
102
+ * Demonstrates the standard XML parsing workflow used throughout the
103
+ * data model implementation. This includes processing inner elements,
104
+ * handling mixed content with ordered children, and extracting attributes
105
+ * with appropriate type conversion and validation.
106
+ *
107
+ * @param xml - The XML parser instance for processing elements
108
+ * @param element - The XML element object to parse
109
+ * @param elementName - The name of the XML element being processed
110
+ */
111
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
112
+ super(elementName)
113
+
114
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
115
+
116
+ // ------------------------------------------------------------------------
117
+ // Process elements.
118
+
119
+ // If the object has only a text.
120
+ assert(xml.isInnerElementText(element, elementName))
121
+ this.text = xml.getInnerElementText(element, elementName)
122
+
123
+ // ------------------------------------------
124
+
125
+ // If the object has sub-elements.
126
+ const innerElements = xml.getInnerElements(element, elementName)
127
+ assert(innerElements.length > 0)
128
+
129
+ for (const innerElement of innerElements) {
130
+ if (xml.hasInnerText(innerElement)) {
131
+ // Ignore texts.
132
+ } else if (xml.isInnerElementText(innerElement, 'compoundname')) {
133
+ this.compoundName = xml.getInnerElementText(
134
+ innerElement,
135
+ 'compoundname'
136
+ )
137
+ } else if (xml.hasInnerElement(innerElement, 'briefdescription')) {
138
+ this.briefDescription = new BriefDescriptionDataModel(xml, innerElement)
139
+ } else if (xml.hasInnerElement(innerElement, 'includes')) {
140
+ // console.log(util.inspect(item))
141
+ this.includes ??= []
142
+ this.includes.push(new IncludesDataModel(xml, innerElement))
143
+ } else {
144
+ console.error(
145
+ `${elementName} element:`,
146
+ Object.keys(innerElement),
147
+ 'not implemented yet in',
148
+ this.constructor.name
149
+ )
150
+ }
151
+ }
152
+
153
+ // ------------------------------------------
154
+
155
+ // If the object has to keep trak of the order of mixed type children.
156
+ // const innerElements = xml.getInnerElements(element, elementName)
157
+ // assert(innerElements.length > 0)
158
+
159
+ this.children = []
160
+
161
+ for (const innerElement of innerElements) {
162
+ if (xml.hasInnerText(innerElement)) {
163
+ this.children.push(xml.getInnerText(innerElement))
164
+ } else if (xml.hasInnerElement(innerElement, 'para')) {
165
+ this.children.push(new ParaDataModel(xml, innerElement))
166
+ } else if (xml.hasInnerElement(innerElement, 'sect5')) {
167
+ this.children.push(new Sect5DataModel(xml, innerElement))
168
+ } else {
169
+ console.error(util.inspect(innerElement))
170
+ console.error(
171
+ `${elementName} element:`,
172
+ Object.keys(innerElement),
173
+ 'not implemented yet in',
174
+ this.constructor.name
175
+ )
176
+ }
177
+ }
178
+
179
+ // ------------------------------------------------------------------------
180
+ // Process attributes.
181
+
182
+ // If the object has no attributes.
183
+ assert(!xml.hasAttributes(element))
184
+
185
+ // ------------------------------------------
186
+
187
+ assert(xml.hasAttributes(element))
188
+
189
+ const attributesNames = xml.getAttributesNames(element)
190
+ // console.log(attributesNames)
191
+ for (const attributeName of attributesNames) {
192
+ // console.log(attributeName)
193
+ if (attributeName === '@_id') {
194
+ this.id = xml.getAttributeStringValue(element, '@_id')
195
+ } else if (attributeName === '@_rows') {
196
+ assert(isNaN(this.rowsCount))
197
+ this.rowsCount = xml.getAttributeNumberValue(element, '@_rows')
198
+ } else if (attributeName === '@_thead') {
199
+ this.thead = xml.getAttributeBooleanValue(element, '@_thead')
200
+ } else if (attributeName === '@_language') {
201
+ this.language = xml.getAttributeStringValue(element, '@_language')
202
+ } else if (attributeName === '@_final') {
203
+ this.final = xml.getAttributeBooleanValue(element, '@_final')
204
+ } else if (attributeName === '@_lineno') {
205
+ this.lineno = xml.getAttributeNumberValue(element, '@_lineno')
206
+ } else {
207
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
208
+ console.error(
209
+ `${elementName} attribute:`,
210
+ attributeName,
211
+ 'not implemented yet in',
212
+ this.constructor.name
213
+ )
214
+ }
215
+ }
216
+
217
+ assert(this.id.length > 0)
218
+
219
+ // ------------------------------------------------------------------------
220
+
221
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Concrete implementation of the template data model.
227
+ *
228
+ * @remarks
229
+ * Provides a specific implementation of the abstract template class,
230
+ * demonstrating how to create concrete data model objects for particular
231
+ * XML element types. This pattern is used throughout the data model
232
+ * for creating type-specific implementations.
233
+ *
234
+ * @public
235
+ */
236
+ export class XyzDataModel extends AbstractXyzType {
237
+ /**
238
+ * Constructs a new XyzDataModel instance.
239
+ *
240
+ * @remarks
241
+ * Creates a data model object for 'xyz' XML elements by delegating
242
+ * to the parent constructor with the appropriate element name.
243
+ *
244
+ * @param xml - The XML parser instance for processing elements
245
+ * @param element - The XML element object to parse
246
+ */
247
+ constructor(xml: DoxygenXmlParser, element: object) {
248
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
249
+ super(xml, element, 'xyz')
250
+ }
251
+ }
252
+
253
+ // ----------------------------------------------------------------------------
254
+
255
+ // <xsd:complexType name="compounddefType">
256
+ // <xsd:sequence>
257
+ // <xsd:element name="compoundname" type="xsd:string"/>
258
+ // <xsd:element name="title" type="xsd:string" minOccurs="0" />
259
+
260
+ // <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
261
+ // <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
262
+
263
+ // <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
264
+ // <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
265
+
266
+ // <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
267
+ // <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
268
+
269
+ // <xsd:element name="innermodule" type="refType" minOccurs="0" maxOccurs="unbounded" />
270
+ // <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
271
+ // <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
272
+ // <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
273
+ // <xsd:element name="innerconcept" type="refType" minOccurs="0" maxOccurs="unbounded" />
274
+ // <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
275
+ // <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
276
+ // <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
277
+
278
+ // <xsd:element name="qualifier" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
279
+
280
+ // <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
281
+ // <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
282
+ // <xsd:element name="tableofcontents" type="tableofcontentsType" minOccurs="0" maxOccurs="1" />
283
+ // <xsd:element name="requiresclause" type="linkedTextType" minOccurs="0" />
284
+ // <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
285
+ // <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
286
+ // <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
287
+ // <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="1"/>
288
+ // <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
289
+ // <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
290
+ // <xsd:element name="programlisting" type="listingType" minOccurs="0" />
291
+ // <xsd:element name="location" type="locationType" minOccurs="0" />
292
+ // <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
293
+ // </xsd:sequence>
294
+ // <xsd:attribute name="id" type="xsd:string" />
295
+ // <xsd:attribute name="kind" type="DoxCompoundKind" />
296
+ // <xsd:attribute name="language" type="DoxLanguage" use="optional"/>
297
+ // <xsd:attribute name="prot" type="DoxProtectionKind" />
298
+ // <xsd:attribute name="final" type="DoxBool" use="optional"/>
299
+ // <xsd:attribute name="inline" type="DoxBool" use="optional"/>
300
+ // <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
301
+ // <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
302
+ // </xsd:complexType>
303
+
304
+ // <xsd:simpleType name="DoxCompoundKind">
305
+ // <xsd:restriction base="xsd:string">
306
+ // <xsd:enumeration value="class" />
307
+ // <xsd:enumeration value="struct" />
308
+ // <xsd:enumeration value="union" />
309
+ // <xsd:enumeration value="interface" />
310
+ // <xsd:enumeration value="protocol" />
311
+ // <xsd:enumeration value="category" />
312
+ // <xsd:enumeration value="exception" />
313
+ // <xsd:enumeration value="service" />
314
+ // <xsd:enumeration value="singleton" />
315
+ // <xsd:enumeration value="module" />
316
+ // <xsd:enumeration value="type" />
317
+ // <xsd:enumeration value="file" />
318
+ // <xsd:enumeration value="namespace" />
319
+ // <xsd:enumeration value="group" />
320
+ // <xsd:enumeration value="page" />
321
+ // <xsd:enumeration value="example" />
322
+ // <xsd:enumeration value="dir" />
323
+ // <xsd:enumeration value="concept" />
324
+ // </xsd:restriction>
325
+ // </xsd:simpleType>
326
+
327
+ /**
328
+ * Abstract base class for Doxygen compound definition data models.
329
+ *
330
+ * @remarks
331
+ * Represents the core structure of compound definitions in Doxygen XML output,
332
+ * including classes, structures, files, namespaces, and other compound types.
333
+ * This class handles the complete XML schema for compound definitions with
334
+ * comprehensive element and attribute processing to capture all aspects of
335
+ * the documented code structures.
336
+ *
337
+ * @public
338
+ */
339
+ export abstract class AbstractCompoundDefType extends AbstractDataModelBase {
340
+ // Mandatory elements.
341
+
342
+ /**
343
+ * The name of the compound element.
344
+ *
345
+ * @remarks
346
+ * Contains the fully qualified name of the compound (class, namespace,
347
+ * file, etc.) as extracted from the 'compoundname' XML element. This
348
+ * represents the primary identifier for the compound in the documentation
349
+ * hierarchy and is mandatory for all compound types except namespaces.
350
+ */
351
+ compoundName = ''
352
+
353
+ // Optional elements.
354
+
355
+ /**
356
+ * Optional title for the compound.
357
+ *
358
+ * @remarks
359
+ * Provides a human-readable title for the compound that may differ from
360
+ * the compound name. This is typically used for pages and groups where
361
+ * a descriptive title is more appropriate than the technical identifier.
362
+ */
363
+ title?: string | undefined
364
+
365
+ /**
366
+ * Brief description of the compound.
367
+ *
368
+ * @remarks
369
+ * Contains a concise summary description of the compound extracted from
370
+ * the 'briefdescription' XML element. This provides a short overview
371
+ * suitable for listings and summary views of the documented entity.
372
+ */
373
+ briefDescription?: BriefDescriptionDataModel | undefined
374
+
375
+ /**
376
+ * Detailed description of the compound.
377
+ *
378
+ * @remarks
379
+ * Contains comprehensive documentation for the compound extracted from
380
+ * the 'detaileddescription' XML element. This includes full description
381
+ * text with formatting, examples, and other detailed documentation
382
+ * content.
383
+ */
384
+ detailedDescription?: DetailedDescriptionDataModel | undefined
385
+
386
+ /**
387
+ * Base compound references for inheritance relationships.
388
+ *
389
+ * @remarks
390
+ * Contains references to base classes or parent compounds from which
391
+ * this compound inherits. This property captures the inheritance
392
+ * hierarchy information extracted from 'basecompoundref' XML elements
393
+ * for object-oriented documentation structures.
394
+ */
395
+ baseCompoundRefs?: BaseCompoundRefDataModel[] | undefined
396
+
397
+ /**
398
+ * Derived compound references for inheritance relationships.
399
+ *
400
+ * @remarks
401
+ * Contains references to derived classes or child compounds that inherit
402
+ * from this compound. This property captures the inheritance hierarchy
403
+ * information extracted from 'derivedcompoundref' XML elements for
404
+ * complete inheritance documentation.
405
+ */
406
+ derivedCompoundRefs?: DerivedCompoundRefDataModel[] | undefined
407
+
408
+ /**
409
+ * Include file references for this compound.
410
+ *
411
+ * @remarks
412
+ * Contains information about header files or modules that this compound
413
+ * includes or depends upon. This property captures dependency
414
+ * relationships extracted from 'includes' XML elements, providing
415
+ * visibility into the file inclusion structure.
416
+ */
417
+ includes?: IncludesDataModel[] | undefined
418
+
419
+ /**
420
+ * Reverse include file references for this compound.
421
+ *
422
+ * @remarks
423
+ * Contains information about other files or compounds that include this
424
+ * compound. This property captures reverse dependency relationships
425
+ * extracted from 'includedby' XML elements, showing which entities
426
+ * depend on this compound.
427
+ */
428
+ includedBy?: IncludedByDataModel[] | undefined
429
+
430
+ /**
431
+ * Template parameter list for templated compounds.
432
+ *
433
+ * @remarks
434
+ * Contains the template parameter definitions for templated classes,
435
+ * functions, or other templated entities. This property captures
436
+ * template information extracted from 'templateparamlist' XML elements,
437
+ * providing details about generic programming constructs.
438
+ */
439
+ templateParamList?: TemplateParamListDataModel | undefined
440
+
441
+ /**
442
+ * Section definitions within the compound.
443
+ *
444
+ * @remarks
445
+ * Contains organised sections of members and documentation within the
446
+ * compound. This property captures structured content extracted from
447
+ * 'sectiondef' XML elements, providing hierarchical organisation of
448
+ * compound members by type and visibility.
449
+ */
450
+ sectionDefs?: SectionDefDataModel[] | undefined
451
+
452
+ /**
453
+ * Table of contents for the compound documentation.
454
+ *
455
+ * @remarks
456
+ * Contains the navigation structure for complex compound documentation.
457
+ * This property captures hierarchical content organisation extracted
458
+ * from 'tableofcontents' XML elements, providing structured navigation
459
+ * for large documentation entities.
460
+ */
461
+ tableOfContents?: TableOfContentsDataModel | undefined
462
+ // innerModules
463
+
464
+ /**
465
+ * Requires clause for constrained templates or concepts.
466
+ *
467
+ * @remarks
468
+ * Contains the `requires` clause expression for constrained templates
469
+ * or concept definitions. This property captures constraint information
470
+ * extracted from 'requiresclause' XML elements, representing C++
471
+ * template constraints and concept requirements in the documentation.
472
+ */
473
+ requiresClause?: RequiresClauseDataModel | undefined
474
+
475
+ /**
476
+ * Initializer expression for the compound.
477
+ *
478
+ * @remarks
479
+ * Contains the initializer expression associated with this compound,
480
+ * typically used for concept definitions that include a defining
481
+ * expression. This property captures initializer content extracted
482
+ * from 'initializer' XML elements in the Doxygen compound output.
483
+ */
484
+ initializer?: InitializerDataModel | undefined
485
+
486
+ /**
487
+ * Inner folder references contained within this compound.
488
+ *
489
+ * @remarks
490
+ * Contains references to subdirectories or folders that are logically
491
+ * contained within this compound. This property captures hierarchical
492
+ * folder structure extracted from 'innerdir' XML elements, typically
493
+ * used for directory-based documentation organisation.
494
+ */
495
+ innerDirs?: InnerDirDataModel[] | undefined
496
+
497
+ /**
498
+ * Inner file references contained within this compound.
499
+ *
500
+ * @remarks
501
+ * Contains references to files that are logically contained within this
502
+ * compound. This property captures file relationships extracted from
503
+ * 'innerfile' XML elements, providing visibility into compound-to-file
504
+ * associations in the documentation structure.
505
+ */
506
+ innerFiles?: InnerFileDataModel[] | undefined
507
+
508
+ /**
509
+ * Inner class references contained within this compound.
510
+ *
511
+ * @remarks
512
+ * Contains references to classes, structures, or other class-like
513
+ * entities that are defined within this compound. This property captures
514
+ * nested type relationships extracted from 'innerclass' XML elements,
515
+ * supporting hierarchical type documentation.
516
+ */
517
+ innerClasses?: InnerClassDataModel[] | undefined
518
+
519
+ /**
520
+ * Inner concept references contained within this compound.
521
+ *
522
+ * @remarks
523
+ * Contains references to concepts that are defined within this compound.
524
+ * This property captures nested concept relationships extracted from
525
+ * 'innerconcept' XML elements, supporting hierarchical concept documentation.
526
+ */
527
+ innerConcepts?: InnerConceptDataModel[] | undefined
528
+
529
+ /**
530
+ * Inner namespace references contained within this compound.
531
+ *
532
+ * @remarks
533
+ * Contains references to namespaces that are nested within this compound.
534
+ * This property captures namespace hierarchy relationships extracted from
535
+ * 'innernamespace' XML elements, supporting multi-level namespace
536
+ * documentation organisation.
537
+ */
538
+ innerNamespaces?: InnerNamespaceDataModel[] | undefined
539
+
540
+ /**
541
+ * Inner page references contained within this compound.
542
+ *
543
+ * @remarks
544
+ * Contains references to documentation pages that are logically
545
+ * associated with this compound. This property captures page
546
+ * relationships extracted from 'innerpage' XML elements, supporting
547
+ * structured documentation navigation.
548
+ */
549
+ innerPages?: InnerPageDataModel[] | undefined
550
+
551
+ /**
552
+ * Inner group references contained within this compound.
553
+ *
554
+ * @remarks
555
+ * Contains references to documentation groups that are associated with
556
+ * this compound. This property captures group relationships extracted
557
+ * from 'innergroup' XML elements, supporting thematic organisation of
558
+ * related documentation elements.
559
+ */
560
+ innerGroups?: InnerGroupDataModel[] | undefined
561
+
562
+ /**
563
+ * Program listing or source code for the compound.
564
+ *
565
+ * @remarks
566
+ * Contains the actual source code implementation or listing for the
567
+ * compound when available. This property captures code content extracted
568
+ * from 'programlisting' XML elements, providing syntax-highlighted
569
+ * source code display in the documentation.
570
+ */
571
+ programListing?: ProgramListingDataModel | undefined
572
+
573
+ /**
574
+ * Location information for the compound definition.
575
+ *
576
+ * @remarks
577
+ * Contains file path, line number, and other location details for where
578
+ * the compound is defined in the source code. This property captures
579
+ * location metadata extracted from 'location' XML elements, enabling
580
+ * source code navigation and reference linking.
581
+ */
582
+ location?: LocationDataModel | undefined
583
+
584
+ /**
585
+ * Complete list of all members contained in the compound.
586
+ *
587
+ * @remarks
588
+ * Contains a comprehensive list of all members (methods, properties,
589
+ * etc.) that belong to this compound, including inherited members.
590
+ * This property captures member information extracted from
591
+ * 'listofallmembers' XML elements for complete API documentation.
592
+ */
593
+ listOfAllMembers?: ListOfAllMembersDataModel | undefined
594
+
595
+ // Mandatory attributes.
596
+
597
+ /**
598
+ * Unique identifier for the compound.
599
+ *
600
+ * @remarks
601
+ * Contains the unique ID assigned to this compound by Doxygen for
602
+ * cross-referencing and linking purposes. This identifier is mandatory
603
+ * and serves as the primary key for compound identification throughout
604
+ * the documentation system.
605
+ */
606
+ id = ''
607
+
608
+ /**
609
+ * The kind or type of compound.
610
+ *
611
+ * @remarks
612
+ * Specifies the compound type using DoxCompoundKind enumeration values
613
+ * such as 'class', 'struct', 'file', 'namespace', 'page', etc. This
614
+ * mandatory attribute determines how the compound should be processed
615
+ * and displayed in the documentation output.
616
+ */
617
+ kind = '' // DoxCompoundKind
618
+
619
+ // Optional attributes.
620
+
621
+ /**
622
+ * Programming language of the compound.
623
+ *
624
+ * @remarks
625
+ * Specifies the programming language using DoxLanguage enumeration
626
+ * values when the compound is language-specific. This optional attribute
627
+ * enables language-aware processing and appropriate syntax highlighting
628
+ * in the generated documentation.
629
+ */
630
+ language?: string | undefined // DoxLanguage
631
+ // WARNING: This attribute is not marked as optional, but is not present.
632
+
633
+ /**
634
+ * Protection level of the compound.
635
+ *
636
+ * @remarks
637
+ * Specifies the access protection level (public, private, protected)
638
+ * for the compound using DoxProtectionKind enumeration values. Note
639
+ * that whilst this attribute is not marked as optional in the XML
640
+ * schema, it may not be present in all compound definitions.
641
+ */
642
+ prot?: string | undefined
643
+
644
+ /**
645
+ * Indicates whether the compound is marked as final.
646
+ *
647
+ * @remarks
648
+ * Specifies that the compound cannot be inherited from or extended,
649
+ * typically used in object-oriented programming languages that support
650
+ * final classes or sealed types. This boolean attribute reflects the
651
+ * final modifier in the source code.
652
+ */
653
+ final?: boolean | undefined
654
+
655
+ /**
656
+ * Indicates whether the compound is inline.
657
+ *
658
+ * @remarks
659
+ * Specifies that the compound is defined inline, typically used for
660
+ * functions, methods, or other constructs that are implemented directly
661
+ * in header files. This boolean attribute reflects inline declarations
662
+ * in the source code.
663
+ */
664
+ inline?: boolean | undefined
665
+
666
+ /**
667
+ * Indicates whether the compound is sealed.
668
+ *
669
+ * @remarks
670
+ * Specifies that the compound is sealed and cannot be inherited from,
671
+ * similar to final but using different language-specific terminology.
672
+ * This boolean attribute reflects sealed modifiers found in languages
673
+ * like C# or other object-oriented programming environments.
674
+ */
675
+ sealed?: boolean | undefined
676
+
677
+ /**
678
+ * Indicates whether the compound is abstract.
679
+ *
680
+ * @remarks
681
+ * Specifies that the compound is abstract and cannot be instantiated
682
+ * directly, typically requiring concrete implementations of abstract
683
+ * methods or properties. This boolean attribute reflects abstract
684
+ * modifiers in object-oriented programming languages.
685
+ */
686
+ abstract?: boolean | undefined
687
+
688
+ // Not in xsd.
689
+ // parentId: string = ''
690
+ // permalink: string = ''
691
+
692
+ /**
693
+ * Constructs a new compound definition data model instance.
694
+ *
695
+ * @remarks
696
+ * Parses the complete XML structure for compound definitions, processing
697
+ * all elements and attributes according to the Doxygen XML schema. This
698
+ * includes handling optional and mandatory elements, complex nested
699
+ * structures, and comprehensive attribute validation to ensure data
700
+ * integrity throughout the parsing process.
701
+ *
702
+ * @param xml - The XML parser instance for processing elements
703
+ * @param element - The XML element object to parse
704
+ * @param elementName - The name of the XML element being processed
705
+ */
706
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
707
+ super(elementName)
708
+
709
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
710
+
711
+ // ------------------------------------------------------------------------
712
+ // Process elements.
713
+
714
+ // console.log(util.inspect(element, { compact: false, depth: 999 })
715
+ const innerElements = xml.getInnerElements(element, elementName)
716
+ assert(innerElements.length > 0)
717
+
718
+ for (const innerElement of innerElements) {
719
+ if (xml.hasInnerText(innerElement)) {
720
+ // Ignore texts.
721
+ } else if (xml.isInnerElementText(innerElement, 'compoundname')) {
722
+ this.compoundName = xml.getInnerElementText(
723
+ innerElement,
724
+ 'compoundname'
725
+ )
726
+ } else if (xml.isInnerElementText(innerElement, 'title')) {
727
+ this.title = xml.getInnerElementText(innerElement, 'title')
728
+ } else if (xml.hasInnerElement(innerElement, 'briefdescription')) {
729
+ this.briefDescription = new BriefDescriptionDataModel(xml, innerElement)
730
+ } else if (xml.hasInnerElement(innerElement, 'detaileddescription')) {
731
+ this.detailedDescription = new DetailedDescriptionDataModel(
732
+ xml,
733
+ innerElement
734
+ )
735
+ } else if (xml.hasInnerElement(innerElement, 'basecompoundref')) {
736
+ this.baseCompoundRefs ??= []
737
+ this.baseCompoundRefs.push(
738
+ new BaseCompoundRefDataModel(xml, innerElement)
739
+ )
740
+ } else if (xml.hasInnerElement(innerElement, 'derivedcompoundref')) {
741
+ this.derivedCompoundRefs ??= []
742
+ this.derivedCompoundRefs.push(
743
+ new DerivedCompoundRefDataModel(xml, innerElement)
744
+ )
745
+ } else if (xml.hasInnerElement(innerElement, 'includes')) {
746
+ // console.log(util.inspect(item))
747
+ this.includes ??= []
748
+ this.includes.push(new IncludesDataModel(xml, innerElement))
749
+ } else if (xml.hasInnerElement(innerElement, 'includedby')) {
750
+ // console.log(util.inspect(item))
751
+ this.includedBy ??= []
752
+ this.includedBy.push(new IncludedByDataModel(xml, innerElement))
753
+ } else if (xml.hasInnerElement(innerElement, 'incdepgraph')) {
754
+ // TODO: Ignored, not used for now.
755
+ } else if (xml.hasInnerElement(innerElement, 'invincdepgraph')) {
756
+ // TODO: Ignored, not used for now.
757
+ } else if (xml.hasInnerElement(innerElement, 'innerdir')) {
758
+ this.innerDirs ??= []
759
+ this.innerDirs.push(new InnerDirDataModel(xml, innerElement))
760
+ } else if (xml.hasInnerElement(innerElement, 'innerfile')) {
761
+ this.innerFiles ??= []
762
+ this.innerFiles.push(new InnerFileDataModel(xml, innerElement))
763
+ } else if (xml.hasInnerElement(innerElement, 'innerclass')) {
764
+ this.innerClasses ??= []
765
+ this.innerClasses.push(new InnerClassDataModel(xml, innerElement))
766
+ } else if (xml.hasInnerElement(innerElement, 'innerconcept')) {
767
+ this.innerConcepts ??= []
768
+ this.innerConcepts.push(new InnerConceptDataModel(xml, innerElement))
769
+ } else if (xml.hasInnerElement(innerElement, 'innernamespace')) {
770
+ this.innerNamespaces ??= []
771
+ this.innerNamespaces.push(
772
+ new InnerNamespaceDataModel(xml, innerElement)
773
+ )
774
+ } else if (xml.hasInnerElement(innerElement, 'innerpage')) {
775
+ this.innerPages ??= []
776
+ this.innerPages.push(new InnerPageDataModel(xml, innerElement))
777
+ } else if (xml.hasInnerElement(innerElement, 'innergroup')) {
778
+ this.innerGroups ??= []
779
+ this.innerGroups.push(new InnerGroupDataModel(xml, innerElement))
780
+ } else if (xml.hasInnerElement(innerElement, 'templateparamlist')) {
781
+ this.templateParamList = new TemplateParamListDataModel(
782
+ xml,
783
+ innerElement
784
+ )
785
+ } else if (xml.hasInnerElement(innerElement, 'sectiondef')) {
786
+ this.sectionDefs ??= []
787
+ this.sectionDefs.push(new SectionDefDataModel(xml, innerElement))
788
+ } else if (xml.hasInnerElement(innerElement, 'tableofcontents')) {
789
+ this.tableOfContents = new TableOfContentsDataModel(xml, innerElement)
790
+ } else if (xml.hasInnerElement(innerElement, 'requiresclause')) {
791
+ this.requiresClause = new RequiresClauseDataModel(xml, innerElement)
792
+ } else if (xml.hasInnerElement(innerElement, 'initializer')) {
793
+ this.initializer = new InitializerDataModel(xml, innerElement)
794
+ } else if (xml.hasInnerElement(innerElement, 'inheritancegraph')) {
795
+ // TODO: Ignored, not used for now.
796
+ } else if (xml.hasInnerElement(innerElement, 'collaborationgraph')) {
797
+ // TODO: Ignored, not used for now.
798
+ } else if (xml.hasInnerElement(innerElement, 'programlisting')) {
799
+ assert(this.programListing === undefined)
800
+ this.programListing = new ProgramListingDataModel(xml, innerElement)
801
+ } else if (xml.hasInnerElement(innerElement, 'location')) {
802
+ this.location = new LocationDataModel(xml, innerElement)
803
+ } else if (xml.hasInnerElement(innerElement, 'listofallmembers')) {
804
+ this.listOfAllMembers = new ListOfAllMembersDataModel(xml, innerElement)
805
+ } else {
806
+ console.error(
807
+ `${elementName} element:`,
808
+ Object.keys(innerElement),
809
+ 'not implemented yet in',
810
+ this.constructor.name
811
+ )
812
+ }
813
+ }
814
+
815
+ // Moved down, depends on kind.
816
+ // assert(this.compoundName.length > 0)
817
+
818
+ // ------------------------------------------------------------------------
819
+ // Process attributes.
820
+
821
+ assert(xml.hasAttributes(element))
822
+
823
+ const attributesNames = xml.getAttributesNames(element)
824
+ // console.log(attributesNames)
825
+ for (const attributeName of attributesNames) {
826
+ // console.log(attributeName)
827
+ if (attributeName === '@_id') {
828
+ this.id = xml.getAttributeStringValue(element, '@_id')
829
+ } else if (attributeName === '@_kind') {
830
+ this.kind = xml.getAttributeStringValue(element, '@_kind')
831
+ } else if (attributeName === '@_language') {
832
+ this.language = xml.getAttributeStringValue(element, '@_language')
833
+ } else if (attributeName === '@_prot') {
834
+ this.prot = xml.getAttributeStringValue(element, '@_prot')
835
+ } else if (attributeName === '@_final') {
836
+ this.final = xml.getAttributeBooleanValue(element, '@_final')
837
+ } else if (attributeName === '@_inline') {
838
+ this.inline = xml.getAttributeBooleanValue(element, '@_inline')
839
+ } else if (attributeName === '@_sealed') {
840
+ this.sealed = xml.getAttributeBooleanValue(element, '@_sealed')
841
+ } else if (attributeName === '@_abstract') {
842
+ this.abstract = xml.getAttributeBooleanValue(element, '@_abstract')
843
+ } else {
844
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
845
+ console.error(
846
+ `${elementName} attribute:`,
847
+ attributeName,
848
+ 'not implemented yet in',
849
+ this.constructor.name
850
+ )
851
+ }
852
+ }
853
+
854
+ assert(this.id.length > 0)
855
+ assert(this.kind.length > 0)
856
+
857
+ // WARNING: The attribute is not marked as optional, but is not present.
858
+ // assert(this.prot.length > 0)
859
+
860
+ if (this.kind !== 'namespace') {
861
+ assert(this.compoundName.length > 0)
862
+ }
863
+
864
+ // ------------------------------------------------------------------------
865
+
866
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
867
+ }
868
+ }
869
+
870
+ // ----------------------------------------------------------------------------
871
+
872
+ // <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
873
+
874
+ /**
875
+ * Concrete implementation of compound definition data model.
876
+ *
877
+ * @remarks
878
+ * Provides the primary data model implementation for Doxygen compound
879
+ * definitions, handling all types of compounds including classes, structures,
880
+ * files, namespaces, and pages. This class serves as the main entry point
881
+ * for processing compound definition XML elements in the Doxygen output.
882
+ *
883
+ * @public
884
+ */
885
+ export class CompoundDefDataModel extends AbstractCompoundDefType {
886
+ /**
887
+ * Constructs a new CompoundDefDataModel instance.
888
+ *
889
+ * @remarks
890
+ * Creates a data model object for 'compounddef' XML elements by delegating
891
+ * to the parent constructor with the appropriate element name. This
892
+ * represents the root element for all compound definitions in Doxygen XML
893
+ * output.
894
+ *
895
+ * @param xml - The XML parser instance for processing elements
896
+ * @param element - The XML element object to parse
897
+ */
898
+ constructor(xml: DoxygenXmlParser, element: object) {
899
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
900
+ super(xml, element, 'compounddef')
901
+ }
902
+ }
903
+
904
+ // ----------------------------------------------------------------------------
905
+
906
+ // <xsd:complexType name="docHtmlOnlyType">
907
+ // <xsd:simpleContent>
908
+ // <xsd:extension base="xsd:string">
909
+ // <xsd:attribute name="block" type="xsd:string" />
910
+ // </xsd:extension>
911
+ // </xsd:simpleContent>
912
+ // </xsd:complexType>
913
+
914
+ /**
915
+ * Abstract base class for HTML-only documentation content.
916
+ *
917
+ * @remarks
918
+ * Represents content that should only be rendered in HTML output formats,
919
+ * providing a mechanism for format-specific content inclusion in Doxygen
920
+ * documentation. This class handles the 'docHtmlOnlyType' XML schema
921
+ * structure with text content and optional block attributes.
922
+ *
923
+ * @public
924
+ */
925
+ export abstract class AbstractDocHtmlOnlyType extends AbstractDataModelBase {
926
+ text = ''
927
+
928
+ block?: string | undefined
929
+
930
+ /**
931
+ * Constructs a new HTML-only content data model instance.
932
+ *
933
+ * @remarks
934
+ * Parses HTML-only content elements from Doxygen XML output, extracting
935
+ * the text content and any optional block attributes. This content is
936
+ * intended for rendering only in HTML-based output formats whilst being
937
+ * excluded from other documentation formats.
938
+ *
939
+ * @param xml - The XML parser instance for processing elements
940
+ * @param element - The XML element object to parse
941
+ * @param elementName - The name of the XML element being processed
942
+ */
943
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
944
+ super(elementName)
945
+
946
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
947
+
948
+ // ------------------------------------------------------------------------
949
+ // Process elements.
950
+
951
+ assert(xml.isInnerElementText(element, elementName))
952
+ this.text = xml.getInnerElementText(element, elementName)
953
+
954
+ // ------------------------------------------------------------------------
955
+ // Process attributes.
956
+
957
+ if (xml.hasAttributes(element)) {
958
+ const attributesNames = xml.getAttributesNames(element)
959
+ for (const attributeName of attributesNames) {
960
+ if (attributeName === '@_block') {
961
+ this.block = xml.getAttributeStringValue(element, '@_block')
962
+ } else {
963
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
964
+ console.error(
965
+ `${elementName} attribute:`,
966
+ attributeName,
967
+ 'not implemented yet in',
968
+ this.constructor.name
969
+ )
970
+ }
971
+ }
972
+ }
973
+
974
+ // ------------------------------------------------------------------------
975
+
976
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
977
+ }
978
+ }
979
+
980
+ // ----------------------------------------------------------------------------
981
+
982
+ // <xsd:element name="htmlonly" type="docHtmlOnlyType" />
983
+
984
+ /**
985
+ * Data model for HTML-only content elements.
986
+ *
987
+ * @remarks
988
+ * Represents content that should only be included in HTML output formats,
989
+ * typically used for web-specific markup or styling that is not appropriate
990
+ * for other documentation formats. This implementation handles the 'htmlonly'
991
+ * XML element from Doxygen output.
992
+ *
993
+ * @public
994
+ */
995
+ export class HtmlOnlyDataModel extends AbstractDocHtmlOnlyType {
996
+ /**
997
+ * Constructs a new HtmlOnlyDataModel instance.
998
+ *
999
+ * @remarks
1000
+ * Creates a data model object for 'htmlonly' XML elements, which contain
1001
+ * content specifically intended for HTML output rendering only.
1002
+ *
1003
+ * @param xml - The XML parser instance for processing elements
1004
+ * @param element - The XML element object to parse
1005
+ */
1006
+ constructor(xml: DoxygenXmlParser, element: object) {
1007
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1008
+ super(xml, element, 'htmlonly')
1009
+ }
1010
+ }
1011
+
1012
+ // Normally strings are properties, but these are unusual, so we keep them
1013
+ // as objects.
1014
+ // <xsd:element name="manonly" type="xsd:string" />
1015
+ // <xsd:element name="xmlonly" type="xsd:string" />
1016
+ // <xsd:element name="rtfonly" type="xsd:string" />
1017
+ // <xsd:element name="latexonly" type="xsd:string" />
1018
+ // <xsd:element name="docbookonly" type="xsd:string" />
1019
+
1020
+ /**
1021
+ * Data model for manual-only content elements.
1022
+ *
1023
+ * @remarks
1024
+ * Represents content that should only be included in manual page output
1025
+ * formats. This class handles string content specifically intended for
1026
+ * Unix manual page generation whilst excluding it from other documentation
1027
+ * formats.
1028
+ *
1029
+ * @public
1030
+ */
1031
+ export class ManOnlyDataModel extends AbstractStringType {
1032
+ /**
1033
+ * Constructs a new ManOnlyDataModel instance.
1034
+ *
1035
+ * @remarks
1036
+ * Creates a data model object for 'manonly' XML elements containing
1037
+ * content specifically intended for manual page output rendering.
1038
+ *
1039
+ * @param xml - The XML parser instance for processing elements
1040
+ * @param element - The XML element object to parse
1041
+ */
1042
+ constructor(xml: DoxygenXmlParser, element: object) {
1043
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1044
+ super(xml, element, 'manonly')
1045
+ }
1046
+ }
1047
+
1048
+ /**
1049
+ * Data model for XML-only content elements.
1050
+ *
1051
+ * @remarks
1052
+ * Represents content that should only be included in XML output formats.
1053
+ * This class handles string content specifically intended for XML-based
1054
+ * documentation generation whilst excluding it from other output formats.
1055
+ *
1056
+ * @public
1057
+ */
1058
+ export class XmlOnlyDataModel extends AbstractStringType {
1059
+ /**
1060
+ * Constructs a new XmlOnlyDataModel instance.
1061
+ *
1062
+ * @remarks
1063
+ * Creates a data model object for 'xmlonly' XML elements containing
1064
+ * content specifically intended for XML output rendering.
1065
+ *
1066
+ * @param xml - The XML parser instance for processing elements
1067
+ * @param element - The XML element object to parse
1068
+ */
1069
+ constructor(xml: DoxygenXmlParser, element: object) {
1070
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1071
+ super(xml, element, 'xmlonly')
1072
+ }
1073
+ }
1074
+
1075
+ /**
1076
+ * Data model for RTF-only content elements.
1077
+ *
1078
+ * @remarks
1079
+ * Represents content that should only be included in Rich Text Format (RTF)
1080
+ * output. This class handles string content specifically intended for RTF
1081
+ * document generation whilst excluding it from other documentation formats.
1082
+ *
1083
+ * @public
1084
+ */
1085
+ export class RtfOnlyDataModel extends AbstractStringType {
1086
+ /**
1087
+ * Constructs a new RtfOnlyDataModel instance.
1088
+ *
1089
+ * @remarks
1090
+ * Creates a data model object for 'rtfonly' XML elements containing
1091
+ * content specifically intended for RTF output rendering.
1092
+ *
1093
+ * @param xml - The XML parser instance for processing elements
1094
+ * @param element - The XML element object to parse
1095
+ */
1096
+ constructor(xml: DoxygenXmlParser, element: object) {
1097
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1098
+ super(xml, element, 'rtfonly')
1099
+ }
1100
+ }
1101
+
1102
+ /**
1103
+ * Data model for LaTeX-only content elements.
1104
+ *
1105
+ * @remarks
1106
+ * Represents content that should only be included in LaTeX output formats.
1107
+ * This class handles string content specifically intended for LaTeX document
1108
+ * generation whilst excluding it from other documentation formats.
1109
+ *
1110
+ * @public
1111
+ */
1112
+ export class LatexOnlyDataModel extends AbstractStringType {
1113
+ /**
1114
+ * Constructs a new LatexOnlyDataModel instance.
1115
+ *
1116
+ * @remarks
1117
+ * Creates a data model object for 'latexonly' XML elements containing
1118
+ * content specifically intended for LaTeX output rendering.
1119
+ *
1120
+ * @param xml - The XML parser instance for processing elements
1121
+ * @param element - The XML element object to parse
1122
+ */
1123
+ constructor(xml: DoxygenXmlParser, element: object) {
1124
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1125
+ super(xml, element, 'latexonly')
1126
+ }
1127
+ }
1128
+
1129
+ /**
1130
+ * Data model for DocBook-only content elements.
1131
+ *
1132
+ * @remarks
1133
+ * Represents content that should only be included in DocBook output formats.
1134
+ * This class handles string content specifically intended for DocBook XML
1135
+ * document generation whilst excluding it from other documentation formats.
1136
+ *
1137
+ * @public
1138
+ */
1139
+ export class DocBookOnlyDataModel extends AbstractStringType {
1140
+ /**
1141
+ * Constructs a new DocBookOnlyDataModel instance.
1142
+ *
1143
+ * @remarks
1144
+ * Creates a data model object for 'docbookonly' XML elements containing
1145
+ * content specifically intended for DocBook output rendering.
1146
+ *
1147
+ * @param xml - The XML parser instance for processing elements
1148
+ * @param element - The XML element object to parse
1149
+ */
1150
+ constructor(xml: DoxygenXmlParser, element: object) {
1151
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
1152
+ super(xml, element, 'docbookonly')
1153
+ }
1154
+ }
1155
+
1156
+ // ----------------------------------------------------------------------------