@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,881 @@
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 {
19
+ BriefDescriptionDataModel,
20
+ DetailedDescriptionDataModel,
21
+ InbodyDescriptionDataModel,
22
+ } from './descriptiontype-dm.js'
23
+ import {
24
+ InitializerDataModel,
25
+ RequiresClauseDataModel,
26
+ TypeDataModel,
27
+ } from './linkedtexttype-dm.js'
28
+ import { LocationDataModel } from './locationtype-dm.js'
29
+ import { ParamDataModel } from './paramtype-dm.js'
30
+ import { AbstractDataModelBase } from '../types.js'
31
+ import { TemplateParamListDataModel } from './templateparamlisttype-dm.js'
32
+ import { EnumValueDataModel } from './enumvaluetype-dm.js'
33
+ import {
34
+ ReimplementDataModel,
35
+ ReimplementedByDataModel,
36
+ } from './reimplementtype-dm.js'
37
+ import {
38
+ ReferenceDataModel,
39
+ ReferencedByDataModel,
40
+ } from './referencetype-dm.js'
41
+
42
+ // ----------------------------------------------------------------------------
43
+
44
+ // <xsd:complexType name="memberdefType">
45
+ // <xsd:sequence>
46
+ // <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
47
+ // <xsd:element name="type" type="linkedTextType" minOccurs="0" />
48
+ // <xsd:element name="definition" type="xsd:string" minOccurs="0" />
49
+ // <xsd:element name="argsstring" type="xsd:string" minOccurs="0" />
50
+ // <xsd:element name="name" type="xsd:string" />
51
+ // <xsd:element name="qualifiedname" type="xsd:string" minOccurs="0"/>
52
+ // <xsd:element name="read" type="xsd:string" minOccurs="0" />
53
+ // <xsd:element name="write" type="xsd:string" minOccurs="0" />
54
+ // <xsd:element name="bitfield" type="xsd:string" minOccurs="0" />
55
+ // <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
56
+ // <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
57
+ // <xsd:element name="qualifier" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
58
+ // <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
59
+ // <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
60
+ // <xsd:element name="requiresclause" type="linkedTextType" minOccurs="0" />
61
+ // <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
62
+ // <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
63
+
64
+ // <xsd:element name="satisfies" type="requirementRefsType" minOccurs="0" maxOccurs="1" />
65
+ // <xsd:element name="verifies" type="requirementRefsType" minOccurs="0" maxOccurs="1" />
66
+
67
+ // <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
68
+ // <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
69
+ // <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
70
+ // <xsd:element name="location" type="locationType" />
71
+ // <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
72
+ // <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
73
+ // </xsd:sequence>
74
+
75
+ // <xsd:attribute name="kind" type="DoxMemberKind" />
76
+ // <xsd:attribute name="id" type="xsd:string" />
77
+ // <xsd:attribute name="prot" type="DoxProtectionKind" />
78
+ // <xsd:attribute name="static" type="DoxBool" />
79
+
80
+ // <xsd:attribute name="extern" type="DoxBool" use="optional" />
81
+ // <xsd:attribute name="strong" type="DoxBool" use="optional"/>
82
+ // <xsd:attribute name="const" type="DoxBool" use="optional"/>
83
+ // <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
84
+ // <xsd:attribute name="inline" type="DoxBool" use="optional"/>
85
+ // <xsd:attribute name="refqual" type="DoxRefQualifierKind" use="optional"/>
86
+ // <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
87
+ // <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
88
+ // <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
89
+
90
+ // <xsd:attribute name="thread_local" type="DoxBool" use="optional"/>
91
+
92
+ // <xsd:attribute name="noexcept" type="DoxBool" use="optional"/>
93
+ // <xsd:attribute name="noexceptexpression" type="xsd:string" use="optional"/>
94
+ // <xsd:attribute name="nodiscard" type="DoxBool" use="optional"/>
95
+ // <xsd:attribute name="constexpr" type="DoxBool" use="optional"/>
96
+ // <xsd:attribute name="consteval" type="DoxBool" use="optional"/>
97
+ // <xsd:attribute name="constinit" type="DoxBool" use="optional"/>
98
+ // <!-- Qt property -->
99
+ // <xsd:attribute name="readable" type="DoxBool" use="optional"/>
100
+ // <xsd:attribute name="writable" type="DoxBool" use="optional"/>
101
+ // <!-- C++/CLI variable -->
102
+ // <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
103
+ // <!-- C++/CLI and C# property -->
104
+ // <xsd:attribute name="settable" type="DoxBool" use="optional"/>
105
+ // <xsd:attribute name="privatesettable" type="DoxBool" use="optional"/>
106
+ // <xsd:attribute name="protectedsettable" type="DoxBool" use="optional"/>
107
+ // <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
108
+ // <xsd:attribute name="privategettable" type="DoxBool" use="optional"/>
109
+ // <xsd:attribute name="protectedgettable" type="DoxBool" use="optional"/>
110
+ // <!-- C++/CLI function -->
111
+ // <xsd:attribute name="final" type="DoxBool" use="optional"/>
112
+ // <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
113
+ // <xsd:attribute name="new" type="DoxBool" use="optional"/>
114
+ // <!-- C++/CLI event -->
115
+ // <xsd:attribute name="add" type="DoxBool" use="optional"/>
116
+ // <xsd:attribute name="remove" type="DoxBool" use="optional"/>
117
+ // <xsd:attribute name="raise" type="DoxBool" use="optional"/>
118
+ // <!-- Objective-C 2.0 protocol method -->
119
+ // <xsd:attribute name="optional" type="DoxBool" use="optional"/>
120
+ // <xsd:attribute name="required" type="DoxBool" use="optional"/>
121
+ // <!-- Objective-C 2.0 property accessor -->
122
+ // <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
123
+ // <!-- UNO IDL -->
124
+ // <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
125
+ // <xsd:attribute name="property" type="DoxBool" use="optional"/>
126
+ // <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
127
+ // <xsd:attribute name="bound" type="DoxBool" use="optional"/>
128
+ // <xsd:attribute name="removable" type="DoxBool" use="optional"/>
129
+ // <xsd:attribute name="constrained" type="DoxBool" use="optional"/>
130
+ // <xsd:attribute name="transient" type="DoxBool" use="optional"/>
131
+ // <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
132
+ // <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
133
+ // <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
134
+ // </xsd:complexType>
135
+
136
+ // <xsd:simpleType name="DoxMemberKind">
137
+ // <xsd:restriction base="xsd:string">
138
+ // <xsd:enumeration value="define" />
139
+ // <xsd:enumeration value="property" />
140
+ // <xsd:enumeration value="event" />
141
+ // <xsd:enumeration value="variable" />
142
+ // <xsd:enumeration value="typedef" />
143
+ // <xsd:enumeration value="enum" />
144
+ // <xsd:enumeration value="function" />
145
+ // <xsd:enumeration value="signal" />
146
+ // <xsd:enumeration value="prototype" />
147
+ // <xsd:enumeration value="friend" />
148
+ // <xsd:enumeration value="dcop" />
149
+ // <xsd:enumeration value="slot" />
150
+ // <xsd:enumeration value="interface" />
151
+ // <xsd:enumeration value="service" />
152
+ // </xsd:restriction>
153
+ // </xsd:simpleType>
154
+
155
+ /**
156
+ * Union type representing all possible member kinds within Doxygen
157
+ * documentation.
158
+ *
159
+ * @remarks
160
+ * Defines the complete set of member types that can be documented by Doxygen,
161
+ * encompassing various programming language constructs including C/C++
162
+ * elements, Qt-specific constructs, and language-specific features from
163
+ * multiple programming paradigms.
164
+ *
165
+ * The enumeration covers traditional programming constructs (functions,
166
+ * variables, typedefs), modern C++ features, Qt framework elements (signals,
167
+ * slots), and specialised constructs from various development environments.
168
+ *
169
+ * @public
170
+ */
171
+ export type DoxMemberKind =
172
+ | 'define'
173
+ | 'property'
174
+ | 'event'
175
+ | 'variable'
176
+ | 'typedef'
177
+ | 'enum'
178
+ | 'function'
179
+ | 'signal'
180
+ | 'prototype'
181
+ | 'friend'
182
+ | 'dcop'
183
+ | 'slot'
184
+ | 'interface'
185
+ | 'service'
186
+
187
+ /**
188
+ * Abstract base class for member-related data models within documentation.
189
+ *
190
+ * @remarks
191
+ * Provides foundational functionality for all member-related elements within
192
+ * the Doxygen documentation system. This class establishes the basic
193
+ * structure for member identification and classification, serving as the
194
+ * foundation for more specific member definition processing.
195
+ *
196
+ * The class maintains essential member information including name and kind
197
+ * identification, which are fundamental properties required by all member
198
+ * types within the documentation hierarchy.
199
+ *
200
+ * @public
201
+ */
202
+ export abstract class AbstractMemberBaseType extends AbstractDataModelBase {
203
+ /**
204
+ * The name of the member element.
205
+ *
206
+ * @remarks
207
+ * Contains the identifier name for the member as extracted from the
208
+ * documentation source. This represents the primary identification
209
+ * mechanism for the member within its containing scope.
210
+ *
211
+ * @public
212
+ */
213
+ name = ''
214
+
215
+ /**
216
+ * The kind classification of the member element.
217
+ *
218
+ * @remarks
219
+ * Specifies the type category of the member, corresponding to the
220
+ * DoxMemberKind enumeration values. This classification determines
221
+ * how the member is processed and presented within the documentation
222
+ * generation workflow.
223
+ *
224
+ * @public
225
+ */
226
+ kind = ''
227
+ }
228
+
229
+ /**
230
+ * Abstract base class for comprehensive member definition data models.
231
+ *
232
+ * @remarks
233
+ * Extends the basic member functionality to provide complete member
234
+ * definition processing capabilities. This class handles the complex XML
235
+ * Schema definition for memberdefType elements, which represent detailed
236
+ * member information including location data, type information, parameters,
237
+ * descriptions, and various language-specific attributes.
238
+ *
239
+ * The implementation processes extensive member metadata including template
240
+ * parameters, function signatures, initialization values, documentation
241
+ * descriptions, and cross-reference information. It also manages a
242
+ * comprehensive set of language-specific attributes covering C++, Qt,
243
+ * C++/CLI, C#, Objective-C, and UNO IDL constructs.
244
+ *
245
+ * @public
246
+ */
247
+ export abstract class AbstractMemberDefType extends AbstractMemberBaseType {
248
+ /**
249
+ * The location information for the member definition.
250
+ *
251
+ * @remarks
252
+ * Contains comprehensive source code location data including file paths,
253
+ * line numbers, and column positions for both declarations and
254
+ * implementations. This enables precise navigation between documentation
255
+ * and source code.
256
+ *
257
+ * @public
258
+ */
259
+ location: LocationDataModel | undefined
260
+
261
+ /**
262
+ * The unique identifier for the member element.
263
+ *
264
+ * @remarks
265
+ * Provides a unique identification string for the member within the
266
+ * documentation system. This identifier is used for cross-referencing
267
+ * and linking between different parts of the documentation.
268
+ *
269
+ * @public
270
+ */
271
+ id = ''
272
+
273
+ /**
274
+ * The protection level of the member element.
275
+ *
276
+ * @remarks
277
+ * Specifies the access protection level (public, protected, private)
278
+ * for the member, determining its visibility and accessibility within
279
+ * the containing class or namespace scope.
280
+ *
281
+ * @public
282
+ */
283
+ prot = ''
284
+
285
+ /**
286
+ * Indicates whether the member is declared as static.
287
+ *
288
+ * @remarks
289
+ * Boolean flag indicating static member declaration, affecting the
290
+ * member's association with class instances versus the class itself.
291
+ * This information is crucial for understanding member accessibility
292
+ * and usage patterns.
293
+ *
294
+ * @public
295
+ */
296
+ staticc: boolean | undefined
297
+
298
+ /**
299
+ * Template parameter list information for templated members.
300
+ *
301
+ * @remarks
302
+ * Contains detailed information about template parameters when the member
303
+ * is part of a template declaration. This includes parameter names, types,
304
+ * and default values essential for template documentation.
305
+ *
306
+ * @public
307
+ */
308
+ templateparamlist?: TemplateParamListDataModel | undefined
309
+
310
+ /**
311
+ * Type information for the member element.
312
+ *
313
+ * @remarks
314
+ * Provides comprehensive type data including linked text with embedded
315
+ * cross-references. This information describes the member's data type,
316
+ * return type for functions, or variable type for data members.
317
+ *
318
+ * @public
319
+ */
320
+ type?: TypeDataModel | undefined
321
+
322
+ /**
323
+ * The complete definition string for the member.
324
+ *
325
+ * @remarks
326
+ * Contains the full member definition as it appears in the source code,
327
+ * including type information, qualifiers, and parameter lists. This
328
+ * provides the complete syntactic representation of the member.
329
+ *
330
+ * @public
331
+ */
332
+ definition?: string | undefined
333
+
334
+ /**
335
+ * The argument string for function members.
336
+ *
337
+ * @remarks
338
+ * Contains the parameter list specification for function-like members,
339
+ * including parameter types, names, and default values. This information
340
+ * is essential for understanding function signatures and usage.
341
+ *
342
+ * @public
343
+ */
344
+ argsstring?: string | undefined
345
+
346
+ /**
347
+ * The fully qualified name of the member element.
348
+ *
349
+ * @remarks
350
+ * Provides the complete qualified name including namespace and class
351
+ * prefixes, enabling unambiguous identification of the member within
352
+ * the entire codebase context.
353
+ *
354
+ * @public
355
+ */
356
+ qualifiedName?: string | undefined
357
+ // read?: string | undefined
358
+ // write?: string | undefined
359
+
360
+ /**
361
+ * Bitfield specification for member variables.
362
+ *
363
+ * @remarks
364
+ * Contains the bitfield width specification for member variables that
365
+ * are declared as bitfields in C/C++ structures or classes. This string
366
+ * represents the number of bits allocated to the member within the
367
+ * containing structure's memory layout.
368
+ */
369
+ bitfield?: string | undefined
370
+
371
+ /**
372
+ * List of reimplemented member references.
373
+ *
374
+ * @remarks
375
+ * Contains references to members that this member reimplements or
376
+ * overrides from base classes. This property captures inheritance
377
+ * relationships where the current member provides a new implementation
378
+ * of a virtual method from a parent class.
379
+ */
380
+ reimplements?: ReimplementDataModel[] | undefined
381
+
382
+ /**
383
+ * List of members that reimplement this member.
384
+ *
385
+ * @remarks
386
+ * Contains references to derived class members that reimplement or
387
+ * override this member. This property provides reverse inheritance
388
+ * relationship information, showing which child classes provide
389
+ * alternative implementations of this member.
390
+ */
391
+ reimplementedBys?: ReimplementDataModel[] | undefined
392
+ // qualifier?: string[] | undefined
393
+
394
+ /**
395
+ * Parameter list for function or method members.
396
+ *
397
+ * @remarks
398
+ * Contains detailed parameter information for function-like members,
399
+ * including parameter names, types, descriptions, and default values.
400
+ * This comprehensive parameter data enables complete function signature
401
+ * documentation and API reference generation.
402
+ */
403
+ params?: ParamDataModel[] | undefined
404
+
405
+ /**
406
+ * Enumeration values for enum members.
407
+ *
408
+ * @remarks
409
+ * Contains the list of enumeration constants when the member is an enum
410
+ * type. Each enumeration value includes its name, numeric value, and
411
+ * associated documentation, providing complete enum documentation
412
+ * for API references.
413
+ */
414
+ enumvalues?: EnumValueDataModel[] | undefined
415
+
416
+ /**
417
+ * The C++20 requires clause constraining the member.
418
+ *
419
+ * @remarks
420
+ * Contains the requires clause expression that constrains the member
421
+ * when it is a template function or method. The linked text may include
422
+ * cross-references to concept definitions used within the constraint
423
+ * expression.
424
+ */
425
+ requiresClause?: RequiresClauseDataModel | undefined
426
+
427
+ /**
428
+ * Initializer expression for the member.
429
+ *
430
+ * @remarks
431
+ * Contains the initialization expression or default value assigned to
432
+ * the member in its declaration. This linked text may include
433
+ * cross-references to other documented entities and provides insight
434
+ * into the member's default behaviour or initial state.
435
+ */
436
+ initializer?: InitializerDataModel | undefined
437
+ // exceptions?: LinkedTextType | undefined
438
+
439
+ /**
440
+ * Brief description of the member.
441
+ *
442
+ * @remarks
443
+ * Contains a concise summary description of the member extracted from
444
+ * documentation comments. This brief description is typically used in
445
+ * member listings and summary views to provide quick understanding
446
+ * of the member's purpose.
447
+ */
448
+ briefDescription?: BriefDescriptionDataModel | undefined
449
+
450
+ /**
451
+ * Detailed description of the member.
452
+ *
453
+ * @remarks
454
+ * Contains comprehensive documentation for the member including detailed
455
+ * explanations, usage examples, parameter descriptions, and return value
456
+ * information. This forms the primary documentation content for the
457
+ * member in generated API documentation.
458
+ */
459
+ detailedDescription?: DetailedDescriptionDataModel | undefined
460
+
461
+ /**
462
+ * In-body description of the member.
463
+ *
464
+ * @remarks
465
+ * Contains documentation that appears within the member's implementation
466
+ * body, typically used for additional implementation notes or internal
467
+ * documentation that supplements the main member description.
468
+ */
469
+ inbodyDescription?: InbodyDescriptionDataModel | undefined
470
+
471
+ /**
472
+ * References made by this member to other entities.
473
+ *
474
+ * @remarks
475
+ * Contains a list of references to other documented entities that this
476
+ * member uses or calls. This information enables dependency analysis
477
+ * and cross-reference navigation in the generated documentation.
478
+ */
479
+ references?: ReferenceDataModel[] | undefined
480
+
481
+ /**
482
+ * References to this member from other entities.
483
+ *
484
+ * @remarks
485
+ * Contains a list of other documented entities that reference or use
486
+ * this member. This reverse reference information helps understand
487
+ * the member's usage throughout the codebase and enables comprehensive
488
+ * cross-reference navigation.
489
+ */
490
+ referencedBy?: ReferencedByDataModel[] | undefined
491
+
492
+ // Optional attributes.
493
+
494
+ /**
495
+ * Indicates whether the member has external linkage.
496
+ *
497
+ * @remarks
498
+ * Boolean flag indicating that the member is declared with external
499
+ * linkage, typically using the 'extern' keyword in C/C++. This affects
500
+ * the member's visibility and linkage across translation units.
501
+ */
502
+ extern?: boolean | undefined
503
+
504
+ /**
505
+ * Indicates whether the member has strong typing.
506
+ *
507
+ * @remarks
508
+ * Boolean flag indicating strong type enforcement for the member,
509
+ * typically used in languages or contexts where type strength can
510
+ * be explicitly specified to prevent implicit conversions.
511
+ */
512
+ strong?: boolean | undefined
513
+
514
+ /**
515
+ * Indicates whether the member is declared as const.
516
+ *
517
+ * @remarks
518
+ * Boolean flag indicating that the member is declared with the const
519
+ * qualifier, making it immutable after initialization. This affects
520
+ * the member's usage patterns and compiler optimizations.
521
+ */
522
+ constt?: boolean | undefined
523
+
524
+ /**
525
+ * Indicates whether the member is declared as explicit.
526
+ *
527
+ * @remarks
528
+ * Boolean flag indicating that constructors or conversion operators
529
+ * are marked as explicit, preventing implicit conversions. This is
530
+ * particularly important for type safety in C++ class design.
531
+ */
532
+ explicit?: boolean | undefined
533
+
534
+ /**
535
+ * Indicates whether the member is declared as inline.
536
+ *
537
+ * @remarks
538
+ * Boolean flag indicating that the member is defined inline, suggesting
539
+ * to the compiler that calls should be expanded in place rather than
540
+ * using function call mechanisms. This affects performance and linking.
541
+ */
542
+ inline?: boolean | undefined
543
+
544
+ /**
545
+ * Indicates the reference qualifier for the member.
546
+ *
547
+ * @remarks
548
+ * Boolean flag related to C++11 reference qualifiers (&, &&) that
549
+ * specify whether member functions can be called on lvalue or rvalue
550
+ * objects. This affects method overload resolution and move semantics.
551
+ */
552
+ refqual?: boolean | undefined
553
+
554
+ /**
555
+ * Virtual specification for the member.
556
+ *
557
+ * @remarks
558
+ * String indicating the virtual nature of the member using DoxVirtualKind
559
+ * values ('non-virtual', 'virtual', 'pure-virtual'). This determines
560
+ * the member's behaviour in inheritance hierarchies and polymorphism.
561
+ */
562
+ virt?: string | undefined
563
+
564
+ /**
565
+ * Indicates whether the member is declared as volatile.
566
+ *
567
+ * @remarks
568
+ * Boolean flag indicating that the member is declared with the volatile
569
+ * qualifier, preventing compiler optimizations that assume the value
570
+ * doesn't change unexpectedly. This is important for hardware registers
571
+ * and multi-threaded contexts.
572
+ */
573
+ volatile?: boolean | undefined
574
+
575
+ /**
576
+ * Indicates whether the member is declared as mutable.
577
+ *
578
+ * @remarks
579
+ * Boolean flag indicating that the member can be modified even in const
580
+ * objects. This is typically used for caching, lazy evaluation, or
581
+ * other implementation details that don't affect the logical state.
582
+ */
583
+ mutable?: boolean | undefined
584
+
585
+ /**
586
+ * Indicates whether the member is declared as noexcept.
587
+ *
588
+ * @remarks
589
+ * Boolean flag indicating that the member promises not to throw
590
+ * exceptions. This C++11 feature enables compiler optimizations and
591
+ * affects exception safety guarantees in the API design.
592
+ */
593
+ noexcept?: boolean | undefined
594
+
595
+ /**
596
+ * Indicates whether the member has a noexcept expression.
597
+ *
598
+ * @remarks
599
+ * Boolean flag indicating that the member's noexcept specification
600
+ * includes a conditional expression that determines exception safety
601
+ * at compile time based on template parameters or other conditions.
602
+ */
603
+ noexceptexpression?: boolean | undefined
604
+
605
+ /**
606
+ * Indicates whether the member is declared as nodiscard.
607
+ *
608
+ * @remarks
609
+ * Boolean flag indicating that the member's return value should not
610
+ * be ignored by callers. This C++17 attribute helps prevent common
611
+ * programming errors where important return values are discarded.
612
+ */
613
+ nodiscard?: boolean | undefined
614
+
615
+ /**
616
+ * Indicates whether the member is declared as constexpr.
617
+ *
618
+ * @remarks
619
+ * Boolean flag indicating that the member can be evaluated at compile
620
+ * time when given constant expressions as arguments. This C++11 feature
621
+ * enables compile-time computation and optimization.
622
+ */
623
+ constexpr?: boolean | undefined
624
+
625
+ /**
626
+ * Indicates whether the member is declared as consteval.
627
+ *
628
+ * @remarks
629
+ * Boolean flag indicating that the member must be evaluated at compile
630
+ * time. This C++20 feature is stronger than constexpr, requiring
631
+ * immediate evaluation during compilation.
632
+ */
633
+ consteval?: boolean | undefined
634
+
635
+ /**
636
+ * Indicates whether the member is declared as constinit.
637
+ *
638
+ * @remarks
639
+ * Boolean flag indicating that the member must be initialized with
640
+ * a constant expression during static initialization. This C++20
641
+ * feature helps prevent initialization order issues.
642
+ */
643
+ constinit?: boolean | undefined
644
+
645
+ /**
646
+ * Indicates whether the member is declared as final.
647
+ *
648
+ * @remarks
649
+ * Boolean flag indicating that virtual members cannot be overridden
650
+ * in derived classes. This provides explicit control over inheritance
651
+ * hierarchies and enables compiler optimizations.
652
+ */
653
+ final?: boolean | undefined
654
+ // TODO: add more...
655
+
656
+ /**
657
+ * Constructs a new member definition data model from XML element data.
658
+ *
659
+ * @param xml - The XML parser instance for processing element data
660
+ * @param element - The XML element containing member definition information
661
+ * @param elementName - The name of the XML element being processed
662
+ *
663
+ * @remarks
664
+ * Processes the comprehensive XML element representing member definition
665
+ * information and extracts all available metadata including location data,
666
+ * type information, parameters, descriptions, and language-specific
667
+ * attributes. The constructor handles the complex memberdefType schema
668
+ * with its extensive set of optional elements and attributes.
669
+ *
670
+ * The implementation validates mandatory elements (name, location, kind,
671
+ * id, protection) whilst gracefully handling optional elements and
672
+ * attributes. It processes various member types including functions,
673
+ * variables, typedefs, enums, and specialised constructs from multiple
674
+ * programming languages and frameworks.
675
+ *
676
+ * @public
677
+ */
678
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
679
+ super(elementName)
680
+
681
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
682
+
683
+ // ------------------------------------------------------------------------
684
+ // Process elements.
685
+
686
+ const innerElements = xml.getInnerElements(element, elementName)
687
+ assert(innerElements.length > 0)
688
+
689
+ for (const innerElement of innerElements) {
690
+ if (xml.hasInnerText(innerElement)) {
691
+ // Ignore texts.
692
+ } else if (xml.isInnerElementText(innerElement, 'name')) {
693
+ this.name = xml.getInnerElementText(innerElement, 'name')
694
+ } else if (xml.hasInnerElement(innerElement, 'location')) {
695
+ this.location = new LocationDataModel(xml, innerElement)
696
+ } else if (xml.hasInnerElement(innerElement, 'templateparamlist')) {
697
+ this.templateparamlist = new TemplateParamListDataModel(
698
+ xml,
699
+ innerElement
700
+ )
701
+ } else if (xml.hasInnerElement(innerElement, 'type')) {
702
+ this.type = new TypeDataModel(xml, innerElement)
703
+ } else if (xml.isInnerElementText(innerElement, 'definition')) {
704
+ this.definition = xml.getInnerElementText(innerElement, 'definition')
705
+ } else if (xml.isInnerElementText(innerElement, 'argsstring')) {
706
+ this.argsstring = xml.getInnerElementText(innerElement, 'argsstring')
707
+ } else if (xml.isInnerElementText(innerElement, 'bitfield')) {
708
+ this.bitfield = xml.getInnerElementText(innerElement, 'bitfield')
709
+ } else if (xml.isInnerElementText(innerElement, 'qualifiedname')) {
710
+ this.qualifiedName = xml.getInnerElementText(
711
+ innerElement,
712
+ 'qualifiedname'
713
+ )
714
+ } else if (xml.hasInnerElement(innerElement, 'reimplements')) {
715
+ this.reimplements ??= []
716
+ this.reimplements.push(new ReimplementDataModel(xml, innerElement))
717
+ } else if (xml.hasInnerElement(innerElement, 'reimplementedby')) {
718
+ this.reimplementedBys ??= []
719
+ this.reimplementedBys.push(
720
+ new ReimplementedByDataModel(xml, innerElement)
721
+ )
722
+ } else if (xml.hasInnerElement(innerElement, 'param')) {
723
+ this.params ??= []
724
+ this.params.push(new ParamDataModel(xml, innerElement))
725
+ } else if (xml.hasInnerElement(innerElement, 'enumvalue')) {
726
+ this.enumvalues ??= []
727
+ this.enumvalues.push(new EnumValueDataModel(xml, innerElement))
728
+ } else if (xml.hasInnerElement(innerElement, 'requiresclause')) {
729
+ this.requiresClause = new RequiresClauseDataModel(xml, innerElement)
730
+ } else if (xml.hasInnerElement(innerElement, 'initializer')) {
731
+ this.initializer = new InitializerDataModel(xml, innerElement)
732
+ } else if (xml.hasInnerElement(innerElement, 'briefdescription')) {
733
+ this.briefDescription = new BriefDescriptionDataModel(xml, innerElement)
734
+ } else if (xml.hasInnerElement(innerElement, 'detaileddescription')) {
735
+ this.detailedDescription = new DetailedDescriptionDataModel(
736
+ xml,
737
+ innerElement
738
+ )
739
+ } else if (xml.hasInnerElement(innerElement, 'inbodydescription')) {
740
+ this.inbodyDescription = new InbodyDescriptionDataModel(
741
+ xml,
742
+ innerElement
743
+ )
744
+ } else if (xml.hasInnerElement(innerElement, 'references')) {
745
+ this.references ??= []
746
+ this.references.push(new ReferenceDataModel(xml, innerElement))
747
+ } else if (xml.hasInnerElement(innerElement, 'referencedby')) {
748
+ this.referencedBy ??= []
749
+ this.referencedBy.push(new ReferencedByDataModel(xml, innerElement))
750
+ } else {
751
+ console.error(util.inspect(innerElement))
752
+ console.error(
753
+ `${elementName} element:`,
754
+ Object.keys(innerElement),
755
+ 'not implemented yet in',
756
+ this.constructor.name
757
+ )
758
+ }
759
+ }
760
+
761
+ // WARNING it may be empty.
762
+ // assert(this.name.length > 0)
763
+ assert(this.location !== undefined)
764
+
765
+ // ------------------------------------------------------------------------
766
+ // Process attributes.
767
+
768
+ assert(xml.hasAttributes(element))
769
+
770
+ const attributesNames = xml.getAttributesNames(element)
771
+ // console.log(attributesNames)
772
+ for (const attributeName of attributesNames) {
773
+ // console.log(attributeName)
774
+ if (attributeName === '@_kind') {
775
+ this.kind = xml.getAttributeStringValue(element, '@_kind')
776
+ } else if (attributeName === '@_id') {
777
+ this.id = xml.getAttributeStringValue(element, '@_id')
778
+ } else if (attributeName === '@_prot') {
779
+ this.prot = xml.getAttributeStringValue(element, '@_prot')
780
+ } else if (attributeName === '@_static') {
781
+ this.staticc = xml.getAttributeBooleanValue(element, '@_static')
782
+ } else if (attributeName === '@_extern') {
783
+ this.extern = xml.getAttributeBooleanValue(element, '@_extern')
784
+ } else if (attributeName === '@_strong') {
785
+ this.strong = xml.getAttributeBooleanValue(element, '@_strong')
786
+ } else if (attributeName === '@_const') {
787
+ this.constt = xml.getAttributeBooleanValue(element, '@_const')
788
+ } else if (attributeName === '@_explicit') {
789
+ this.explicit = xml.getAttributeBooleanValue(element, '@_explicit')
790
+ } else if (attributeName === '@_inline') {
791
+ this.inline = xml.getAttributeBooleanValue(element, '@_inline')
792
+ } else if (attributeName === '@_refqual') {
793
+ this.refqual = xml.getAttributeBooleanValue(element, '@_refqual')
794
+ } else if (attributeName === '@_virt') {
795
+ this.virt = xml.getAttributeStringValue(element, '@_virt')
796
+ } else if (attributeName === '@_volatile') {
797
+ this.volatile = xml.getAttributeBooleanValue(element, '@_volatile')
798
+ } else if (attributeName === '@_mutable') {
799
+ this.mutable = xml.getAttributeBooleanValue(element, '@_mutable')
800
+ } else if (attributeName === '@_noexcept') {
801
+ this.noexcept = xml.getAttributeBooleanValue(element, '@_noexcept')
802
+ } else if (attributeName === '@_noexceptexpression') {
803
+ this.noexceptexpression = xml.getAttributeBooleanValue(
804
+ element,
805
+ '@_noexceptexpression'
806
+ )
807
+ } else if (attributeName === '@_nodiscard') {
808
+ this.nodiscard = xml.getAttributeBooleanValue(element, '@_nodiscard')
809
+ } else if (attributeName === '@_constexpr') {
810
+ this.constexpr = xml.getAttributeBooleanValue(element, '@_constexpr')
811
+ } else if (attributeName === '@_consteval') {
812
+ this.consteval = xml.getAttributeBooleanValue(element, '@_consteval')
813
+ } else if (attributeName === '@_constinit') {
814
+ this.constinit = xml.getAttributeBooleanValue(element, '@_constinit')
815
+ } else if (attributeName === '@_final') {
816
+ this.final = xml.getAttributeBooleanValue(element, '@_final')
817
+ } else {
818
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
819
+ console.error(
820
+ `${elementName} attribute:`,
821
+ attributeName,
822
+ 'not implemented yet in',
823
+ this.constructor.name
824
+ )
825
+ }
826
+ }
827
+
828
+ assert(this.kind)
829
+ assert(this.id)
830
+ assert(this.prot)
831
+
832
+ // ------------------------------------------------------------------------
833
+
834
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
835
+ }
836
+ }
837
+
838
+ // ----------------------------------------------------------------------------
839
+
840
+ // <xsd:element name="memberdef" type="memberdefType" minOccurs="0" maxOccurs="unbounded" />
841
+
842
+ /**
843
+ * Concrete implementation for memberdef elements within compound documentation.
844
+ *
845
+ * @remarks
846
+ * Provides specific handling for memberdef XML elements that contain
847
+ * comprehensive member definition information within classes, structures,
848
+ * namespaces, and other compound types. This implementation extends the
849
+ * abstract base class functionality to process the complete range of
850
+ * member definitions including functions, variables, typedefs, enums,
851
+ * and specialised language constructs.
852
+ *
853
+ * The class ensures proper instantiation of member definition data models
854
+ * whilst maintaining all the detailed metadata required for accurate
855
+ * documentation generation including cross-references, location information,
856
+ * and language-specific attributes.
857
+ *
858
+ * @public
859
+ */
860
+ export class MemberDefDataModel extends AbstractMemberDefType {
861
+ /**
862
+ * Constructs a new memberdef data model instance.
863
+ *
864
+ * @param xml - The XML parser instance for processing elements
865
+ * @param element - The source XML element containing memberdef data
866
+ *
867
+ * @remarks
868
+ * Initialises the data model with the specific element name 'memberdef'
869
+ * and delegates processing to the abstract base class implementation.
870
+ * This ensures consistent handling of member definition information
871
+ * whilst maintaining proper element identification.
872
+ *
873
+ * @public
874
+ */
875
+ constructor(xml: DoxygenXmlParser, element: object) {
876
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
877
+ super(xml, element, 'memberdef')
878
+ }
879
+ }
880
+
881
+ // ----------------------------------------------------------------------------