hasancode-api-docs 1.0.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 (326) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +403 -0
  3. package/client/dist/assets/abap-BdImnpbu.js +1 -0
  4. package/client/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  5. package/client/dist/assets/ada-bCR0ucgS.js +1 -0
  6. package/client/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  7. package/client/dist/assets/angular-html-CU67Zn6k.js +1 -0
  8. package/client/dist/assets/angular-ts-BwZT4LLn.js +1 -0
  9. package/client/dist/assets/apache-Pmp26Uib.js +1 -0
  10. package/client/dist/assets/apex-D8_7TLub.js +1 -0
  11. package/client/dist/assets/apl-dKokRX4l.js +1 -0
  12. package/client/dist/assets/applescript-Co6uUVPk.js +1 -0
  13. package/client/dist/assets/ara-BRHolxvo.js +1 -0
  14. package/client/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  15. package/client/dist/assets/asm-D_Q5rh1f.js +1 -0
  16. package/client/dist/assets/astro-CbQHKStN.js +1 -0
  17. package/client/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  18. package/client/dist/assets/awk-DMzUqQB5.js +1 -0
  19. package/client/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
  20. package/client/dist/assets/ayu-light-BA47KaF1.js +1 -0
  21. package/client/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  22. package/client/dist/assets/ballerina-BFfxhgS-.js +1 -0
  23. package/client/dist/assets/bat-BkioyH1T.js +1 -0
  24. package/client/dist/assets/beancount-k_qm7-4y.js +1 -0
  25. package/client/dist/assets/berry-uYugtg8r.js +1 -0
  26. package/client/dist/assets/bibtex-CHM0blh-.js +1 -0
  27. package/client/dist/assets/bicep-Bmn6On1c.js +1 -0
  28. package/client/dist/assets/bird2-DPOp833l.js +1 -0
  29. package/client/dist/assets/blade-D4QpJJKB.js +1 -0
  30. package/client/dist/assets/bsl-BO_Y6i37.js +1 -0
  31. package/client/dist/assets/c-BIGW1oBm.js +1 -0
  32. package/client/dist/assets/c3-eo99z4R2.js +1 -0
  33. package/client/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  34. package/client/dist/assets/cairo-KRGpt6FW.js +1 -0
  35. package/client/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  36. package/client/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  37. package/client/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  38. package/client/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  39. package/client/dist/assets/clarity-D53aC0YG.js +1 -0
  40. package/client/dist/assets/clojure-P80f7IUj.js +1 -0
  41. package/client/dist/assets/cmake-D1j8_8rp.js +1 -0
  42. package/client/dist/assets/cobol-nwyudZeR.js +1 -0
  43. package/client/dist/assets/codeowners-Bp6g37R7.js +1 -0
  44. package/client/dist/assets/codeql-DsOJ9woJ.js +1 -0
  45. package/client/dist/assets/coffee-Ch7k5sss.js +1 -0
  46. package/client/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  47. package/client/dist/assets/coq-DkFqJrB1.js +1 -0
  48. package/client/dist/assets/cpp-CofmeUqb.js +1 -0
  49. package/client/dist/assets/crystal-tKQVLTB8.js +1 -0
  50. package/client/dist/assets/csharp-COcwbKMJ.js +1 -0
  51. package/client/dist/assets/css-DPfMkruS.js +1 -0
  52. package/client/dist/assets/csv-fuZLfV_i.js +1 -0
  53. package/client/dist/assets/cue-D82EKSYY.js +1 -0
  54. package/client/dist/assets/cypher-COkxafJQ.js +1 -0
  55. package/client/dist/assets/d-85-TOEBH.js +1 -0
  56. package/client/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  57. package/client/dist/assets/dart-CF10PKvl.js +1 -0
  58. package/client/dist/assets/dax-CEL-wOlO.js +1 -0
  59. package/client/dist/assets/desktop-BmXAJ9_W.js +1 -0
  60. package/client/dist/assets/diff-D97Zzqfu.js +1 -0
  61. package/client/dist/assets/docker-BcOcwvcX.js +1 -0
  62. package/client/dist/assets/dotenv-Da5cRb03.js +1 -0
  63. package/client/dist/assets/dracula-BzJJZx-M.js +1 -0
  64. package/client/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  65. package/client/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  66. package/client/dist/assets/edge-BkV0erSs.js +1 -0
  67. package/client/dist/assets/elixir-CDX3lj18.js +1 -0
  68. package/client/dist/assets/elm-DbKCFpqz.js +1 -0
  69. package/client/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
  70. package/client/dist/assets/erb-B12qg9BL.js +1 -0
  71. package/client/dist/assets/erlang-DsQrWhSR.js +1 -0
  72. package/client/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  73. package/client/dist/assets/everforest-light-C8M2exoo.js +1 -0
  74. package/client/dist/assets/fennel-BYunw83y.js +1 -0
  75. package/client/dist/assets/fish-BvzEVeQv.js +1 -0
  76. package/client/dist/assets/fluent-C4IJs8-o.js +1 -0
  77. package/client/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  78. package/client/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  79. package/client/dist/assets/fsharp-CXgrBDvD.js +1 -0
  80. package/client/dist/assets/gdresource-BOOCDP_w.js +1 -0
  81. package/client/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  82. package/client/dist/assets/gdshader-DkwncUOv.js +1 -0
  83. package/client/dist/assets/genie-D0YGMca9.js +1 -0
  84. package/client/dist/assets/gherkin-DyxjwDmM.js +1 -0
  85. package/client/dist/assets/git-commit-F4YmCXRG.js +1 -0
  86. package/client/dist/assets/git-rebase-r7XF79zn.js +1 -0
  87. package/client/dist/assets/github-dark-DHJKELXO.js +1 -0
  88. package/client/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  89. package/client/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  90. package/client/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  91. package/client/dist/assets/github-light-DAi9KRSo.js +1 -0
  92. package/client/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  93. package/client/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  94. package/client/dist/assets/gleam-BspZqrRM.js +1 -0
  95. package/client/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
  96. package/client/dist/assets/glimmer-ts-U6CK756n.js +1 -0
  97. package/client/dist/assets/glsl-DplSGwfg.js +1 -0
  98. package/client/dist/assets/gn-n2N0HUVH.js +1 -0
  99. package/client/dist/assets/gnuplot-DdkO51Og.js +1 -0
  100. package/client/dist/assets/go-CxLEBnE3.js +1 -0
  101. package/client/dist/assets/graphql-ChdNCCLP.js +1 -0
  102. package/client/dist/assets/groovy-gcz8RCvz.js +1 -0
  103. package/client/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  104. package/client/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  105. package/client/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  106. package/client/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  107. package/client/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  108. package/client/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  109. package/client/dist/assets/hack-CaT9iCJl.js +1 -0
  110. package/client/dist/assets/haml-B8DHNrY2.js +1 -0
  111. package/client/dist/assets/handlebars-BL8al0AC.js +1 -0
  112. package/client/dist/assets/haskell-Df6bDoY_.js +1 -0
  113. package/client/dist/assets/haxe-CzTSHFRz.js +1 -0
  114. package/client/dist/assets/hcl-BWvSN4gD.js +1 -0
  115. package/client/dist/assets/hjson-D5-asLiD.js +1 -0
  116. package/client/dist/assets/hlsl-D3lLCCz7.js +1 -0
  117. package/client/dist/assets/horizon-BUw7H-hv.js +1 -0
  118. package/client/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
  119. package/client/dist/assets/houston-DnULxvSX.js +1 -0
  120. package/client/dist/assets/html-GMplVEZG.js +1 -0
  121. package/client/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
  122. package/client/dist/assets/http-jrhK8wxY.js +1 -0
  123. package/client/dist/assets/hurl-irOxFIW8.js +1 -0
  124. package/client/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  125. package/client/dist/assets/hy-DFXneXwc.js +1 -0
  126. package/client/dist/assets/imba-DGztddWO.js +1 -0
  127. package/client/dist/assets/index-BdqrFP6U.js +14 -0
  128. package/client/dist/assets/index-uUjMOcBA.css +1 -0
  129. package/client/dist/assets/ini-BEwlwnbL.js +1 -0
  130. package/client/dist/assets/java-CylS5w8V.js +1 -0
  131. package/client/dist/assets/javascript-wDzz0qaB.js +1 -0
  132. package/client/dist/assets/jinja-4LBKfQ-Z.js +1 -0
  133. package/client/dist/assets/jison-wvAkD_A8.js +1 -0
  134. package/client/dist/assets/json-Cp-IABpG.js +1 -0
  135. package/client/dist/assets/json5-C9tS-k6U.js +1 -0
  136. package/client/dist/assets/jsonc-Des-eS-w.js +1 -0
  137. package/client/dist/assets/jsonl-DcaNXYhu.js +1 -0
  138. package/client/dist/assets/jsonnet-DFQXde-d.js +1 -0
  139. package/client/dist/assets/jssm-C2t-YnRu.js +1 -0
  140. package/client/dist/assets/jsx-g9-lgVsj.js +1 -0
  141. package/client/dist/assets/julia-CxzCAyBv.js +1 -0
  142. package/client/dist/assets/just-Cw27pwNe.js +1 -0
  143. package/client/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  144. package/client/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  145. package/client/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  146. package/client/dist/assets/kdl-DV7GczEv.js +1 -0
  147. package/client/dist/assets/kotlin-BdnUsdx6.js +1 -0
  148. package/client/dist/assets/kusto-DZf3V79B.js +1 -0
  149. package/client/dist/assets/laserwave-DUszq2jm.js +1 -0
  150. package/client/dist/assets/latex-CWtU0Tv5.js +1 -0
  151. package/client/dist/assets/lean-BZvkOJ9d.js +1 -0
  152. package/client/dist/assets/less-B1dDrJ26.js +1 -0
  153. package/client/dist/assets/light-plus-B7mTdjB0.js +1 -0
  154. package/client/dist/assets/liquid-DYVedYrR.js +1 -0
  155. package/client/dist/assets/llvm-DjAJT7YJ.js +1 -0
  156. package/client/dist/assets/log-2UxHyX5q.js +1 -0
  157. package/client/dist/assets/logo-BtOb2qkB.js +1 -0
  158. package/client/dist/assets/lua-BaeVxFsk.js +1 -0
  159. package/client/dist/assets/luau-C-HG3fhB.js +1 -0
  160. package/client/dist/assets/make-CHLpvVh8.js +1 -0
  161. package/client/dist/assets/markdown-Cvjx9yec.js +1 -0
  162. package/client/dist/assets/marko-CnJfTvn9.js +1 -0
  163. package/client/dist/assets/material-theme-D5KoaKCx.js +1 -0
  164. package/client/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  165. package/client/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  166. package/client/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  167. package/client/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  168. package/client/dist/assets/matlab-D7o27uSR.js +1 -0
  169. package/client/dist/assets/mdc-BMNejdWA.js +1 -0
  170. package/client/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  171. package/client/dist/assets/mermaid-mWjccvbQ.js +1 -0
  172. package/client/dist/assets/min-dark-CafNBF8u.js +1 -0
  173. package/client/dist/assets/min-light-CTRr51gU.js +1 -0
  174. package/client/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  175. package/client/dist/assets/mojo-rZm6bMo-.js +1 -0
  176. package/client/dist/assets/monokai-D4h5O-jR.js +1 -0
  177. package/client/dist/assets/moonbit-_H4v1dQx.js +1 -0
  178. package/client/dist/assets/move-IF9eRakj.js +1 -0
  179. package/client/dist/assets/narrat-DRg8JJMk.js +1 -0
  180. package/client/dist/assets/nextflow-Zz6hmt5N.js +1 -0
  181. package/client/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  182. package/client/dist/assets/nginx-BpAMiNFr.js +1 -0
  183. package/client/dist/assets/night-owl-C39BiMTA.js +1 -0
  184. package/client/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  185. package/client/dist/assets/nim-CVrawwO9.js +1 -0
  186. package/client/dist/assets/nix-CwoSXNpI.js +1 -0
  187. package/client/dist/assets/nord-Ddv68eIx.js +1 -0
  188. package/client/dist/assets/nushell-Cz2AlsmD.js +1 -0
  189. package/client/dist/assets/objective-c-DXmwc3jG.js +1 -0
  190. package/client/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  191. package/client/dist/assets/ocaml-C0hk2d4L.js +1 -0
  192. package/client/dist/assets/odin-BBf5iR-q.js +1 -0
  193. package/client/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  194. package/client/dist/assets/one-light-C3Wv6jpd.js +1 -0
  195. package/client/dist/assets/openscad-C4EeE6gA.js +1 -0
  196. package/client/dist/assets/pascal-D93ZcfNL.js +1 -0
  197. package/client/dist/assets/perl-C0TMdlhV.js +1 -0
  198. package/client/dist/assets/php-Dhbhpdrm.js +1 -0
  199. package/client/dist/assets/pkl-u5AG7uiY.js +1 -0
  200. package/client/dist/assets/plastic-3e1v2bzS.js +1 -0
  201. package/client/dist/assets/plsql-ChMvpjG-.js +1 -0
  202. package/client/dist/assets/po-BTJTHyun.js +1 -0
  203. package/client/dist/assets/poimandres-CS3Unz2-.js +1 -0
  204. package/client/dist/assets/polar-C0HS_06l.js +1 -0
  205. package/client/dist/assets/postcss-CXtECtnM.js +1 -0
  206. package/client/dist/assets/powerquery-CEu0bR-o.js +1 -0
  207. package/client/dist/assets/powershell-Dpen1YoG.js +1 -0
  208. package/client/dist/assets/prisma-Dd19v3D-.js +1 -0
  209. package/client/dist/assets/prolog-CbFg5uaA.js +1 -0
  210. package/client/dist/assets/proto-C7zT0LnQ.js +1 -0
  211. package/client/dist/assets/pug-CGlum2m_.js +1 -0
  212. package/client/dist/assets/puppet-BMWR74SV.js +1 -0
  213. package/client/dist/assets/purescript-CklMAg4u.js +1 -0
  214. package/client/dist/assets/python-B6aJPvgy.js +1 -0
  215. package/client/dist/assets/qml-3beO22l8.js +1 -0
  216. package/client/dist/assets/qmldir-C8lEn-DE.js +1 -0
  217. package/client/dist/assets/qss-IeuSbFQv.js +1 -0
  218. package/client/dist/assets/r-Dspwwk_N.js +1 -0
  219. package/client/dist/assets/racket-BqYA7rlc.js +1 -0
  220. package/client/dist/assets/raku-DXvB9xmW.js +1 -0
  221. package/client/dist/assets/razor-Uh8Bk_45.js +1 -0
  222. package/client/dist/assets/red-bN70gL4F.js +1 -0
  223. package/client/dist/assets/reg-C-SQnVFl.js +1 -0
  224. package/client/dist/assets/regexp-CDVJQ6XC.js +1 -0
  225. package/client/dist/assets/rel-C3B-1QV4.js +1 -0
  226. package/client/dist/assets/riscv-BM1_JUlF.js +1 -0
  227. package/client/dist/assets/ron-D8l8udqQ.js +1 -0
  228. package/client/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  229. package/client/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  230. package/client/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  231. package/client/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  232. package/client/dist/assets/rst-BrH8l1NY.js +1 -0
  233. package/client/dist/assets/ruby-Dw2BHqvy.js +1 -0
  234. package/client/dist/assets/rust-B1yitclQ.js +1 -0
  235. package/client/dist/assets/sas-cz2c8ADy.js +1 -0
  236. package/client/dist/assets/sass-Cj5Yp3dK.js +1 -0
  237. package/client/dist/assets/scala-C151Ov-r.js +1 -0
  238. package/client/dist/assets/scheme-C98Dy4si.js +1 -0
  239. package/client/dist/assets/scss-OYdSNvt2.js +1 -0
  240. package/client/dist/assets/sdbl-DVxCFoDh.js +1 -0
  241. package/client/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  242. package/client/dist/assets/shellscript-Yzrsuije.js +1 -0
  243. package/client/dist/assets/shellsession-BADoaaVG.js +1 -0
  244. package/client/dist/assets/slack-dark-BthQWCQV.js +1 -0
  245. package/client/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  246. package/client/dist/assets/smalltalk-BERRCDM3.js +1 -0
  247. package/client/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  248. package/client/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  249. package/client/dist/assets/solarized-light-L9t79GZl.js +1 -0
  250. package/client/dist/assets/solidity-rGO070M0.js +1 -0
  251. package/client/dist/assets/soy-Brmx7dQM.js +1 -0
  252. package/client/dist/assets/sparql-rVzFXLq3.js +1 -0
  253. package/client/dist/assets/splunk-BtCnVYZw.js +1 -0
  254. package/client/dist/assets/sql-BLtJtn59.js +1 -0
  255. package/client/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  256. package/client/dist/assets/stata-BH5u7GGu.js +1 -0
  257. package/client/dist/assets/stylus-BEDo0Tqx.js +1 -0
  258. package/client/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  259. package/client/dist/assets/svelte-C_ipcX3V.js +1 -0
  260. package/client/dist/assets/swift-D82vCrfD.js +1 -0
  261. package/client/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  262. package/client/dist/assets/system-verilog-CnnmHF94.js +1 -0
  263. package/client/dist/assets/systemd-4A_iFExJ.js +1 -0
  264. package/client/dist/assets/talonscript-CkByrt1z.js +1 -0
  265. package/client/dist/assets/tasl-QIJgUcNo.js +1 -0
  266. package/client/dist/assets/tcl-dwOrl1Do.js +1 -0
  267. package/client/dist/assets/templ-P3uqSqPl.js +1 -0
  268. package/client/dist/assets/terraform-BETggiCN.js +1 -0
  269. package/client/dist/assets/tex-idrVyKtj.js +1 -0
  270. package/client/dist/assets/tokyo-night-hegEt444.js +1 -0
  271. package/client/dist/assets/toml-vGWfd6FD.js +1 -0
  272. package/client/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
  273. package/client/dist/assets/tsv-B_m7g4N7.js +1 -0
  274. package/client/dist/assets/tsx-COt5Ahok.js +1 -0
  275. package/client/dist/assets/turtle-BsS91CYL.js +1 -0
  276. package/client/dist/assets/twig-DNn4PbVi.js +1 -0
  277. package/client/dist/assets/typescript-BPQ3VLAy.js +1 -0
  278. package/client/dist/assets/typespec-BGHnOYBU.js +1 -0
  279. package/client/dist/assets/typst-DHCkPAjA.js +1 -0
  280. package/client/dist/assets/v-BcVCzyr7.js +1 -0
  281. package/client/dist/assets/vala-CsfeWuGM.js +1 -0
  282. package/client/dist/assets/vb-D17OF-Vu.js +1 -0
  283. package/client/dist/assets/vendor-r6CGHiWc.js +16 -0
  284. package/client/dist/assets/verilog-BQ8w6xss.js +1 -0
  285. package/client/dist/assets/vesper-DU1UobuO.js +1 -0
  286. package/client/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  287. package/client/dist/assets/viml-CJc9bBzg.js +1 -0
  288. package/client/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  289. package/client/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  290. package/client/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  291. package/client/dist/assets/vue-DN_0RTcg.js +1 -0
  292. package/client/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  293. package/client/dist/assets/vue-vine-CQOfvN7w.js +1 -0
  294. package/client/dist/assets/vyper-CDx5xZoG.js +1 -0
  295. package/client/dist/assets/wasm-CG6Dc4jp.js +1 -0
  296. package/client/dist/assets/wasm-MzD3tlZU.js +1 -0
  297. package/client/dist/assets/wenyan-BV7otONQ.js +1 -0
  298. package/client/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  299. package/client/dist/assets/wikitext-BhOHFoWU.js +1 -0
  300. package/client/dist/assets/wit-5i3qLPDT.js +1 -0
  301. package/client/dist/assets/wolfram-lXgVvXCa.js +1 -0
  302. package/client/dist/assets/xml-sdJ4AIDG.js +1 -0
  303. package/client/dist/assets/xsl-CtQFsRM5.js +1 -0
  304. package/client/dist/assets/yaml-Buea-lGh.js +1 -0
  305. package/client/dist/assets/zenscript-DVFEvuxE.js +1 -0
  306. package/client/dist/assets/zig-VOosw3JB.js +1 -0
  307. package/client/dist/index.html +23 -0
  308. package/client/dist/logo.png +0 -0
  309. package/dist/code-theme.d.ts +69 -0
  310. package/dist/code-theme.js +69 -0
  311. package/dist/decorators/MetadataDecorators.d.ts +56 -0
  312. package/dist/decorators/MetadataDecorators.js +196 -0
  313. package/dist/decorators/MethodDecorators.d.ts +40 -0
  314. package/dist/decorators/MethodDecorators.js +98 -0
  315. package/dist/decorators/ParameterDecorators.d.ts +33 -0
  316. package/dist/decorators/ParameterDecorators.js +158 -0
  317. package/dist/define/DefineDoc.d.ts +39 -0
  318. package/dist/define/DefineDoc.js +90 -0
  319. package/dist/index.d.ts +8 -0
  320. package/dist/index.js +37 -0
  321. package/dist/middleware/ApiDoc.d.ts +75 -0
  322. package/dist/middleware/ApiDoc.js +307 -0
  323. package/dist/middleware/RouteDoc.js +47 -0
  324. package/dist/registry/RouteRegistry.d.ts +103 -0
  325. package/dist/registry/RouteRegistry.js +70 -0
  326. package/package.json +55 -0
