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