@@ -0,0 +1,33 @@
1
+ import { ParamMetadata } from "../registry/RouteRegistry";
2
+ /**
3
+ * Path parameter decorator
4
+ * @example
5
+ * @Param('id', { type: 'string', required: true, description: 'User ID' })
6
+ */
7
+ export declare function Param(name: string, config: Omit<ParamMetadata, "name">): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ /**
9
+ * Query parameter decorator
10
+ * @example
11
+ * @Query('page', { type: 'number', default: 1, description: 'Page number' })
12
+ */
13
+ export declare function Query(name: string, config: Omit<ParamMetadata, "name">): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
14
+ /**
15
+ * Header decorator
16
+ * @example
17
+ * @Header('Authorization', { type: 'string', required: true })
18
+ */
19
+ export declare function Header(name: string, config: Omit<ParamMetadata, "name">): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
20
+ /**
21
+ * Request body decorator
22
+ * @example
23
+ * @Body({
24
+ * email: { type: 'string', required: true },
25
+ * password: { type: 'string', required: true }
26
+ * })
27
+ */
28
+ export declare function Body(schema: Record<string, Omit<ParamMetadata, "name">>, options?: {
29
+ contentType?: string;
30
+ required?: boolean;
31
+ description?: string;
32
+ example?: any;
33
+ }): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Param = Param;
4
+ exports.Query = Query;
5
+ exports.Header = Header;
6
+ exports.Body = Body;
7
+ const marked_1 = require("marked");
8
+ const RouteRegistry_1 = require("../registry/RouteRegistry");
9
+ /**
10
+ * Helper to get or create metadata for a route based on the decorator context
11
+ */
12
+ function getOrCreateMetadata(target, propertyKey, defaultMethod = "get", defaultPath = "/") {
13
+ // Try to get method and path from existing metadata
14
+ const method = Reflect.getMetadata("api:method", target, propertyKey) || defaultMethod;
15
+ const path = Reflect.getMetadata("api:path", target, propertyKey) ||
16
+ defaultPath;
17
+ return { method, path };
18
+ }
19
+ /**
20
+ * Path parameter decorator
21
+ * @example
22
+ * @Param('id', { type: 'string', required: true, description: 'User ID' })
23
+ */
24
+ function Param(name, config) {
25
+ return function (target, propertyKey, descriptor) {
26
+ const { method, path } = getOrCreateMetadata(target, propertyKey);
27
+ let metadata = RouteRegistry_1.routeRegistry.get(method, path);
28
+ if (!metadata) {
29
+ metadata = {
30
+ method,
31
+ path,
32
+ params: [],
33
+ };
34
+ }
35
+ if (!metadata.params) {
36
+ metadata.params = [];
37
+ }
38
+ // Convert description to HTML if it exists
39
+ if (config === null || config === void 0 ? void 0 : config.description) {
40
+ const paramData = Object.assign(Object.assign({ name }, config), { description: '<div class="md__code">' +
41
+ marked_1.marked.parse(config.description.toString()) +
42
+ "</div>" });
43
+ metadata.params.push(paramData);
44
+ RouteRegistry_1.routeRegistry.register(metadata);
45
+ }
46
+ else {
47
+ metadata.params.push(Object.assign({ name }, config));
48
+ RouteRegistry_1.routeRegistry.register(metadata);
49
+ }
50
+ return descriptor;
51
+ };
52
+ }
53
+ /**
54
+ * Query parameter decorator
55
+ * @example
56
+ * @Query('page', { type: 'number', default: 1, description: 'Page number' })
57
+ */
58
+ function Query(name, config) {
59
+ return function (target, propertyKey, descriptor) {
60
+ const { method, path } = getOrCreateMetadata(target, propertyKey);
61
+ let metadata = RouteRegistry_1.routeRegistry.get(method, path);
62
+ if (!metadata) {
63
+ metadata = {
64
+ method,
65
+ path,
66
+ query: [],
67
+ };
68
+ }
69
+ if (!metadata.query) {
70
+ metadata.query = [];
71
+ }
72
+ // Convert description to HTML if it exists
73
+ if (config === null || config === void 0 ? void 0 : config.description) {
74
+ const queryData = Object.assign(Object.assign({ name }, config), { description: '<div class="md__code">' +
75
+ marked_1.marked.parse(config.description.toString()) +
76
+ "</div>" });
77
+ metadata.query.push(queryData);
78
+ RouteRegistry_1.routeRegistry.register(metadata);
79
+ }
80
+ else {
81
+ metadata.query.push(Object.assign({ name }, config));
82
+ RouteRegistry_1.routeRegistry.register(metadata);
83
+ }
84
+ return descriptor;
85
+ };
86
+ }
87
+ /**
88
+ * Header decorator
89
+ * @example
90
+ * @Header('Authorization', { type: 'string', required: true })
91
+ */
92
+ function Header(name, config) {
93
+ return function (target, propertyKey, descriptor) {
94
+ const { method, path } = getOrCreateMetadata(target, propertyKey);
95
+ let metadata = RouteRegistry_1.routeRegistry.get(method, path);
96
+ if (!metadata) {
97
+ metadata = {
98
+ method,
99
+ path,
100
+ headers: [],
101
+ };
102
+ }
103
+ if (!metadata.headers) {
104
+ metadata.headers = [];
105
+ }
106
+ metadata.headers.push(Object.assign({ name }, config));
107
+ RouteRegistry_1.routeRegistry.register(metadata);
108
+ return descriptor;
109
+ };
110
+ }
111
+ /**
112
+ * Request body decorator
113
+ * @example
114
+ * @Body({
115
+ * email: { type: 'string', required: true },
116
+ * password: { type: 'string', required: true }
117
+ * })
118
+ */
119
+ function Body(schema, options) {
120
+ return function (target, propertyKey, descriptor) {
121
+ const { method, path } = getOrCreateMetadata(target, propertyKey, "post");
122
+ let metadata = RouteRegistry_1.routeRegistry.get(method, path);
123
+ if (!metadata) {
124
+ metadata = {
125
+ method,
126
+ path,
127
+ };
128
+ }
129
+ // Convert schema to proper format and handle descriptions
130
+ const processSchema = () => {
131
+ const bodySchema = {};
132
+ for (const [name, config] of Object.entries(schema)) {
133
+ if (config === null || config === void 0 ? void 0 : config.description) {
134
+ const html = marked_1.marked.parse(config.description);
135
+ bodySchema[name] = Object.assign(Object.assign({ name }, config), { description: '<div class="md__code">' + html + "</div>" });
136
+ }
137
+ else {
138
+ bodySchema[name] = Object.assign({ name }, config);
139
+ }
140
+ }
141
+ let bodyDescription = options === null || options === void 0 ? void 0 : options.description;
142
+ if (options === null || options === void 0 ? void 0 : options.description) {
143
+ const parsed = marked_1.marked.parse(options.description.toString());
144
+ bodyDescription = '<div class="md__code">' + parsed + "</div>";
145
+ }
146
+ metadata.body = {
147
+ contentType: (options === null || options === void 0 ? void 0 : options.contentType) || "application/json",
148
+ required: (options === null || options === void 0 ? void 0 : options.required) !== false,
149
+ description: bodyDescription,
150
+ schema: bodySchema,
151
+ example: options === null || options === void 0 ? void 0 : options.example,
152
+ };
153
+ RouteRegistry_1.routeRegistry.register(metadata);
154
+ };
155
+ processSchema();
156
+ return descriptor;
157
+ };
158
+ }
@@ -0,0 +1,39 @@
1
+ import { RouteMetadata, ParamMetadata } from "../registry/RouteRegistry";
2
+ /**
3
+ * Input type for doc() function - allows flexible input format
4
+ */
5
+ export interface DocInput {
6
+ method: RouteMetadata["method"];
7
+ path: string;
8
+ summary?: string;
9
+ note?: string;
10
+ description?: string;
11
+ tags?: string[];
12
+ deprecated?: boolean;
13
+ params?: Record<string, Omit<ParamMetadata, "name">> | ParamMetadata[];
14
+ query?: Record<string, Omit<ParamMetadata, "name">> | ParamMetadata[];
15
+ headers?: Record<string, Omit<ParamMetadata, "name">> | ParamMetadata[];
16
+ body?: {
17
+ contentType?: string;
18
+ required?: boolean;
19
+ description?: string;
20
+ schema: Record<string, Omit<ParamMetadata, "name">>;
21
+ example?: any;
22
+ };
23
+ responses?: Record<number, {
24
+ description: string;
25
+ contentType?: string;
26
+ schema?: Record<string, Omit<ParamMetadata, "name">>;
27
+ example?: any;
28
+ }>;
29
+ auth?: boolean | {
30
+ required: boolean;
31
+ type?: "Bearer" | "Basic" | "ApiKey";
32
+ scopes?: string[];
33
+ };
34
+ }
35
+ /**
36
+ * doc() — Register API documentation for ANY route.
37
+ * Works with modular, functional, MVC, raw Express — any structure.
38
+ */
39
+ export declare function doc(docInput: DocInput): void;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doc = doc;
4
+ const marked_1 = require("marked");
5
+ const RouteRegistry_1 = require("../registry/RouteRegistry");
6
+ /**
7
+ * Helper to convert object params to array format
8
+ */
9
+ function convertParamsToArray(params) {
10
+ if (!params)
11
+ return undefined;
12
+ // If already array, return as is
13
+ if (Array.isArray(params))
14
+ return params;
15
+ // Convert object to array
16
+ return Object.entries(params).map(([name, config]) => (Object.assign({ name }, config)));
17
+ }
18
+ /**
19
+ * Helper to convert body schema to proper format
20
+ */
21
+ function convertBodySchema(body) {
22
+ if (!body)
23
+ return undefined;
24
+ const schema = {};
25
+ for (const [name, config] of Object.entries(body.schema)) {
26
+ schema[name] = Object.assign({ name }, config);
27
+ }
28
+ if (body === null || body === void 0 ? void 0 : body.description) {
29
+ const parsed = marked_1.marked.parse(body.description.toString());
30
+ body.description = '<div class="md__code">' + parsed + "</div>";
31
+ }
32
+ return {
33
+ contentType: body.contentType || "application/json",
34
+ required: body.required !== false,
35
+ description: body.description,
36
+ schema,
37
+ example: body.example,
38
+ };
39
+ }
40
+ /**
41
+ * Helper to convert responses object to array format
42
+ */
43
+ function convertResponsesToArray(responses) {
44
+ if (!responses)
45
+ return undefined;
46
+ return Object.entries(responses).map(([statusCode, config]) => {
47
+ let responseSchema;
48
+ if (config.schema) {
49
+ responseSchema = {};
50
+ for (const [name, paramConfig] of Object.entries(config.schema)) {
51
+ responseSchema[name] = Object.assign({ name }, paramConfig);
52
+ }
53
+ }
54
+ let description = config.description;
55
+ if (description) {
56
+ const parsed = marked_1.marked.parse(description.toString());
57
+ description = `<div class="md__code">${parsed}</div>`;
58
+ }
59
+ return {
60
+ statusCode: parseInt(statusCode),
61
+ description,
62
+ contentType: config.contentType || "application/json",
63
+ schema: responseSchema,
64
+ example: config.example,
65
+ };
66
+ });
67
+ }
68
+ /**
69
+ * doc() — Register API documentation for ANY route.
70
+ * Works with modular, functional, MVC, raw Express — any structure.
71
+ */
72
+ function doc(docInput) {
73
+ // Convert input format to RouteMetadata format
74
+ const metadata = {
75
+ method: docInput.method,
76
+ path: docInput.path,
77
+ summary: docInput.summary,
78
+ note: docInput.note,
79
+ description: docInput.description,
80
+ tags: docInput.tags,
81
+ deprecated: docInput.deprecated,
82
+ params: convertParamsToArray(docInput.params),
83
+ query: convertParamsToArray(docInput.query),
84
+ headers: convertParamsToArray(docInput.headers),
85
+ body: convertBodySchema(docInput.body),
86
+ responses: convertResponsesToArray(docInput.responses),
87
+ auth: docInput.auth,
88
+ };
89
+ RouteRegistry_1.routeRegistry.register(metadata);
90
+ }
@@ -0,0 +1,8 @@
1
+ import "reflect-metadata";
2
+ export { CODE_THEMES, CodeThemeValues } from "./code-theme";
3
+ export { ApiDoc, type ApiDocConfig } from "./middleware/ApiDoc";
4
+ export { Get, Post, Put, Patch, Delete, Route, } from "./decorators/MethodDecorators";
5
+ export { Param, Query, Header, Body } from "./decorators/ParameterDecorators";
6
+ export { Response, Summary, Description, Tags, Deprecated, Auth, } from "./decorators/MetadataDecorators";
7
+ export { doc } from "./define/DefineDoc";
8
+ export { type RouteMetadata, type ParamMetadata, type BodyMetadata, type ResponseMetadata, type AuthMetadata, } from "./registry/RouteRegistry";
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.doc = exports.Auth = exports.Deprecated = exports.Tags = exports.Description = exports.Summary = exports.Response = exports.Body = exports.Header = exports.Query = exports.Param = exports.Route = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.ApiDoc = exports.CODE_THEMES = void 0;
4
+ require("reflect-metadata");
5
+ // Code theme type and constant
6
+ var code_theme_1 = require("./code-theme");
7
+ Object.defineProperty(exports, "CODE_THEMES", { enumerable: true, get: function () { return code_theme_1.CODE_THEMES; } });
8
+ // Main class
9
+ var ApiDoc_1 = require("./middleware/ApiDoc");
10
+ Object.defineProperty(exports, "ApiDoc", { enumerable: true, get: function () { return ApiDoc_1.ApiDoc; } });
11
+ // HTTP Method decorators
12
+ var MethodDecorators_1 = require("./decorators/MethodDecorators");
13
+ Object.defineProperty(exports, "Get", { enumerable: true, get: function () { return MethodDecorators_1.Get; } });
14
+ Object.defineProperty(exports, "Post", { enumerable: true, get: function () { return MethodDecorators_1.Post; } });
15
+ Object.defineProperty(exports, "Put", { enumerable: true, get: function () { return MethodDecorators_1.Put; } });
16
+ Object.defineProperty(exports, "Patch", { enumerable: true, get: function () { return MethodDecorators_1.Patch; } });
17
+ Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return MethodDecorators_1.Delete; } });
18
+ Object.defineProperty(exports, "Route", { enumerable: true, get: function () { return MethodDecorators_1.Route; } });
19
+ // Parameter decorators
20
+ var ParameterDecorators_1 = require("./decorators/ParameterDecorators");
21
+ Object.defineProperty(exports, "Param", { enumerable: true, get: function () { return ParameterDecorators_1.Param; } });
22
+ Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return ParameterDecorators_1.Query; } });
23
+ Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return ParameterDecorators_1.Header; } });
24
+ Object.defineProperty(exports, "Body", { enumerable: true, get: function () { return ParameterDecorators_1.Body; } });
25
+ // Metadata decorators
26
+ var MetadataDecorators_1 = require("./decorators/MetadataDecorators");
27
+ Object.defineProperty(exports, "Response", { enumerable: true, get: function () { return MetadataDecorators_1.Response; } });
28
+ Object.defineProperty(exports, "Summary", { enumerable: true, get: function () { return MetadataDecorators_1.Summary; } });
29
+ Object.defineProperty(exports, "Description", { enumerable: true, get: function () { return MetadataDecorators_1.Description; } });
30
+ Object.defineProperty(exports, "Tags", { enumerable: true, get: function () { return MetadataDecorators_1.Tags; } });
31
+ Object.defineProperty(exports, "Deprecated", { enumerable: true, get: function () { return MetadataDecorators_1.Deprecated; } });
32
+ Object.defineProperty(exports, "Auth", { enumerable: true, get: function () { return MetadataDecorators_1.Auth; } });
33
+ // ── For modular / functional / raw Express ────
34
+ // doc() is an Express middleware — sits inline in router.get/post/put/delete
35
+ // method & path are inferred automatically from the router
36
+ var DefineDoc_1 = require("./define/DefineDoc");
37
+ Object.defineProperty(exports, "doc", { enumerable: true, get: function () { return DefineDoc_1.doc; } });
@@ -0,0 +1,75 @@
1
+ import { Router } from "express";
2
+ import { RouteMetadata } from "../registry/RouteRegistry";
3
+ import { CodeThemeValues } from "../code-theme";
4
+ /**
5
+ * API Documentation configuration
6
+ */
7
+ export interface ApiDocConfig {
8
+ title: string;
9
+ version: string;
10
+ description?: string;
11
+ baseUrl?: string;
12
+ theme?: {
13
+ primaryColor?: string;
14
+ secondaryColor?: string;
15
+ accentColor?: string;
16
+ backgroundColor?: string;
17
+ sidebarBackgroundColor?: string;
18
+ codeTheme?: CodeThemeValues;
19
+ };
20
+ defaultAuth?: {
21
+ type: "Bearer" | "Basic" | "ApiKey";
22
+ bearerFormat?: string;
23
+ };
24
+ }
25
+ /**
26
+ * Main API Documentation class
27
+ */
28
+ export declare class ApiDoc {
29
+ private config;
30
+ private clientPath;
31
+ private readonly DOCS_PATH;
32
+ private configReady;
33
+ constructor(config: ApiDocConfig);
34
+ /**
35
+ * Normalize configuration with defaults
36
+ */
37
+ private normalizeConfig;
38
+ /**
39
+ * Resolve client path
40
+ */
41
+ private resolveClientPath;
42
+ /**
43
+ * Convert route metadata to API documentation format
44
+ */
45
+ private convertRoutesToSections;
46
+ /**
47
+ * Convert single route to section format
48
+ */
49
+ private convertRouteToSection;
50
+ /**
51
+ * Get Express middleware - automatically mounts at /api-docs
52
+ * Usage: app.use(apiDoc.middleware())
53
+ */
54
+ middleware(): Router;
55
+ /**
56
+ * Serve configuration
57
+ */
58
+ private serveConfig;
59
+ /**
60
+ * Serve the React app
61
+ */
62
+ private serveApp;
63
+ /**
64
+ * Get all registered routes
65
+ */
66
+ getRoutes(): RouteMetadata[];
67
+ /**
68
+ * Clear all routes (useful for testing)
69
+ */
70
+ clearRoutes(): void;
71
+ /**
72
+ * Get the documentation path
73
+ */
74
+ getDocsPath(): string;
75
+ }