onbuzz 5.1.0 → 5.4.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 (1949) hide show
  1. package/package.json +1 -1
  2. package/scripts/gen-brand-icons.mjs +21 -0
  3. package/scripts/web-automation-experiment.mjs +112 -0
  4. package/src/core/__tests__/stateManager.test.js +25 -0
  5. package/src/core/__tests__/structuralPreview.test.js +87 -0
  6. package/src/core/__tests__/toolResultOffload.test.js +28 -0
  7. package/src/core/agentPool.js +6 -3
  8. package/src/core/agentScheduler.js +38 -7
  9. package/src/core/stateManager.js +3 -1
  10. package/src/core/structuralPreview.js +79 -0
  11. package/src/core/toolResultOffload.js +23 -2
  12. package/src/interfaces/__tests__/attachmentRoutes.test.js +118 -0
  13. package/src/interfaces/__tests__/imageServing.test.js +88 -0
  14. package/src/interfaces/__tests__/scheduleRoutes.test.js +223 -0
  15. package/src/interfaces/__tests__/transcribeProxy.test.js +85 -0
  16. package/src/interfaces/__tests__/transcribeRoute.test.js +127 -0
  17. package/src/interfaces/attachmentRoutes.js +56 -0
  18. package/src/interfaces/scheduleRoutes.js +128 -0
  19. package/src/interfaces/terminal/config/agentEditorConstants.js +6 -2
  20. package/src/interfaces/transcribeProxy.js +72 -0
  21. package/src/interfaces/transcribeRoute.js +45 -0
  22. package/src/interfaces/webServer.js +81 -120
  23. package/src/services/__tests__/agentActivityService.test.js +18 -5
  24. package/src/services/__tests__/aiService.editImage.test.js +69 -0
  25. package/src/services/__tests__/fileAttachmentService.test.js +33 -0
  26. package/src/services/__tests__/promptService.test.js +21 -0
  27. package/src/services/__tests__/scheduleService.flow.test.js +625 -0
  28. package/src/services/__tests__/scheduleService.missedRuns.test.js +186 -0
  29. package/src/services/agentActivityService.js +25 -6
  30. package/src/services/aiService.js +4 -0
  31. package/src/services/attachments/__tests__/attachmentContextBuilder.test.js +288 -0
  32. package/src/services/attachments/__tests__/attachmentIngestionService.test.js +184 -0
  33. package/src/services/attachments/__tests__/attachmentScope.test.js +26 -0
  34. package/src/services/attachments/__tests__/attachmentStrategy.test.js +85 -0
  35. package/src/services/attachments/attachmentContextBuilder.js +185 -0
  36. package/src/services/attachments/attachmentIngestionService.js +131 -0
  37. package/src/services/attachments/attachmentScope.js +22 -0
  38. package/src/services/attachments/attachmentStrategy.js +87 -0
  39. package/src/services/fileAttachmentService.js +8 -3
  40. package/src/services/promptService.js +13 -7
  41. package/src/services/scheduleService.js +199 -24
  42. package/src/services/vision/__tests__/visionAnalysisService.test.js +160 -0
  43. package/src/services/vision/visionAnalysisService.js +124 -0
  44. package/src/tools/__tests__/baseTool.mustHave.test.js +72 -0
  45. package/src/tools/__tests__/imageTool.coverage.test.js +512 -0
  46. package/src/tools/__tests__/imageTool.edit.test.js +113 -0
  47. package/src/tools/__tests__/imageTool.validator.test.js +37 -0
  48. package/src/tools/__tests__/importAnalyzerTool.test.js +160 -0
  49. package/src/tools/__tests__/openaiFunctionSchemas.mustHave.test.js +37 -0
  50. package/src/tools/__tests__/userPromptTool.test.js +90 -0
  51. package/src/tools/__tests__/webTool.tabReuse.test.js +349 -0
  52. package/src/tools/baseTool.js +20 -2
  53. package/src/tools/imageTool.js +78 -27
  54. package/src/tools/importAnalysis/__tests__/callableChecker.edge.test.js +141 -0
  55. package/src/tools/importAnalysis/__tests__/callableChecker.test.js +356 -0
  56. package/src/tools/importAnalysis/callableChecker.js +599 -0
  57. package/src/tools/importAnalyzerTool.js +103 -3
  58. package/src/tools/openaiFunctionSchemas.js +11 -2
  59. package/src/tools/userPromptTool.js +66 -20
  60. package/src/tools/webTool.js +187 -13
  61. package/src/utilities/__tests__/mustHaveCapabilities.test.js +80 -0
  62. package/src/utilities/mustHaveCapabilities.js +94 -0
  63. package/web-ui/build/index.html +2 -2
  64. package/web-ui/build/static/1c-D_qPvB3V.js +2 -0
  65. package/web-ui/build/static/1c-D_qPvB3V.js.map +1 -0
  66. package/web-ui/build/static/abap-CTac7GuJ.js +2 -0
  67. package/web-ui/build/static/abap-CTac7GuJ.js.map +1 -0
  68. package/web-ui/build/static/abnf-B-eguyQx.js +2 -0
  69. package/web-ui/build/static/abnf-B-eguyQx.js.map +1 -0
  70. package/web-ui/build/static/abnf-DchqkIUY.js +2 -0
  71. package/web-ui/build/static/abnf-DchqkIUY.js.map +1 -0
  72. package/web-ui/build/static/accesslog-Df2QXZJW.js +2 -0
  73. package/web-ui/build/static/accesslog-Df2QXZJW.js.map +1 -0
  74. package/web-ui/build/static/actionscript-DVmdyVvT.js +2 -0
  75. package/web-ui/build/static/actionscript-DVmdyVvT.js.map +1 -0
  76. package/web-ui/build/static/actionscript-UYqAHsow.js +2 -0
  77. package/web-ui/build/static/actionscript-UYqAHsow.js.map +1 -0
  78. package/web-ui/build/static/ada-DI0WZ2bS.js +2 -0
  79. package/web-ui/build/static/ada-DI0WZ2bS.js.map +1 -0
  80. package/web-ui/build/static/ada-offhvrbu.js +2 -0
  81. package/web-ui/build/static/ada-offhvrbu.js.map +1 -0
  82. package/web-ui/build/static/agda-Bhdvz1s5.js +2 -0
  83. package/web-ui/build/static/agda-Bhdvz1s5.js.map +1 -0
  84. package/web-ui/build/static/al-BIZUcZ4_.js +2 -0
  85. package/web-ui/build/static/al-BIZUcZ4_.js.map +1 -0
  86. package/web-ui/build/static/angelscript-CKXFYEKx.js +2 -0
  87. package/web-ui/build/static/angelscript-CKXFYEKx.js.map +1 -0
  88. package/web-ui/build/static/antlr4-CBOfHCbJ.js +2 -0
  89. package/web-ui/build/static/antlr4-CBOfHCbJ.js.map +1 -0
  90. package/web-ui/build/static/apache-B5MDB0nP.js +2 -0
  91. package/web-ui/build/static/apache-B5MDB0nP.js.map +1 -0
  92. package/web-ui/build/static/apacheconf-CPiv7EUZ.js +2 -0
  93. package/web-ui/build/static/apacheconf-CPiv7EUZ.js.map +1 -0
  94. package/web-ui/build/static/apex-0ySlorg9.js +2 -0
  95. package/web-ui/build/static/apex-0ySlorg9.js.map +1 -0
  96. package/web-ui/build/static/apl-DmEChSCP.js +2 -0
  97. package/web-ui/build/static/apl-DmEChSCP.js.map +1 -0
  98. package/web-ui/build/static/applescript-Bhtpf6MR.js +2 -0
  99. package/web-ui/build/static/applescript-Bhtpf6MR.js.map +1 -0
  100. package/web-ui/build/static/applescript-Dg-QTXBp.js +2 -0
  101. package/web-ui/build/static/applescript-Dg-QTXBp.js.map +1 -0
  102. package/web-ui/build/static/aql-Dffhxg7w.js +2 -0
  103. package/web-ui/build/static/aql-Dffhxg7w.js.map +1 -0
  104. package/web-ui/build/static/arcade-DFQwGr_Z.js +2 -0
  105. package/web-ui/build/static/arcade-DFQwGr_Z.js.map +1 -0
  106. package/web-ui/build/static/arduino-BFHvEv-X.js +2 -0
  107. package/web-ui/build/static/arduino-BFHvEv-X.js.map +1 -0
  108. package/web-ui/build/static/arduino-I_Bp9X3I.js +2 -0
  109. package/web-ui/build/static/arduino-I_Bp9X3I.js.map +1 -0
  110. package/web-ui/build/static/arff-BFbh46ZP.js +2 -0
  111. package/web-ui/build/static/arff-BFbh46ZP.js.map +1 -0
  112. package/web-ui/build/static/armasm-DW5_yWoJ.js +2 -0
  113. package/web-ui/build/static/armasm-DW5_yWoJ.js.map +1 -0
  114. package/web-ui/build/static/asciidoc-BOSWbL26.js +2 -0
  115. package/web-ui/build/static/asciidoc-BOSWbL26.js.map +1 -0
  116. package/web-ui/build/static/asciidoc-_FXFf8Hs.js +2 -0
  117. package/web-ui/build/static/asciidoc-_FXFf8Hs.js.map +1 -0
  118. package/web-ui/build/static/asm6502-CVrzJPnR.js +2 -0
  119. package/web-ui/build/static/asm6502-CVrzJPnR.js.map +1 -0
  120. package/web-ui/build/static/asmatmel-BSi9dhD3.js +2 -0
  121. package/web-ui/build/static/asmatmel-BSi9dhD3.js.map +1 -0
  122. package/web-ui/build/static/aspectj-BRwmbD2q.js +2 -0
  123. package/web-ui/build/static/aspectj-BRwmbD2q.js.map +1 -0
  124. package/web-ui/build/static/aspnet-BRwsysB9.js +2 -0
  125. package/web-ui/build/static/aspnet-BRwsysB9.js.map +1 -0
  126. package/web-ui/build/static/autohotkey-6a1jiEBe.js +2 -0
  127. package/web-ui/build/static/autohotkey-6a1jiEBe.js.map +1 -0
  128. package/web-ui/build/static/autohotkey-DR1-q437.js +2 -0
  129. package/web-ui/build/static/autohotkey-DR1-q437.js.map +1 -0
  130. package/web-ui/build/static/autoit-BMqz_Jee.js +2 -0
  131. package/web-ui/build/static/autoit-BMqz_Jee.js.map +1 -0
  132. package/web-ui/build/static/autoit-BvsodKLK.js +2 -0
  133. package/web-ui/build/static/autoit-BvsodKLK.js.map +1 -0
  134. package/web-ui/build/static/avisynth-B-auLfby.js +2 -0
  135. package/web-ui/build/static/avisynth-B-auLfby.js.map +1 -0
  136. package/web-ui/build/static/avrasm-BdAbhVUJ.js +2 -0
  137. package/web-ui/build/static/avrasm-BdAbhVUJ.js.map +1 -0
  138. package/web-ui/build/static/avro-idl-DOTpi7nl.js +2 -0
  139. package/web-ui/build/static/avro-idl-DOTpi7nl.js.map +1 -0
  140. package/web-ui/build/static/awk-CsgMOdUw.js +2 -0
  141. package/web-ui/build/static/awk-CsgMOdUw.js.map +1 -0
  142. package/web-ui/build/static/axapta-C5XrhaN5.js +2 -0
  143. package/web-ui/build/static/axapta-C5XrhaN5.js.map +1 -0
  144. package/web-ui/build/static/bash-C1-r7d7k.js +2 -0
  145. package/web-ui/build/static/bash-C1-r7d7k.js.map +1 -0
  146. package/web-ui/build/static/bash-DEgBrEC2.js +2 -0
  147. package/web-ui/build/static/bash-DEgBrEC2.js.map +1 -0
  148. package/web-ui/build/static/basic-B3R5VALF.js +2 -0
  149. package/web-ui/build/static/basic-B3R5VALF.js.map +1 -0
  150. package/web-ui/build/static/basic-DSfYRx3q.js +2 -0
  151. package/web-ui/build/static/basic-DSfYRx3q.js.map +1 -0
  152. package/web-ui/build/static/batch-C2fYtgqc.js +2 -0
  153. package/web-ui/build/static/batch-C2fYtgqc.js.map +1 -0
  154. package/web-ui/build/static/bbcode-BLM0BQmc.js +2 -0
  155. package/web-ui/build/static/bbcode-BLM0BQmc.js.map +1 -0
  156. package/web-ui/build/static/bicep-B7XNjHHJ.js +2 -0
  157. package/web-ui/build/static/bicep-B7XNjHHJ.js.map +1 -0
  158. package/web-ui/build/static/birb-CjVGlEUy.js +2 -0
  159. package/web-ui/build/static/birb-CjVGlEUy.js.map +1 -0
  160. package/web-ui/build/static/bison-BBYMGwHh.js +2 -0
  161. package/web-ui/build/static/bison-BBYMGwHh.js.map +1 -0
  162. package/web-ui/build/static/bnf-BpAgVggo.js +2 -0
  163. package/web-ui/build/static/bnf-BpAgVggo.js.map +1 -0
  164. package/web-ui/build/static/bnf-CIZRfMim.js +2 -0
  165. package/web-ui/build/static/bnf-CIZRfMim.js.map +1 -0
  166. package/web-ui/build/static/brainfuck-BL8Ck-Uf.js +2 -0
  167. package/web-ui/build/static/brainfuck-BL8Ck-Uf.js.map +1 -0
  168. package/web-ui/build/static/brainfuck-dauodiI3.js +2 -0
  169. package/web-ui/build/static/brainfuck-dauodiI3.js.map +1 -0
  170. package/web-ui/build/static/brightscript-BhJdYpbY.js +2 -0
  171. package/web-ui/build/static/brightscript-BhJdYpbY.js.map +1 -0
  172. package/web-ui/build/static/bro-DcFYnCbi.js +2 -0
  173. package/web-ui/build/static/bro-DcFYnCbi.js.map +1 -0
  174. package/web-ui/build/static/bsl-C9rjiX72.js +2 -0
  175. package/web-ui/build/static/bsl-C9rjiX72.js.map +1 -0
  176. package/web-ui/build/static/c-BsnzJksu.js +2 -0
  177. package/web-ui/build/static/c-BsnzJksu.js.map +1 -0
  178. package/web-ui/build/static/c-DJbroke5.js +2 -0
  179. package/web-ui/build/static/c-DJbroke5.js.map +1 -0
  180. package/web-ui/build/static/c-like-CJEAFsFB.js +2 -0
  181. package/web-ui/build/static/c-like-CJEAFsFB.js.map +1 -0
  182. package/web-ui/build/static/cal-BbfAhea3.js +2 -0
  183. package/web-ui/build/static/cal-BbfAhea3.js.map +1 -0
  184. package/web-ui/build/static/capnproto-cDJtGDOg.js +2 -0
  185. package/web-ui/build/static/capnproto-cDJtGDOg.js.map +1 -0
  186. package/web-ui/build/static/ceylon-a_GdVQ7f.js +2 -0
  187. package/web-ui/build/static/ceylon-a_GdVQ7f.js.map +1 -0
  188. package/web-ui/build/static/cfscript-Dzjty3sd.js +2 -0
  189. package/web-ui/build/static/cfscript-Dzjty3sd.js.map +1 -0
  190. package/web-ui/build/static/chaiscript-yZoEXdeV.js +2 -0
  191. package/web-ui/build/static/chaiscript-yZoEXdeV.js.map +1 -0
  192. package/web-ui/build/static/cil-D1_WHMPv.js +2 -0
  193. package/web-ui/build/static/cil-D1_WHMPv.js.map +1 -0
  194. package/web-ui/build/static/clean-B4O-WBZ-.js +2 -0
  195. package/web-ui/build/static/clean-B4O-WBZ-.js.map +1 -0
  196. package/web-ui/build/static/clike-BbhQMC3v.js +2 -0
  197. package/web-ui/build/static/clike-BbhQMC3v.js.map +1 -0
  198. package/web-ui/build/static/clojure-Bbu93y_6.js +2 -0
  199. package/web-ui/build/static/clojure-Bbu93y_6.js.map +1 -0
  200. package/web-ui/build/static/clojure-BxfqpsEY.js +2 -0
  201. package/web-ui/build/static/clojure-BxfqpsEY.js.map +1 -0
  202. package/web-ui/build/static/clojure-repl-z0AqhltN.js +2 -0
  203. package/web-ui/build/static/clojure-repl-z0AqhltN.js.map +1 -0
  204. package/web-ui/build/static/cmake-BbWAy8j3.js +2 -0
  205. package/web-ui/build/static/cmake-BbWAy8j3.js.map +1 -0
  206. package/web-ui/build/static/cmake-CIByV8ZW.js +2 -0
  207. package/web-ui/build/static/cmake-CIByV8ZW.js.map +1 -0
  208. package/web-ui/build/static/cobol-BydUPHC7.js +2 -0
  209. package/web-ui/build/static/cobol-BydUPHC7.js.map +1 -0
  210. package/web-ui/build/static/coffeescript-BV-bTh1q.js +2 -0
  211. package/web-ui/build/static/coffeescript-BV-bTh1q.js.map +1 -0
  212. package/web-ui/build/static/coffeescript-Dxnf0yRF.js +2 -0
  213. package/web-ui/build/static/coffeescript-Dxnf0yRF.js.map +1 -0
  214. package/web-ui/build/static/concurnas-yGkTkaWa.js +2 -0
  215. package/web-ui/build/static/concurnas-yGkTkaWa.js.map +1 -0
  216. package/web-ui/build/static/coq-AhBDV-0T.js +2 -0
  217. package/web-ui/build/static/coq-AhBDV-0T.js.map +1 -0
  218. package/web-ui/build/static/coq-Do4DDPAT.js +2 -0
  219. package/web-ui/build/static/coq-Do4DDPAT.js.map +1 -0
  220. package/web-ui/build/static/cos-C5QkEIhM.js +2 -0
  221. package/web-ui/build/static/cos-C5QkEIhM.js.map +1 -0
  222. package/web-ui/build/static/cpp-BCySi8iX.js +2 -0
  223. package/web-ui/build/static/cpp-BCySi8iX.js.map +1 -0
  224. package/web-ui/build/static/cpp-BN3K8LuX.js +2 -0
  225. package/web-ui/build/static/cpp-BN3K8LuX.js.map +1 -0
  226. package/web-ui/build/static/crmsh-DFwhwYLF.js +2 -0
  227. package/web-ui/build/static/crmsh-DFwhwYLF.js.map +1 -0
  228. package/web-ui/build/static/crystal-By6Gn7pt.js +2 -0
  229. package/web-ui/build/static/crystal-By6Gn7pt.js.map +1 -0
  230. package/web-ui/build/static/crystal-Du0ZHHT8.js +2 -0
  231. package/web-ui/build/static/crystal-Du0ZHHT8.js.map +1 -0
  232. package/web-ui/build/static/csharp-Cm9Sjsgy.js +2 -0
  233. package/web-ui/build/static/csharp-Cm9Sjsgy.js.map +1 -0
  234. package/web-ui/build/static/csharp-DQZn0AVP.js +2 -0
  235. package/web-ui/build/static/csharp-DQZn0AVP.js.map +1 -0
  236. package/web-ui/build/static/cshtml-Kp9Fmw-K.js +2 -0
  237. package/web-ui/build/static/cshtml-Kp9Fmw-K.js.map +1 -0
  238. package/web-ui/build/static/csp-BX8aZ19A.js +2 -0
  239. package/web-ui/build/static/csp-BX8aZ19A.js.map +1 -0
  240. package/web-ui/build/static/csp-DfWHORpc.js +2 -0
  241. package/web-ui/build/static/csp-DfWHORpc.js.map +1 -0
  242. package/web-ui/build/static/css-CEA2miUi.js +2 -0
  243. package/web-ui/build/static/css-CEA2miUi.js.map +1 -0
  244. package/web-ui/build/static/css-CQf2huHY.js +2 -0
  245. package/web-ui/build/static/css-CQf2huHY.js.map +1 -0
  246. package/web-ui/build/static/css-extras-B9kii9BZ.js +2 -0
  247. package/web-ui/build/static/css-extras-B9kii9BZ.js.map +1 -0
  248. package/web-ui/build/static/csv-8gxezeEm.js +2 -0
  249. package/web-ui/build/static/csv-8gxezeEm.js.map +1 -0
  250. package/web-ui/build/static/cypher-CNQLP3oK.js +2 -0
  251. package/web-ui/build/static/cypher-CNQLP3oK.js.map +1 -0
  252. package/web-ui/build/static/d-CTlyYd24.js +2 -0
  253. package/web-ui/build/static/d-CTlyYd24.js.map +1 -0
  254. package/web-ui/build/static/d-Uo7SffjY.js +2 -0
  255. package/web-ui/build/static/d-Uo7SffjY.js.map +1 -0
  256. package/web-ui/build/static/dart-Bpfc756e.js +2 -0
  257. package/web-ui/build/static/dart-Bpfc756e.js.map +1 -0
  258. package/web-ui/build/static/dart-DfuVI1xC.js +2 -0
  259. package/web-ui/build/static/dart-DfuVI1xC.js.map +1 -0
  260. package/web-ui/build/static/dataweave-DEIeoY1o.js +2 -0
  261. package/web-ui/build/static/dataweave-DEIeoY1o.js.map +1 -0
  262. package/web-ui/build/static/dax-BLtb3ND_.js +2 -0
  263. package/web-ui/build/static/dax-BLtb3ND_.js.map +1 -0
  264. package/web-ui/build/static/delphi-B5yHIpFg.js +2 -0
  265. package/web-ui/build/static/delphi-B5yHIpFg.js.map +1 -0
  266. package/web-ui/build/static/dhall-yr3u71o3.js +2 -0
  267. package/web-ui/build/static/dhall-yr3u71o3.js.map +1 -0
  268. package/web-ui/build/static/diff-BpzLXp_V.js +2 -0
  269. package/web-ui/build/static/diff-BpzLXp_V.js.map +1 -0
  270. package/web-ui/build/static/diff-ByqUXGvr.js +2 -0
  271. package/web-ui/build/static/diff-ByqUXGvr.js.map +1 -0
  272. package/web-ui/build/static/django-CizPT9Sp.js +2 -0
  273. package/web-ui/build/static/django-CizPT9Sp.js.map +1 -0
  274. package/web-ui/build/static/django-YscPDccG.js +2 -0
  275. package/web-ui/build/static/django-YscPDccG.js.map +1 -0
  276. package/web-ui/build/static/dns-C-_Yg_fu.js +2 -0
  277. package/web-ui/build/static/dns-C-_Yg_fu.js.map +1 -0
  278. package/web-ui/build/static/dns-zone-file-CnPa90lC.js +2 -0
  279. package/web-ui/build/static/dns-zone-file-CnPa90lC.js.map +1 -0
  280. package/web-ui/build/static/docker-CavDrVR9.js +2 -0
  281. package/web-ui/build/static/docker-CavDrVR9.js.map +1 -0
  282. package/web-ui/build/static/dockerfile-D2G2mFQS.js +2 -0
  283. package/web-ui/build/static/dockerfile-D2G2mFQS.js.map +1 -0
  284. package/web-ui/build/static/dos-Q_JIOZcH.js +2 -0
  285. package/web-ui/build/static/dos-Q_JIOZcH.js.map +1 -0
  286. package/web-ui/build/static/dot-DD4tMB0R.js +2 -0
  287. package/web-ui/build/static/dot-DD4tMB0R.js.map +1 -0
  288. package/web-ui/build/static/dsconfig-CfhX8vWC.js +2 -0
  289. package/web-ui/build/static/dsconfig-CfhX8vWC.js.map +1 -0
  290. package/web-ui/build/static/dts-Bc0mlEwd.js +2 -0
  291. package/web-ui/build/static/dts-Bc0mlEwd.js.map +1 -0
  292. package/web-ui/build/static/dust-COIwtMNn.js +2 -0
  293. package/web-ui/build/static/dust-COIwtMNn.js.map +1 -0
  294. package/web-ui/build/static/ebnf-3YG7EsMR.js +2 -0
  295. package/web-ui/build/static/ebnf-3YG7EsMR.js.map +1 -0
  296. package/web-ui/build/static/ebnf-CDtil2Mr.js +2 -0
  297. package/web-ui/build/static/ebnf-CDtil2Mr.js.map +1 -0
  298. package/web-ui/build/static/editorconfig-64X2vX1j.js +2 -0
  299. package/web-ui/build/static/editorconfig-64X2vX1j.js.map +1 -0
  300. package/web-ui/build/static/eiffel-CJur1DN4.js +2 -0
  301. package/web-ui/build/static/eiffel-CJur1DN4.js.map +1 -0
  302. package/web-ui/build/static/ejs-Cw7vN60h.js +2 -0
  303. package/web-ui/build/static/ejs-Cw7vN60h.js.map +1 -0
  304. package/web-ui/build/static/elixir-BKo2naZS.js +2 -0
  305. package/web-ui/build/static/elixir-BKo2naZS.js.map +1 -0
  306. package/web-ui/build/static/elixir-CLb0SxeB.js +2 -0
  307. package/web-ui/build/static/elixir-CLb0SxeB.js.map +1 -0
  308. package/web-ui/build/static/elm-CdhSHkyB.js +2 -0
  309. package/web-ui/build/static/elm-CdhSHkyB.js.map +1 -0
  310. package/web-ui/build/static/elm-Dt6hdTOM.js +2 -0
  311. package/web-ui/build/static/elm-Dt6hdTOM.js.map +1 -0
  312. package/web-ui/build/static/erb-BKbC0yOs.js +2 -0
  313. package/web-ui/build/static/erb-BKbC0yOs.js.map +1 -0
  314. package/web-ui/build/static/erb-Dk87pL0R.js +2 -0
  315. package/web-ui/build/static/erb-Dk87pL0R.js.map +1 -0
  316. package/web-ui/build/static/erlang-C2qJ6J5c.js +2 -0
  317. package/web-ui/build/static/erlang-C2qJ6J5c.js.map +1 -0
  318. package/web-ui/build/static/erlang-CHQ5UiBZ.js +2 -0
  319. package/web-ui/build/static/erlang-CHQ5UiBZ.js.map +1 -0
  320. package/web-ui/build/static/erlang-repl-Dl68oiyR.js +2 -0
  321. package/web-ui/build/static/erlang-repl-Dl68oiyR.js.map +1 -0
  322. package/web-ui/build/static/etlua-bzERpDQb.js +2 -0
  323. package/web-ui/build/static/etlua-bzERpDQb.js.map +1 -0
  324. package/web-ui/build/static/excel-__vaweKO.js +2 -0
  325. package/web-ui/build/static/excel-__vaweKO.js.map +1 -0
  326. package/web-ui/build/static/excel-formula-BlYDIi9V.js +2 -0
  327. package/web-ui/build/static/excel-formula-BlYDIi9V.js.map +1 -0
  328. package/web-ui/build/static/factor-Bl5GCkeY.js +2 -0
  329. package/web-ui/build/static/factor-Bl5GCkeY.js.map +1 -0
  330. package/web-ui/build/static/false-QwAAYlpL.js +2 -0
  331. package/web-ui/build/static/false-QwAAYlpL.js.map +1 -0
  332. package/web-ui/build/static/firestore-security-rules-BLu9pgHC.js +2 -0
  333. package/web-ui/build/static/firestore-security-rules-BLu9pgHC.js.map +1 -0
  334. package/web-ui/build/static/fix-DUZ7zbCO.js +2 -0
  335. package/web-ui/build/static/fix-DUZ7zbCO.js.map +1 -0
  336. package/web-ui/build/static/flix-DBpxzY7Q.js +2 -0
  337. package/web-ui/build/static/flix-DBpxzY7Q.js.map +1 -0
  338. package/web-ui/build/static/flow-SbqJPdB5.js +2 -0
  339. package/web-ui/build/static/flow-SbqJPdB5.js.map +1 -0
  340. package/web-ui/build/static/fortran-CFDXA6Sp.js +2 -0
  341. package/web-ui/build/static/fortran-CFDXA6Sp.js.map +1 -0
  342. package/web-ui/build/static/fortran-CUXnp6Ln.js +2 -0
  343. package/web-ui/build/static/fortran-CUXnp6Ln.js.map +1 -0
  344. package/web-ui/build/static/fsharp-Bd0qRNsn.js +2 -0
  345. package/web-ui/build/static/fsharp-Bd0qRNsn.js.map +1 -0
  346. package/web-ui/build/static/fsharp-DrcBdlmg.js +2 -0
  347. package/web-ui/build/static/fsharp-DrcBdlmg.js.map +1 -0
  348. package/web-ui/build/static/ftl-Dq8qawaZ.js +2 -0
  349. package/web-ui/build/static/ftl-Dq8qawaZ.js.map +1 -0
  350. package/web-ui/build/static/gams-CQ4RaBJS.js +2 -0
  351. package/web-ui/build/static/gams-CQ4RaBJS.js.map +1 -0
  352. package/web-ui/build/static/gap-C2sol0R7.js +2 -0
  353. package/web-ui/build/static/gap-C2sol0R7.js.map +1 -0
  354. package/web-ui/build/static/gauss-DuxwVw0Q.js +2 -0
  355. package/web-ui/build/static/gauss-DuxwVw0Q.js.map +1 -0
  356. package/web-ui/build/static/gcode-DPw5b_kg.js +2 -0
  357. package/web-ui/build/static/gcode-DPw5b_kg.js.map +1 -0
  358. package/web-ui/build/static/gcode-DpswyD50.js +2 -0
  359. package/web-ui/build/static/gcode-DpswyD50.js.map +1 -0
  360. package/web-ui/build/static/gdscript-DpMvAvMc.js +2 -0
  361. package/web-ui/build/static/gdscript-DpMvAvMc.js.map +1 -0
  362. package/web-ui/build/static/gedcom-FUv-oL9A.js +2 -0
  363. package/web-ui/build/static/gedcom-FUv-oL9A.js.map +1 -0
  364. package/web-ui/build/static/gherkin-BW6tBj9v.js +2 -0
  365. package/web-ui/build/static/gherkin-BW6tBj9v.js.map +1 -0
  366. package/web-ui/build/static/gherkin-DkCl2nBf.js +2 -0
  367. package/web-ui/build/static/gherkin-DkCl2nBf.js.map +1 -0
  368. package/web-ui/build/static/git-5TLEHhqN.js +2 -0
  369. package/web-ui/build/static/git-5TLEHhqN.js.map +1 -0
  370. package/web-ui/build/static/glsl-BQQPcfMd.js +2 -0
  371. package/web-ui/build/static/glsl-BQQPcfMd.js.map +1 -0
  372. package/web-ui/build/static/glsl-C9s8AnDs.js +2 -0
  373. package/web-ui/build/static/glsl-C9s8AnDs.js.map +1 -0
  374. package/web-ui/build/static/gml-C0DL-oII.js +2 -0
  375. package/web-ui/build/static/gml-C0DL-oII.js.map +1 -0
  376. package/web-ui/build/static/gml-J98uHGl8.js +2 -0
  377. package/web-ui/build/static/gml-J98uHGl8.js.map +1 -0
  378. package/web-ui/build/static/gn-CrZAxzn5.js +2 -0
  379. package/web-ui/build/static/gn-CrZAxzn5.js.map +1 -0
  380. package/web-ui/build/static/go-Dp5jBdf1.js +2 -0
  381. package/web-ui/build/static/go-Dp5jBdf1.js.map +1 -0
  382. package/web-ui/build/static/go-module-Dwc3DMpl.js +2 -0
  383. package/web-ui/build/static/go-module-Dwc3DMpl.js.map +1 -0
  384. package/web-ui/build/static/go-vowsfWNo.js +2 -0
  385. package/web-ui/build/static/go-vowsfWNo.js.map +1 -0
  386. package/web-ui/build/static/golo-Dp6ia9Ay.js +2 -0
  387. package/web-ui/build/static/golo-Dp6ia9Ay.js.map +1 -0
  388. package/web-ui/build/static/gradle-DLwds_jy.js +2 -0
  389. package/web-ui/build/static/gradle-DLwds_jy.js.map +1 -0
  390. package/web-ui/build/static/graphql-DvUOkFUA.js +2 -0
  391. package/web-ui/build/static/graphql-DvUOkFUA.js.map +1 -0
  392. package/web-ui/build/static/groovy-PQ3uh6zb.js +2 -0
  393. package/web-ui/build/static/groovy-PQ3uh6zb.js.map +1 -0
  394. package/web-ui/build/static/groovy-dLrm0ukM.js +2 -0
  395. package/web-ui/build/static/groovy-dLrm0ukM.js.map +1 -0
  396. package/web-ui/build/static/haml-DtEB_xKl.js +2 -0
  397. package/web-ui/build/static/haml-DtEB_xKl.js.map +1 -0
  398. package/web-ui/build/static/haml-Tg-bvLcg.js +2 -0
  399. package/web-ui/build/static/haml-Tg-bvLcg.js.map +1 -0
  400. package/web-ui/build/static/handlebars-BDWmVigh.js +2 -0
  401. package/web-ui/build/static/handlebars-BDWmVigh.js.map +1 -0
  402. package/web-ui/build/static/handlebars-BVRevtKf.js +2 -0
  403. package/web-ui/build/static/handlebars-BVRevtKf.js.map +1 -0
  404. package/web-ui/build/static/haskell-CG_c5wjN.js +2 -0
  405. package/web-ui/build/static/haskell-CG_c5wjN.js.map +1 -0
  406. package/web-ui/build/static/haskell-QJQJ6izh.js +2 -0
  407. package/web-ui/build/static/haskell-QJQJ6izh.js.map +1 -0
  408. package/web-ui/build/static/haxe-0myPSjSX.js +2 -0
  409. package/web-ui/build/static/haxe-0myPSjSX.js.map +1 -0
  410. package/web-ui/build/static/haxe-gS6mo3gt.js +2 -0
  411. package/web-ui/build/static/haxe-gS6mo3gt.js.map +1 -0
  412. package/web-ui/build/static/hcl-DYxtM4tY.js +2 -0
  413. package/web-ui/build/static/hcl-DYxtM4tY.js.map +1 -0
  414. package/web-ui/build/static/hlsl-B3arqne8.js +2 -0
  415. package/web-ui/build/static/hlsl-B3arqne8.js.map +1 -0
  416. package/web-ui/build/static/hoon-C-6EGYk6.js +2 -0
  417. package/web-ui/build/static/hoon-C-6EGYk6.js.map +1 -0
  418. package/web-ui/build/static/hpkp-Bb1DHDNe.js +2 -0
  419. package/web-ui/build/static/hpkp-Bb1DHDNe.js.map +1 -0
  420. package/web-ui/build/static/hsp-CnZ1fkTT.js +2 -0
  421. package/web-ui/build/static/hsp-CnZ1fkTT.js.map +1 -0
  422. package/web-ui/build/static/hsts-BMmSKp3I.js +2 -0
  423. package/web-ui/build/static/hsts-BMmSKp3I.js.map +1 -0
  424. package/web-ui/build/static/htmlbars-OGqT_g-X.js +2 -0
  425. package/web-ui/build/static/htmlbars-OGqT_g-X.js.map +1 -0
  426. package/web-ui/build/static/http-B4OlNKQ0.js +2 -0
  427. package/web-ui/build/static/http-B4OlNKQ0.js.map +1 -0
  428. package/web-ui/build/static/http-C6Z9vrxV.js +2 -0
  429. package/web-ui/build/static/http-C6Z9vrxV.js.map +1 -0
  430. package/web-ui/build/static/hy-BzsO2-2x.js +2 -0
  431. package/web-ui/build/static/hy-BzsO2-2x.js.map +1 -0
  432. package/web-ui/build/static/ichigojam-C6gA8iIp.js +2 -0
  433. package/web-ui/build/static/ichigojam-C6gA8iIp.js.map +1 -0
  434. package/web-ui/build/static/icon-sA7JDIZl.js +2 -0
  435. package/web-ui/build/static/icon-sA7JDIZl.js.map +1 -0
  436. package/web-ui/build/static/icu-message-format-CCgD9Ze3.js +2 -0
  437. package/web-ui/build/static/icu-message-format-CCgD9Ze3.js.map +1 -0
  438. package/web-ui/build/static/idris-CSLJbqrN.js +2 -0
  439. package/web-ui/build/static/idris-CSLJbqrN.js.map +1 -0
  440. package/web-ui/build/static/iecst-C2gvgcos.js +2 -0
  441. package/web-ui/build/static/iecst-C2gvgcos.js.map +1 -0
  442. package/web-ui/build/static/ignore-B2w0UszK.js +2 -0
  443. package/web-ui/build/static/ignore-B2w0UszK.js.map +1 -0
  444. package/web-ui/build/static/index-Cgq4p9_n.js +2 -0
  445. package/web-ui/build/static/index-Cgq4p9_n.js.map +1 -0
  446. package/web-ui/build/static/index-DLkEZgsP.css +1 -0
  447. package/web-ui/build/static/index-Z3yzqwSM.js +1248 -0
  448. package/web-ui/build/static/index-Z3yzqwSM.js.map +1 -0
  449. package/web-ui/build/static/index-u6goNp7m.js +14 -0
  450. package/web-ui/build/static/index-u6goNp7m.js.map +1 -0
  451. package/web-ui/build/static/inform7-BQlCLtCm.js +2 -0
  452. package/web-ui/build/static/inform7-BQlCLtCm.js.map +1 -0
  453. package/web-ui/build/static/inform7-eq3-Fu4X.js +2 -0
  454. package/web-ui/build/static/inform7-eq3-Fu4X.js.map +1 -0
  455. package/web-ui/build/static/ini-4su4UdAy.js +2 -0
  456. package/web-ui/build/static/ini-4su4UdAy.js.map +1 -0
  457. package/web-ui/build/static/ini-Vyi-KSKC.js +2 -0
  458. package/web-ui/build/static/ini-Vyi-KSKC.js.map +1 -0
  459. package/web-ui/build/static/io-cREOEA8o.js +2 -0
  460. package/web-ui/build/static/io-cREOEA8o.js.map +1 -0
  461. package/web-ui/build/static/irpf90-DEAFhQEl.js +2 -0
  462. package/web-ui/build/static/irpf90-DEAFhQEl.js.map +1 -0
  463. package/web-ui/build/static/isbl-B2bb5fgJ.js +2 -0
  464. package/web-ui/build/static/isbl-B2bb5fgJ.js.map +1 -0
  465. package/web-ui/build/static/j-BcTA9QW3.js +2 -0
  466. package/web-ui/build/static/j-BcTA9QW3.js.map +1 -0
  467. package/web-ui/build/static/java-BzxB4j1l.js +2 -0
  468. package/web-ui/build/static/java-BzxB4j1l.js.map +1 -0
  469. package/web-ui/build/static/java-lGU8kY_-.js +2 -0
  470. package/web-ui/build/static/java-lGU8kY_-.js.map +1 -0
  471. package/web-ui/build/static/javadoc-CwVjo-bv.js +2 -0
  472. package/web-ui/build/static/javadoc-CwVjo-bv.js.map +1 -0
  473. package/web-ui/build/static/javadoclike-XVK-uaom.js +2 -0
  474. package/web-ui/build/static/javadoclike-XVK-uaom.js.map +1 -0
  475. package/web-ui/build/static/javascript-Bg4NuaWU.js +2 -0
  476. package/web-ui/build/static/javascript-Bg4NuaWU.js.map +1 -0
  477. package/web-ui/build/static/javascript-Cn0o5KaO.js +2 -0
  478. package/web-ui/build/static/javascript-Cn0o5KaO.js.map +1 -0
  479. package/web-ui/build/static/javastacktrace-Dgm-FqbS.js +2 -0
  480. package/web-ui/build/static/javastacktrace-Dgm-FqbS.js.map +1 -0
  481. package/web-ui/build/static/jboss-cli-Bpo3Ld2C.js +2 -0
  482. package/web-ui/build/static/jboss-cli-Bpo3Ld2C.js.map +1 -0
  483. package/web-ui/build/static/jexl-Dds9NEdz.js +2 -0
  484. package/web-ui/build/static/jexl-Dds9NEdz.js.map +1 -0
  485. package/web-ui/build/static/jolie-BIPNQTvN.js +2 -0
  486. package/web-ui/build/static/jolie-BIPNQTvN.js.map +1 -0
  487. package/web-ui/build/static/jq-CkL1VUPV.js +2 -0
  488. package/web-ui/build/static/jq-CkL1VUPV.js.map +1 -0
  489. package/web-ui/build/static/js-extras-CVhrFzJp.js +2 -0
  490. package/web-ui/build/static/js-extras-CVhrFzJp.js.map +1 -0
  491. package/web-ui/build/static/js-templates-Dp448QdB.js +2 -0
  492. package/web-ui/build/static/js-templates-Dp448QdB.js.map +1 -0
  493. package/web-ui/build/static/jsdoc-BtWQfZav.js +2 -0
  494. package/web-ui/build/static/jsdoc-BtWQfZav.js.map +1 -0
  495. package/web-ui/build/static/json-BDq68koc.js +2 -0
  496. package/web-ui/build/static/json-BDq68koc.js.map +1 -0
  497. package/web-ui/build/static/json-BUjku8kP.js +2 -0
  498. package/web-ui/build/static/json-BUjku8kP.js.map +1 -0
  499. package/web-ui/build/static/json5-S0r0gFFg.js +2 -0
  500. package/web-ui/build/static/json5-S0r0gFFg.js.map +1 -0
  501. package/web-ui/build/static/jsonp-C3L6llwx.js +2 -0
  502. package/web-ui/build/static/jsonp-C3L6llwx.js.map +1 -0
  503. package/web-ui/build/static/jsstacktrace-B2wj7mGI.js +2 -0
  504. package/web-ui/build/static/jsstacktrace-B2wj7mGI.js.map +1 -0
  505. package/web-ui/build/static/jsx-Bf9rCpb9.js +2 -0
  506. package/web-ui/build/static/jsx-Bf9rCpb9.js.map +1 -0
  507. package/web-ui/build/static/julia-CArgWk8G.js +2 -0
  508. package/web-ui/build/static/julia-CArgWk8G.js.map +1 -0
  509. package/web-ui/build/static/julia-repl-BtDcQ2Ic.js +2 -0
  510. package/web-ui/build/static/julia-repl-BtDcQ2Ic.js.map +1 -0
  511. package/web-ui/build/static/julia-yzQYi_0p.js +2 -0
  512. package/web-ui/build/static/julia-yzQYi_0p.js.map +1 -0
  513. package/web-ui/build/static/keepalived-D1JW6F4g.js +2 -0
  514. package/web-ui/build/static/keepalived-D1JW6F4g.js.map +1 -0
  515. package/web-ui/build/static/keyman-BLJFDpvc.js +2 -0
  516. package/web-ui/build/static/keyman-BLJFDpvc.js.map +1 -0
  517. package/web-ui/build/static/kotlin-81QTppC2.js +2 -0
  518. package/web-ui/build/static/kotlin-81QTppC2.js.map +1 -0
  519. package/web-ui/build/static/kotlin-JJiPKQey.js +2 -0
  520. package/web-ui/build/static/kotlin-JJiPKQey.js.map +1 -0
  521. package/web-ui/build/static/kumir-CckpFPkJ.js +2 -0
  522. package/web-ui/build/static/kumir-CckpFPkJ.js.map +1 -0
  523. package/web-ui/build/static/kusto-v3RvJfYj.js +2 -0
  524. package/web-ui/build/static/kusto-v3RvJfYj.js.map +1 -0
  525. package/web-ui/build/static/lasso-DHPAOHJh.js +2 -0
  526. package/web-ui/build/static/lasso-DHPAOHJh.js.map +1 -0
  527. package/web-ui/build/static/latex-6d2h-2ui.js +2 -0
  528. package/web-ui/build/static/latex-6d2h-2ui.js.map +1 -0
  529. package/web-ui/build/static/latex-DMftq-de.js +2 -0
  530. package/web-ui/build/static/latex-DMftq-de.js.map +1 -0
  531. package/web-ui/build/static/latte-BjJy943P.js +2 -0
  532. package/web-ui/build/static/latte-BjJy943P.js.map +1 -0
  533. package/web-ui/build/static/ldif-BnOSPC7n.js +2 -0
  534. package/web-ui/build/static/ldif-BnOSPC7n.js.map +1 -0
  535. package/web-ui/build/static/leaf-9AykRwXa.js +2 -0
  536. package/web-ui/build/static/leaf-9AykRwXa.js.map +1 -0
  537. package/web-ui/build/static/less-B8iajXeG.js +2 -0
  538. package/web-ui/build/static/less-B8iajXeG.js.map +1 -0
  539. package/web-ui/build/static/less-BWSY9EyE.js +2 -0
  540. package/web-ui/build/static/less-BWSY9EyE.js.map +1 -0
  541. package/web-ui/build/static/lilypond-C4co0TPs.js +2 -0
  542. package/web-ui/build/static/lilypond-C4co0TPs.js.map +1 -0
  543. package/web-ui/build/static/liquid-BDYkcgad.js +2 -0
  544. package/web-ui/build/static/liquid-BDYkcgad.js.map +1 -0
  545. package/web-ui/build/static/lisp-CVmuCtmx.js +2 -0
  546. package/web-ui/build/static/lisp-CVmuCtmx.js.map +1 -0
  547. package/web-ui/build/static/lisp-Ch4yAdNs.js +2 -0
  548. package/web-ui/build/static/lisp-Ch4yAdNs.js.map +1 -0
  549. package/web-ui/build/static/livecodeserver-orAMd3qf.js +2 -0
  550. package/web-ui/build/static/livecodeserver-orAMd3qf.js.map +1 -0
  551. package/web-ui/build/static/livescript-CUxtoRDV.js +2 -0
  552. package/web-ui/build/static/livescript-CUxtoRDV.js.map +1 -0
  553. package/web-ui/build/static/livescript-MM8af6u6.js +2 -0
  554. package/web-ui/build/static/livescript-MM8af6u6.js.map +1 -0
  555. package/web-ui/build/static/llvm-BcjUM7yI.js +2 -0
  556. package/web-ui/build/static/llvm-BcjUM7yI.js.map +1 -0
  557. package/web-ui/build/static/llvm-GlARBvKB.js +2 -0
  558. package/web-ui/build/static/llvm-GlARBvKB.js.map +1 -0
  559. package/web-ui/build/static/log-B4zvaowe.js +2 -0
  560. package/web-ui/build/static/log-B4zvaowe.js.map +1 -0
  561. package/web-ui/build/static/lolcode-DQ7YKI14.js +2 -0
  562. package/web-ui/build/static/lolcode-DQ7YKI14.js.map +1 -0
  563. package/web-ui/build/static/lsl-D-PYzrLj.js +2 -0
  564. package/web-ui/build/static/lsl-D-PYzrLj.js.map +1 -0
  565. package/web-ui/build/static/lua-DSmBmn6n.js +2 -0
  566. package/web-ui/build/static/lua-DSmBmn6n.js.map +1 -0
  567. package/web-ui/build/static/lua-aQfMvZ8s.js +2 -0
  568. package/web-ui/build/static/lua-aQfMvZ8s.js.map +1 -0
  569. package/web-ui/build/static/magma-DPDnXrRW.js +2 -0
  570. package/web-ui/build/static/magma-DPDnXrRW.js.map +1 -0
  571. package/web-ui/build/static/makefile-C6WNNyDV.js +2 -0
  572. package/web-ui/build/static/makefile-C6WNNyDV.js.map +1 -0
  573. package/web-ui/build/static/makefile-CDeGikr3.js +2 -0
  574. package/web-ui/build/static/makefile-CDeGikr3.js.map +1 -0
  575. package/web-ui/build/static/markdown-B1rSRMwm.js +2 -0
  576. package/web-ui/build/static/markdown-B1rSRMwm.js.map +1 -0
  577. package/web-ui/build/static/markdown-C6ib1fAR.js +2 -0
  578. package/web-ui/build/static/markdown-C6ib1fAR.js.map +1 -0
  579. package/web-ui/build/static/markup-DtVZGlRL.js +2 -0
  580. package/web-ui/build/static/markup-DtVZGlRL.js.map +1 -0
  581. package/web-ui/build/static/markup-templating-V0gg4i55.js +2 -0
  582. package/web-ui/build/static/markup-templating-V0gg4i55.js.map +1 -0
  583. package/web-ui/build/static/mathematica-LHn4_HLi.js +2 -0
  584. package/web-ui/build/static/mathematica-LHn4_HLi.js.map +1 -0
  585. package/web-ui/build/static/matlab-DVZuEEgZ.js +2 -0
  586. package/web-ui/build/static/matlab-DVZuEEgZ.js.map +1 -0
  587. package/web-ui/build/static/matlab-D_x-HxkR.js +2 -0
  588. package/web-ui/build/static/matlab-D_x-HxkR.js.map +1 -0
  589. package/web-ui/build/static/maxima-CjPAyFkj.js +2 -0
  590. package/web-ui/build/static/maxima-CjPAyFkj.js.map +1 -0
  591. package/web-ui/build/static/maxscript-xoJaLO4t.js +2 -0
  592. package/web-ui/build/static/maxscript-xoJaLO4t.js.map +1 -0
  593. package/web-ui/build/static/mel-Bfau7mRz.js +2 -0
  594. package/web-ui/build/static/mel-Bfau7mRz.js.map +1 -0
  595. package/web-ui/build/static/mel-bgbdOUYk.js +2 -0
  596. package/web-ui/build/static/mel-bgbdOUYk.js.map +1 -0
  597. package/web-ui/build/static/mercury-DS3T1hhG.js +2 -0
  598. package/web-ui/build/static/mercury-DS3T1hhG.js.map +1 -0
  599. package/web-ui/build/static/mermaid-BijvCuRH.js +2 -0
  600. package/web-ui/build/static/mermaid-BijvCuRH.js.map +1 -0
  601. package/web-ui/build/static/mipsasm-D3InDFob.js +2 -0
  602. package/web-ui/build/static/mipsasm-D3InDFob.js.map +1 -0
  603. package/web-ui/build/static/mizar--ggqnf4F.js +2 -0
  604. package/web-ui/build/static/mizar--ggqnf4F.js.map +1 -0
  605. package/web-ui/build/static/mizar-B_kmn3et.js +2 -0
  606. package/web-ui/build/static/mizar-B_kmn3et.js.map +1 -0
  607. package/web-ui/build/static/mojolicious-bcOmiLM2.js +2 -0
  608. package/web-ui/build/static/mojolicious-bcOmiLM2.js.map +1 -0
  609. package/web-ui/build/static/mongodb-BPac3Mz_.js +2 -0
  610. package/web-ui/build/static/mongodb-BPac3Mz_.js.map +1 -0
  611. package/web-ui/build/static/monkey-BKD0nteL.js +2 -0
  612. package/web-ui/build/static/monkey-BKD0nteL.js.map +1 -0
  613. package/web-ui/build/static/monkey-BmbhmOX_.js +2 -0
  614. package/web-ui/build/static/monkey-BmbhmOX_.js.map +1 -0
  615. package/web-ui/build/static/moonscript-BCSmE_te.js +2 -0
  616. package/web-ui/build/static/moonscript-BCSmE_te.js.map +1 -0
  617. package/web-ui/build/static/moonscript-vs8h0Jki.js +2 -0
  618. package/web-ui/build/static/moonscript-vs8h0Jki.js.map +1 -0
  619. package/web-ui/build/static/n1ql-DOTVgCMn.js +2 -0
  620. package/web-ui/build/static/n1ql-DOTVgCMn.js.map +1 -0
  621. package/web-ui/build/static/n1ql-kzK9uNdc.js +2 -0
  622. package/web-ui/build/static/n1ql-kzK9uNdc.js.map +1 -0
  623. package/web-ui/build/static/n4js-DVmYUlTn.js +2 -0
  624. package/web-ui/build/static/n4js-DVmYUlTn.js.map +1 -0
  625. package/web-ui/build/static/nand2tetris-hdl-bkY_BvT2.js +2 -0
  626. package/web-ui/build/static/nand2tetris-hdl-bkY_BvT2.js.map +1 -0
  627. package/web-ui/build/static/naniscript-D2t6sMlP.js +2 -0
  628. package/web-ui/build/static/naniscript-D2t6sMlP.js.map +1 -0
  629. package/web-ui/build/static/nasm-BLSmZGlN.js +2 -0
  630. package/web-ui/build/static/nasm-BLSmZGlN.js.map +1 -0
  631. package/web-ui/build/static/neon-BAN5cxGp.js +2 -0
  632. package/web-ui/build/static/neon-BAN5cxGp.js.map +1 -0
  633. package/web-ui/build/static/nevod-Cz4gGOlU.js +2 -0
  634. package/web-ui/build/static/nevod-Cz4gGOlU.js.map +1 -0
  635. package/web-ui/build/static/nginx-CT0qrPbD.js +2 -0
  636. package/web-ui/build/static/nginx-CT0qrPbD.js.map +1 -0
  637. package/web-ui/build/static/nginx-DC0LaV-N.js +2 -0
  638. package/web-ui/build/static/nginx-DC0LaV-N.js.map +1 -0
  639. package/web-ui/build/static/nim-B_xOVWDt.js +2 -0
  640. package/web-ui/build/static/nim-B_xOVWDt.js.map +1 -0
  641. package/web-ui/build/static/nim-if73Jqy4.js +2 -0
  642. package/web-ui/build/static/nim-if73Jqy4.js.map +1 -0
  643. package/web-ui/build/static/nix-B6rGw2Wr.js +2 -0
  644. package/web-ui/build/static/nix-B6rGw2Wr.js.map +1 -0
  645. package/web-ui/build/static/nix-DIdjmlZ6.js +2 -0
  646. package/web-ui/build/static/nix-DIdjmlZ6.js.map +1 -0
  647. package/web-ui/build/static/node-repl-B1ES3pay.js +2 -0
  648. package/web-ui/build/static/node-repl-B1ES3pay.js.map +1 -0
  649. package/web-ui/build/static/nsis-BFRqZXCA.js +2 -0
  650. package/web-ui/build/static/nsis-BFRqZXCA.js.map +1 -0
  651. package/web-ui/build/static/nsis-Ba4YllFm.js +2 -0
  652. package/web-ui/build/static/nsis-Ba4YllFm.js.map +1 -0
  653. package/web-ui/build/static/objectivec-BxEZsjKj.js +2 -0
  654. package/web-ui/build/static/objectivec-BxEZsjKj.js.map +1 -0
  655. package/web-ui/build/static/objectivec-DyEJWr7T.js +2 -0
  656. package/web-ui/build/static/objectivec-DyEJWr7T.js.map +1 -0
  657. package/web-ui/build/static/ocaml-BZLhoEBj.js +2 -0
  658. package/web-ui/build/static/ocaml-BZLhoEBj.js.map +1 -0
  659. package/web-ui/build/static/ocaml-Xt0ZQw7e.js +2 -0
  660. package/web-ui/build/static/ocaml-Xt0ZQw7e.js.map +1 -0
  661. package/web-ui/build/static/opencl-BgEBP0EM.js +2 -0
  662. package/web-ui/build/static/opencl-BgEBP0EM.js.map +1 -0
  663. package/web-ui/build/static/openqasm-D6BniJ6L.js +2 -0
  664. package/web-ui/build/static/openqasm-D6BniJ6L.js.map +1 -0
  665. package/web-ui/build/static/openscad-Cm9pSOJx.js +2 -0
  666. package/web-ui/build/static/openscad-Cm9pSOJx.js.map +1 -0
  667. package/web-ui/build/static/oxygene-Bp2e80jA.js +2 -0
  668. package/web-ui/build/static/oxygene-Bp2e80jA.js.map +1 -0
  669. package/web-ui/build/static/oz-1fZed9Ln.js +2 -0
  670. package/web-ui/build/static/oz-1fZed9Ln.js.map +1 -0
  671. package/web-ui/build/static/parigp-BAPr0f7r.js +2 -0
  672. package/web-ui/build/static/parigp-BAPr0f7r.js.map +1 -0
  673. package/web-ui/build/static/parser-BQefhI1K.js +2 -0
  674. package/web-ui/build/static/parser-BQefhI1K.js.map +1 -0
  675. package/web-ui/build/static/parser3-elGJSu38.js +2 -0
  676. package/web-ui/build/static/parser3-elGJSu38.js.map +1 -0
  677. package/web-ui/build/static/pascal-CCnW1a0e.js +2 -0
  678. package/web-ui/build/static/pascal-CCnW1a0e.js.map +1 -0
  679. package/web-ui/build/static/pascaligo-CfEaz3yw.js +2 -0
  680. package/web-ui/build/static/pascaligo-CfEaz3yw.js.map +1 -0
  681. package/web-ui/build/static/pcaxis-BDCPPp1_.js +2 -0
  682. package/web-ui/build/static/pcaxis-BDCPPp1_.js.map +1 -0
  683. package/web-ui/build/static/peoplecode-DuGFL0lj.js +2 -0
  684. package/web-ui/build/static/peoplecode-DuGFL0lj.js.map +1 -0
  685. package/web-ui/build/static/perl-BXE6y_xS.js +2 -0
  686. package/web-ui/build/static/perl-BXE6y_xS.js.map +1 -0
  687. package/web-ui/build/static/perl-C_SoFYMv.js +2 -0
  688. package/web-ui/build/static/perl-C_SoFYMv.js.map +1 -0
  689. package/web-ui/build/static/pf-CGlU52CJ.js +2 -0
  690. package/web-ui/build/static/pf-CGlU52CJ.js.map +1 -0
  691. package/web-ui/build/static/pgsql-BlS6GjvG.js +2 -0
  692. package/web-ui/build/static/pgsql-BlS6GjvG.js.map +1 -0
  693. package/web-ui/build/static/php-CdPJ1RGl.js +2 -0
  694. package/web-ui/build/static/php-CdPJ1RGl.js.map +1 -0
  695. package/web-ui/build/static/php-Dcv7SuDT.js +2 -0
  696. package/web-ui/build/static/php-Dcv7SuDT.js.map +1 -0
  697. package/web-ui/build/static/php-extras-DwytT292.js +2 -0
  698. package/web-ui/build/static/php-extras-DwytT292.js.map +1 -0
  699. package/web-ui/build/static/php-template-kKqbhHCA.js +2 -0
  700. package/web-ui/build/static/php-template-kKqbhHCA.js.map +1 -0
  701. package/web-ui/build/static/phpdoc-E5fokUFs.js +2 -0
  702. package/web-ui/build/static/phpdoc-E5fokUFs.js.map +1 -0
  703. package/web-ui/build/static/plaintext-Ct4oE1X4.js +2 -0
  704. package/web-ui/build/static/plaintext-Ct4oE1X4.js.map +1 -0
  705. package/web-ui/build/static/plsql-CWnqoHPE.js +2 -0
  706. package/web-ui/build/static/plsql-CWnqoHPE.js.map +1 -0
  707. package/web-ui/build/static/pony-BaPZQfNU.js +2 -0
  708. package/web-ui/build/static/pony-BaPZQfNU.js.map +1 -0
  709. package/web-ui/build/static/powerquery-C3tXJ2uI.js +2 -0
  710. package/web-ui/build/static/powerquery-C3tXJ2uI.js.map +1 -0
  711. package/web-ui/build/static/powershell-BbPdPSAP.js +2 -0
  712. package/web-ui/build/static/powershell-BbPdPSAP.js.map +1 -0
  713. package/web-ui/build/static/powershell-BcEpDYE4.js +2 -0
  714. package/web-ui/build/static/powershell-BcEpDYE4.js.map +1 -0
  715. package/web-ui/build/static/processing-B0NH30lD.js +2 -0
  716. package/web-ui/build/static/processing-B0NH30lD.js.map +1 -0
  717. package/web-ui/build/static/processing-BFZpjn5e.js +2 -0
  718. package/web-ui/build/static/processing-BFZpjn5e.js.map +1 -0
  719. package/web-ui/build/static/profile-BKNJ_gOd.js +2 -0
  720. package/web-ui/build/static/profile-BKNJ_gOd.js.map +1 -0
  721. package/web-ui/build/static/prolog-Cr5pilQw.js +2 -0
  722. package/web-ui/build/static/prolog-Cr5pilQw.js.map +1 -0
  723. package/web-ui/build/static/prolog-JeNf1WYx.js +2 -0
  724. package/web-ui/build/static/prolog-JeNf1WYx.js.map +1 -0
  725. package/web-ui/build/static/promql-CWoWIhDz.js +2 -0
  726. package/web-ui/build/static/promql-CWoWIhDz.js.map +1 -0
  727. package/web-ui/build/static/properties-35Yy38Ve.js +2 -0
  728. package/web-ui/build/static/properties-35Yy38Ve.js.map +1 -0
  729. package/web-ui/build/static/properties-DXXZ61tT.js +2 -0
  730. package/web-ui/build/static/properties-DXXZ61tT.js.map +1 -0
  731. package/web-ui/build/static/protobuf-nFu9eDLU.js +2 -0
  732. package/web-ui/build/static/protobuf-nFu9eDLU.js.map +1 -0
  733. package/web-ui/build/static/protobuf-yoE2i3OP.js +2 -0
  734. package/web-ui/build/static/protobuf-yoE2i3OP.js.map +1 -0
  735. package/web-ui/build/static/psl-CAKNhaVI.js +2 -0
  736. package/web-ui/build/static/psl-CAKNhaVI.js.map +1 -0
  737. package/web-ui/build/static/pug-CI8RwSHa.js +2 -0
  738. package/web-ui/build/static/pug-CI8RwSHa.js.map +1 -0
  739. package/web-ui/build/static/puppet-DR7az3Wf.js +2 -0
  740. package/web-ui/build/static/puppet-DR7az3Wf.js.map +1 -0
  741. package/web-ui/build/static/puppet-Dx6vC1u-.js +2 -0
  742. package/web-ui/build/static/puppet-Dx6vC1u-.js.map +1 -0
  743. package/web-ui/build/static/pure-BQ01lAOn.js +2 -0
  744. package/web-ui/build/static/pure-BQ01lAOn.js.map +1 -0
  745. package/web-ui/build/static/purebasic-ZsfLhMCb.js +2 -0
  746. package/web-ui/build/static/purebasic-ZsfLhMCb.js.map +1 -0
  747. package/web-ui/build/static/purebasic-xJ6LFMBz.js +2 -0
  748. package/web-ui/build/static/purebasic-xJ6LFMBz.js.map +1 -0
  749. package/web-ui/build/static/purescript-LajiG_jD.js +2 -0
  750. package/web-ui/build/static/purescript-LajiG_jD.js.map +1 -0
  751. package/web-ui/build/static/python-BFhspOyV.js +2 -0
  752. package/web-ui/build/static/python-BFhspOyV.js.map +1 -0
  753. package/web-ui/build/static/python-BtRrADJB.js +2 -0
  754. package/web-ui/build/static/python-BtRrADJB.js.map +1 -0
  755. package/web-ui/build/static/python-repl-DNW7xX3F.js +2 -0
  756. package/web-ui/build/static/python-repl-DNW7xX3F.js.map +1 -0
  757. package/web-ui/build/static/q-DImkSPDX.js +2 -0
  758. package/web-ui/build/static/q-DImkSPDX.js.map +1 -0
  759. package/web-ui/build/static/q-gc8CN775.js +2 -0
  760. package/web-ui/build/static/q-gc8CN775.js.map +1 -0
  761. package/web-ui/build/static/qml-ByOF3YcL.js +2 -0
  762. package/web-ui/build/static/qml-ByOF3YcL.js.map +1 -0
  763. package/web-ui/build/static/qml-DSXJgLbV.js +2 -0
  764. package/web-ui/build/static/qml-DSXJgLbV.js.map +1 -0
  765. package/web-ui/build/static/qore-Bnm9Q_tM.js +2 -0
  766. package/web-ui/build/static/qore-Bnm9Q_tM.js.map +1 -0
  767. package/web-ui/build/static/qsharp-Bwy4Obue.js +2 -0
  768. package/web-ui/build/static/qsharp-Bwy4Obue.js.map +1 -0
  769. package/web-ui/build/static/r-BkRGLx5M.js +2 -0
  770. package/web-ui/build/static/r-BkRGLx5M.js.map +1 -0
  771. package/web-ui/build/static/r-C6pP0_0c.js +2 -0
  772. package/web-ui/build/static/r-C6pP0_0c.js.map +1 -0
  773. package/web-ui/build/static/racket-QGJWcbA6.js +2 -0
  774. package/web-ui/build/static/racket-QGJWcbA6.js.map +1 -0
  775. package/web-ui/build/static/reason-9gny3QTi.js +2 -0
  776. package/web-ui/build/static/reason-9gny3QTi.js.map +1 -0
  777. package/web-ui/build/static/reasonml-DrLDPFZX.js +2 -0
  778. package/web-ui/build/static/reasonml-DrLDPFZX.js.map +1 -0
  779. package/web-ui/build/static/regex-qMRSM9QB.js +2 -0
  780. package/web-ui/build/static/regex-qMRSM9QB.js.map +1 -0
  781. package/web-ui/build/static/rego-DGuTf2b6.js +2 -0
  782. package/web-ui/build/static/rego-DGuTf2b6.js.map +1 -0
  783. package/web-ui/build/static/renpy-ChVyf5sZ.js +2 -0
  784. package/web-ui/build/static/renpy-ChVyf5sZ.js.map +1 -0
  785. package/web-ui/build/static/rest-BblHwMct.js +2 -0
  786. package/web-ui/build/static/rest-BblHwMct.js.map +1 -0
  787. package/web-ui/build/static/rib-CFlTDVqt.js +2 -0
  788. package/web-ui/build/static/rib-CFlTDVqt.js.map +1 -0
  789. package/web-ui/build/static/rip-LD_w9DSd.js +2 -0
  790. package/web-ui/build/static/rip-LD_w9DSd.js.map +1 -0
  791. package/web-ui/build/static/roboconf-Bu5NiP5d.js +2 -0
  792. package/web-ui/build/static/roboconf-Bu5NiP5d.js.map +1 -0
  793. package/web-ui/build/static/roboconf-C5bNJjuR.js +2 -0
  794. package/web-ui/build/static/roboconf-C5bNJjuR.js.map +1 -0
  795. package/web-ui/build/static/robotframework-2eDAxDTe.js +2 -0
  796. package/web-ui/build/static/robotframework-2eDAxDTe.js.map +1 -0
  797. package/web-ui/build/static/routeros-Ccon739j.js +2 -0
  798. package/web-ui/build/static/routeros-Ccon739j.js.map +1 -0
  799. package/web-ui/build/static/rsl-80tdnNlP.js +2 -0
  800. package/web-ui/build/static/rsl-80tdnNlP.js.map +1 -0
  801. package/web-ui/build/static/ruby-BdEyJsJD.js +2 -0
  802. package/web-ui/build/static/ruby-BdEyJsJD.js.map +1 -0
  803. package/web-ui/build/static/ruby-DRIP-eLy.js +2 -0
  804. package/web-ui/build/static/ruby-DRIP-eLy.js.map +1 -0
  805. package/web-ui/build/static/ruleslanguage-BPFhrfFe.js +2 -0
  806. package/web-ui/build/static/ruleslanguage-BPFhrfFe.js.map +1 -0
  807. package/web-ui/build/static/rust-DGOFHfWr.js +2 -0
  808. package/web-ui/build/static/rust-DGOFHfWr.js.map +1 -0
  809. package/web-ui/build/static/rust-sYhKMGAU.js +2 -0
  810. package/web-ui/build/static/rust-sYhKMGAU.js.map +1 -0
  811. package/web-ui/build/static/sas-C9jSKV7l.js +2 -0
  812. package/web-ui/build/static/sas-C9jSKV7l.js.map +1 -0
  813. package/web-ui/build/static/sas-Dw-kwTvd.js +2 -0
  814. package/web-ui/build/static/sas-Dw-kwTvd.js.map +1 -0
  815. package/web-ui/build/static/sass-QanR8d0y.js +2 -0
  816. package/web-ui/build/static/sass-QanR8d0y.js.map +1 -0
  817. package/web-ui/build/static/scala-B_41N8CK.js +2 -0
  818. package/web-ui/build/static/scala-B_41N8CK.js.map +1 -0
  819. package/web-ui/build/static/scala-NhaQtgfI.js +2 -0
  820. package/web-ui/build/static/scala-NhaQtgfI.js.map +1 -0
  821. package/web-ui/build/static/scheme-CdkFg8f2.js +2 -0
  822. package/web-ui/build/static/scheme-CdkFg8f2.js.map +1 -0
  823. package/web-ui/build/static/scheme-D8C6NMBk.js +2 -0
  824. package/web-ui/build/static/scheme-D8C6NMBk.js.map +1 -0
  825. package/web-ui/build/static/scilab-DwHPZxdA.js +2 -0
  826. package/web-ui/build/static/scilab-DwHPZxdA.js.map +1 -0
  827. package/web-ui/build/static/scss-DA3NwUoU.js +2 -0
  828. package/web-ui/build/static/scss-DA3NwUoU.js.map +1 -0
  829. package/web-ui/build/static/scss-xoahYycu.js +2 -0
  830. package/web-ui/build/static/scss-xoahYycu.js.map +1 -0
  831. package/web-ui/build/static/shell-BNCYooEv.js +2 -0
  832. package/web-ui/build/static/shell-BNCYooEv.js.map +1 -0
  833. package/web-ui/build/static/shell-session-BHivd8nO.js +2 -0
  834. package/web-ui/build/static/shell-session-BHivd8nO.js.map +1 -0
  835. package/web-ui/build/static/smali-CQLbUppv.js +2 -0
  836. package/web-ui/build/static/smali-CQLbUppv.js.map +1 -0
  837. package/web-ui/build/static/smali-DfUCwm0R.js +2 -0
  838. package/web-ui/build/static/smali-DfUCwm0R.js.map +1 -0
  839. package/web-ui/build/static/smalltalk-Bwy3_s-9.js +2 -0
  840. package/web-ui/build/static/smalltalk-Bwy3_s-9.js.map +1 -0
  841. package/web-ui/build/static/smalltalk-DUE0NAtJ.js +2 -0
  842. package/web-ui/build/static/smalltalk-DUE0NAtJ.js.map +1 -0
  843. package/web-ui/build/static/smarty-DbGvc9xG.js +2 -0
  844. package/web-ui/build/static/smarty-DbGvc9xG.js.map +1 -0
  845. package/web-ui/build/static/sml-CI5EQ0Qu.js +2 -0
  846. package/web-ui/build/static/sml-CI5EQ0Qu.js.map +1 -0
  847. package/web-ui/build/static/sml-DSxIexhe.js +2 -0
  848. package/web-ui/build/static/sml-DSxIexhe.js.map +1 -0
  849. package/web-ui/build/static/solidity-DCMKFdNo.js +2 -0
  850. package/web-ui/build/static/solidity-DCMKFdNo.js.map +1 -0
  851. package/web-ui/build/static/solution-file-NT8KtQ-w.js +2 -0
  852. package/web-ui/build/static/solution-file-NT8KtQ-w.js.map +1 -0
  853. package/web-ui/build/static/soy-B110XdmA.js +2 -0
  854. package/web-ui/build/static/soy-B110XdmA.js.map +1 -0
  855. package/web-ui/build/static/sparql-BxnUbvHo.js +2 -0
  856. package/web-ui/build/static/sparql-BxnUbvHo.js.map +1 -0
  857. package/web-ui/build/static/splunk-spl-pwxmjPEj.js +2 -0
  858. package/web-ui/build/static/splunk-spl-pwxmjPEj.js.map +1 -0
  859. package/web-ui/build/static/sqf-BXo2Ucnl.js +2 -0
  860. package/web-ui/build/static/sqf-BXo2Ucnl.js.map +1 -0
  861. package/web-ui/build/static/sqf-DOFfGLF3.js +2 -0
  862. package/web-ui/build/static/sqf-DOFfGLF3.js.map +1 -0
  863. package/web-ui/build/static/sql-DBti3yHe.js +2 -0
  864. package/web-ui/build/static/sql-DBti3yHe.js.map +1 -0
  865. package/web-ui/build/static/sql-tKjJECQp.js +2 -0
  866. package/web-ui/build/static/sql-tKjJECQp.js.map +1 -0
  867. package/web-ui/build/static/sql_more-e8p64rgQ.js +2 -0
  868. package/web-ui/build/static/sql_more-e8p64rgQ.js.map +1 -0
  869. package/web-ui/build/static/squirrel-BgryDToh.js +2 -0
  870. package/web-ui/build/static/squirrel-BgryDToh.js.map +1 -0
  871. package/web-ui/build/static/stan-Bp3Ji6gl.js +2 -0
  872. package/web-ui/build/static/stan-Bp3Ji6gl.js.map +1 -0
  873. package/web-ui/build/static/stan-KiJ_x44p.js +2 -0
  874. package/web-ui/build/static/stan-KiJ_x44p.js.map +1 -0
  875. package/web-ui/build/static/stata-Ct8C8WO9.js +2 -0
  876. package/web-ui/build/static/stata-Ct8C8WO9.js.map +1 -0
  877. package/web-ui/build/static/step21-DMjDkTBx.js +2 -0
  878. package/web-ui/build/static/step21-DMjDkTBx.js.map +1 -0
  879. package/web-ui/build/static/stylus-CmKvhQaT.js +2 -0
  880. package/web-ui/build/static/stylus-CmKvhQaT.js.map +1 -0
  881. package/web-ui/build/static/stylus-DBi1AjDZ.js +2 -0
  882. package/web-ui/build/static/stylus-DBi1AjDZ.js.map +1 -0
  883. package/web-ui/build/static/subunit-DfUk55-B.js +2 -0
  884. package/web-ui/build/static/subunit-DfUk55-B.js.map +1 -0
  885. package/web-ui/build/static/swift-B_SThX1_.js +2 -0
  886. package/web-ui/build/static/swift-B_SThX1_.js.map +1 -0
  887. package/web-ui/build/static/swift-DlYKJDzH.js +2 -0
  888. package/web-ui/build/static/swift-DlYKJDzH.js.map +1 -0
  889. package/web-ui/build/static/systemd-BQk3UqOg.js +2 -0
  890. package/web-ui/build/static/systemd-BQk3UqOg.js.map +1 -0
  891. package/web-ui/build/static/t4-cs-CLhFWwmv.js +2 -0
  892. package/web-ui/build/static/t4-cs-CLhFWwmv.js.map +1 -0
  893. package/web-ui/build/static/t4-templating-9ygezJzV.js +2 -0
  894. package/web-ui/build/static/t4-templating-9ygezJzV.js.map +1 -0
  895. package/web-ui/build/static/t4-vb-B17jU_4m.js +2 -0
  896. package/web-ui/build/static/t4-vb-B17jU_4m.js.map +1 -0
  897. package/web-ui/build/static/taggerscript-DFTkn-cd.js +2 -0
  898. package/web-ui/build/static/taggerscript-DFTkn-cd.js.map +1 -0
  899. package/web-ui/build/static/tap-DiTGXlEA.js +2 -0
  900. package/web-ui/build/static/tap-DiTGXlEA.js.map +1 -0
  901. package/web-ui/build/static/tap-ytAGuQzI.js +2 -0
  902. package/web-ui/build/static/tap-ytAGuQzI.js.map +1 -0
  903. package/web-ui/build/static/tcl-B8fFBHry.js +2 -0
  904. package/web-ui/build/static/tcl-B8fFBHry.js.map +1 -0
  905. package/web-ui/build/static/tcl-D8AopmOP.js +2 -0
  906. package/web-ui/build/static/tcl-D8AopmOP.js.map +1 -0
  907. package/web-ui/build/static/textile-COphc5sd.js +2 -0
  908. package/web-ui/build/static/textile-COphc5sd.js.map +1 -0
  909. package/web-ui/build/static/thrift-DZ7DTn1f.js +2 -0
  910. package/web-ui/build/static/thrift-DZ7DTn1f.js.map +1 -0
  911. package/web-ui/build/static/toml-DTUiF9Km.js +2 -0
  912. package/web-ui/build/static/toml-DTUiF9Km.js.map +1 -0
  913. package/web-ui/build/static/tp-CE4XvH5p.js +2 -0
  914. package/web-ui/build/static/tp-CE4XvH5p.js.map +1 -0
  915. package/web-ui/build/static/tremor-C77yMHA3.js +2 -0
  916. package/web-ui/build/static/tremor-C77yMHA3.js.map +1 -0
  917. package/web-ui/build/static/tsx-C7MW58r5.js +2 -0
  918. package/web-ui/build/static/tsx-C7MW58r5.js.map +1 -0
  919. package/web-ui/build/static/tt2-5O1-qC4O.js +2 -0
  920. package/web-ui/build/static/tt2-5O1-qC4O.js.map +1 -0
  921. package/web-ui/build/static/turtle-BSGDucZJ.js +2 -0
  922. package/web-ui/build/static/turtle-BSGDucZJ.js.map +1 -0
  923. package/web-ui/build/static/twig-Ck8WO3xA.js +2 -0
  924. package/web-ui/build/static/twig-Ck8WO3xA.js.map +1 -0
  925. package/web-ui/build/static/twig-do5vUUyw.js +2 -0
  926. package/web-ui/build/static/twig-do5vUUyw.js.map +1 -0
  927. package/web-ui/build/static/typescript-BLsAxuVG.js +2 -0
  928. package/web-ui/build/static/typescript-BLsAxuVG.js.map +1 -0
  929. package/web-ui/build/static/typescript-nM_dxKP9.js +2 -0
  930. package/web-ui/build/static/typescript-nM_dxKP9.js.map +1 -0
  931. package/web-ui/build/static/typoscript-BvcgqSqY.js +2 -0
  932. package/web-ui/build/static/typoscript-BvcgqSqY.js.map +1 -0
  933. package/web-ui/build/static/unrealscript-CTWC-bVY.js +2 -0
  934. package/web-ui/build/static/unrealscript-CTWC-bVY.js.map +1 -0
  935. package/web-ui/build/static/uorazor-Dilz5RNV.js +2 -0
  936. package/web-ui/build/static/uorazor-Dilz5RNV.js.map +1 -0
  937. package/web-ui/build/static/uri-Bmls2-DT.js +2 -0
  938. package/web-ui/build/static/uri-Bmls2-DT.js.map +1 -0
  939. package/web-ui/build/static/v-BgLQ9Ycc.js +2 -0
  940. package/web-ui/build/static/v-BgLQ9Ycc.js.map +1 -0
  941. package/web-ui/build/static/vala-Cm3y_G3H.js +2 -0
  942. package/web-ui/build/static/vala-Cm3y_G3H.js.map +1 -0
  943. package/web-ui/build/static/vala-TZsbQ-Zc.js +2 -0
  944. package/web-ui/build/static/vala-TZsbQ-Zc.js.map +1 -0
  945. package/web-ui/build/static/vbnet-CUR-ZLCX.js +2 -0
  946. package/web-ui/build/static/vbnet-CUR-ZLCX.js.map +1 -0
  947. package/web-ui/build/static/vbnet-DSoNQ2XW.js +2 -0
  948. package/web-ui/build/static/vbnet-DSoNQ2XW.js.map +1 -0
  949. package/web-ui/build/static/vbscript-BartKsJT.js +2 -0
  950. package/web-ui/build/static/vbscript-BartKsJT.js.map +1 -0
  951. package/web-ui/build/static/vbscript-html-0hiakhFr.js +2 -0
  952. package/web-ui/build/static/vbscript-html-0hiakhFr.js.map +1 -0
  953. package/web-ui/build/static/velocity-D3j90RKr.js +2 -0
  954. package/web-ui/build/static/velocity-D3j90RKr.js.map +1 -0
  955. package/web-ui/build/static/verilog-Cq1a8DdU.js +2 -0
  956. package/web-ui/build/static/verilog-Cq1a8DdU.js.map +1 -0
  957. package/web-ui/build/static/verilog-OBAeWcRM.js +2 -0
  958. package/web-ui/build/static/verilog-OBAeWcRM.js.map +1 -0
  959. package/web-ui/build/static/vhdl-CtePii6W.js +2 -0
  960. package/web-ui/build/static/vhdl-CtePii6W.js.map +1 -0
  961. package/web-ui/build/static/vhdl-DxAm5hhA.js +2 -0
  962. package/web-ui/build/static/vhdl-DxAm5hhA.js.map +1 -0
  963. package/web-ui/build/static/vim-Bnpwnm1H.js +2 -0
  964. package/web-ui/build/static/vim-Bnpwnm1H.js.map +1 -0
  965. package/web-ui/build/static/vim-DOPRcHbu.js +2 -0
  966. package/web-ui/build/static/vim-DOPRcHbu.js.map +1 -0
  967. package/web-ui/build/static/visual-basic-CmvWs8Y4.js +2 -0
  968. package/web-ui/build/static/visual-basic-CmvWs8Y4.js.map +1 -0
  969. package/web-ui/build/static/warpscript-C7JXAeCX.js +2 -0
  970. package/web-ui/build/static/warpscript-C7JXAeCX.js.map +1 -0
  971. package/web-ui/build/static/wasm-Dg1iRB1P.js +2 -0
  972. package/web-ui/build/static/wasm-Dg1iRB1P.js.map +1 -0
  973. package/web-ui/build/static/web-idl-312gICJ_.js +2 -0
  974. package/web-ui/build/static/web-idl-312gICJ_.js.map +1 -0
  975. package/web-ui/build/static/wiki-CETWrb77.js +2 -0
  976. package/web-ui/build/static/wiki-CETWrb77.js.map +1 -0
  977. package/web-ui/build/static/wolfram-CChr8eAu.js +2 -0
  978. package/web-ui/build/static/wolfram-CChr8eAu.js.map +1 -0
  979. package/web-ui/build/static/wren-CNDfGy-a.js +2 -0
  980. package/web-ui/build/static/wren-CNDfGy-a.js.map +1 -0
  981. package/web-ui/build/static/x86asm-KOsBAi6G.js +2 -0
  982. package/web-ui/build/static/x86asm-KOsBAi6G.js.map +1 -0
  983. package/web-ui/build/static/xeora-DiFTTjrx.js +2 -0
  984. package/web-ui/build/static/xeora-DiFTTjrx.js.map +1 -0
  985. package/web-ui/build/static/xl-C4U3E450.js +2 -0
  986. package/web-ui/build/static/xl-C4U3E450.js.map +1 -0
  987. package/web-ui/build/static/xml-XTmTOewe.js +2 -0
  988. package/web-ui/build/static/xml-XTmTOewe.js.map +1 -0
  989. package/web-ui/build/static/xml-doc-BWJd7KnA.js +2 -0
  990. package/web-ui/build/static/xml-doc-BWJd7KnA.js.map +1 -0
  991. package/web-ui/build/static/xojo-DGqISLW2.js +2 -0
  992. package/web-ui/build/static/xojo-DGqISLW2.js.map +1 -0
  993. package/web-ui/build/static/xquery-CKOwjxR8.js +2 -0
  994. package/web-ui/build/static/xquery-CKOwjxR8.js.map +1 -0
  995. package/web-ui/build/static/xquery-DRRK5ve6.js +2 -0
  996. package/web-ui/build/static/xquery-DRRK5ve6.js.map +1 -0
  997. package/web-ui/build/static/yaml-BsesZJLa.js +2 -0
  998. package/web-ui/build/static/yaml-BsesZJLa.js.map +1 -0
  999. package/web-ui/build/static/yaml-lmNFW8ON.js +2 -0
  1000. package/web-ui/build/static/yaml-lmNFW8ON.js.map +1 -0
  1001. package/web-ui/build/static/yang-D2XecjdJ.js +2 -0
  1002. package/web-ui/build/static/yang-D2XecjdJ.js.map +1 -0
  1003. package/web-ui/build/static/zephir-B1iL3iT8.js +2 -0
  1004. package/web-ui/build/static/zephir-B1iL3iT8.js.map +1 -0
  1005. package/web-ui/build/static/zig-D4xcy35B.js +2 -0
  1006. package/web-ui/build/static/zig-D4xcy35B.js.map +1 -0
  1007. package/web-ui/build/static/1c-D8W1sRwM.js +0 -2
  1008. package/web-ui/build/static/1c-D8W1sRwM.js.map +0 -1
  1009. package/web-ui/build/static/abap-Djdnfe00.js +0 -2
  1010. package/web-ui/build/static/abap-Djdnfe00.js.map +0 -1
  1011. package/web-ui/build/static/abnf-DiNkfJH0.js +0 -2
  1012. package/web-ui/build/static/abnf-DiNkfJH0.js.map +0 -1
  1013. package/web-ui/build/static/abnf-DrQfqE1w.js +0 -2
  1014. package/web-ui/build/static/abnf-DrQfqE1w.js.map +0 -1
  1015. package/web-ui/build/static/accesslog-LS0BPqal.js +0 -2
  1016. package/web-ui/build/static/accesslog-LS0BPqal.js.map +0 -1
  1017. package/web-ui/build/static/actionscript-CjdRibJO.js +0 -2
  1018. package/web-ui/build/static/actionscript-CjdRibJO.js.map +0 -1
  1019. package/web-ui/build/static/actionscript-T9PAgL9Q.js +0 -2
  1020. package/web-ui/build/static/actionscript-T9PAgL9Q.js.map +0 -1
  1021. package/web-ui/build/static/ada-B_sCqmFZ.js +0 -2
  1022. package/web-ui/build/static/ada-B_sCqmFZ.js.map +0 -1
  1023. package/web-ui/build/static/ada-MwpGt67z.js +0 -2
  1024. package/web-ui/build/static/ada-MwpGt67z.js.map +0 -1
  1025. package/web-ui/build/static/agda-Bn3P1fEl.js +0 -2
  1026. package/web-ui/build/static/agda-Bn3P1fEl.js.map +0 -1
  1027. package/web-ui/build/static/al-CViNat7T.js +0 -2
  1028. package/web-ui/build/static/al-CViNat7T.js.map +0 -1
  1029. package/web-ui/build/static/angelscript-DZJHSuK2.js +0 -2
  1030. package/web-ui/build/static/angelscript-DZJHSuK2.js.map +0 -1
  1031. package/web-ui/build/static/antlr4-BF6Ru3w6.js +0 -2
  1032. package/web-ui/build/static/antlr4-BF6Ru3w6.js.map +0 -1
  1033. package/web-ui/build/static/apache-BW-IG-gS.js +0 -2
  1034. package/web-ui/build/static/apache-BW-IG-gS.js.map +0 -1
  1035. package/web-ui/build/static/apacheconf-a4cNRFtJ.js +0 -2
  1036. package/web-ui/build/static/apacheconf-a4cNRFtJ.js.map +0 -1
  1037. package/web-ui/build/static/apex-CQ4HfhbZ.js +0 -2
  1038. package/web-ui/build/static/apex-CQ4HfhbZ.js.map +0 -1
  1039. package/web-ui/build/static/apl-CnT4JYZ1.js +0 -2
  1040. package/web-ui/build/static/apl-CnT4JYZ1.js.map +0 -1
  1041. package/web-ui/build/static/applescript-C23_oUe_.js +0 -2
  1042. package/web-ui/build/static/applescript-C23_oUe_.js.map +0 -1
  1043. package/web-ui/build/static/applescript-DJ9YZ-50.js +0 -2
  1044. package/web-ui/build/static/applescript-DJ9YZ-50.js.map +0 -1
  1045. package/web-ui/build/static/aql-DMmLo3vQ.js +0 -2
  1046. package/web-ui/build/static/aql-DMmLo3vQ.js.map +0 -1
  1047. package/web-ui/build/static/arcade-DEJakPcT.js +0 -2
  1048. package/web-ui/build/static/arcade-DEJakPcT.js.map +0 -1
  1049. package/web-ui/build/static/arduino-DHnQE00P.js +0 -2
  1050. package/web-ui/build/static/arduino-DHnQE00P.js.map +0 -1
  1051. package/web-ui/build/static/arduino-DLpl_oLR.js +0 -2
  1052. package/web-ui/build/static/arduino-DLpl_oLR.js.map +0 -1
  1053. package/web-ui/build/static/arff-weXOyvNW.js +0 -2
  1054. package/web-ui/build/static/arff-weXOyvNW.js.map +0 -1
  1055. package/web-ui/build/static/armasm-DCB7KNse.js +0 -2
  1056. package/web-ui/build/static/armasm-DCB7KNse.js.map +0 -1
  1057. package/web-ui/build/static/asciidoc-B_B2NVRX.js +0 -2
  1058. package/web-ui/build/static/asciidoc-B_B2NVRX.js.map +0 -1
  1059. package/web-ui/build/static/asciidoc-G7xTDND0.js +0 -2
  1060. package/web-ui/build/static/asciidoc-G7xTDND0.js.map +0 -1
  1061. package/web-ui/build/static/asm6502-BrKCcGNC.js +0 -2
  1062. package/web-ui/build/static/asm6502-BrKCcGNC.js.map +0 -1
  1063. package/web-ui/build/static/asmatmel-CRKp6Tqd.js +0 -2
  1064. package/web-ui/build/static/asmatmel-CRKp6Tqd.js.map +0 -1
  1065. package/web-ui/build/static/aspectj-uz9oTTlb.js +0 -2
  1066. package/web-ui/build/static/aspectj-uz9oTTlb.js.map +0 -1
  1067. package/web-ui/build/static/aspnet-imOpVk6g.js +0 -2
  1068. package/web-ui/build/static/aspnet-imOpVk6g.js.map +0 -1
  1069. package/web-ui/build/static/autohotkey-BavzDLcC.js +0 -2
  1070. package/web-ui/build/static/autohotkey-BavzDLcC.js.map +0 -1
  1071. package/web-ui/build/static/autohotkey-BpzhuqUy.js +0 -2
  1072. package/web-ui/build/static/autohotkey-BpzhuqUy.js.map +0 -1
  1073. package/web-ui/build/static/autoit-ClwmKiya.js +0 -2
  1074. package/web-ui/build/static/autoit-ClwmKiya.js.map +0 -1
  1075. package/web-ui/build/static/autoit-DmSiHu-b.js +0 -2
  1076. package/web-ui/build/static/autoit-DmSiHu-b.js.map +0 -1
  1077. package/web-ui/build/static/avisynth-BFu3vCJb.js +0 -2
  1078. package/web-ui/build/static/avisynth-BFu3vCJb.js.map +0 -1
  1079. package/web-ui/build/static/avrasm-83oHwG-q.js +0 -2
  1080. package/web-ui/build/static/avrasm-83oHwG-q.js.map +0 -1
  1081. package/web-ui/build/static/avro-idl-DiRKaEvV.js +0 -2
  1082. package/web-ui/build/static/avro-idl-DiRKaEvV.js.map +0 -1
  1083. package/web-ui/build/static/awk-iZMR3_8x.js +0 -2
  1084. package/web-ui/build/static/awk-iZMR3_8x.js.map +0 -1
  1085. package/web-ui/build/static/axapta-DLMQP0F7.js +0 -2
  1086. package/web-ui/build/static/axapta-DLMQP0F7.js.map +0 -1
  1087. package/web-ui/build/static/bash-BbQP8uAk.js +0 -2
  1088. package/web-ui/build/static/bash-BbQP8uAk.js.map +0 -1
  1089. package/web-ui/build/static/bash-CA1KH2HF.js +0 -2
  1090. package/web-ui/build/static/bash-CA1KH2HF.js.map +0 -1
  1091. package/web-ui/build/static/basic-CoGxcg6N.js +0 -2
  1092. package/web-ui/build/static/basic-CoGxcg6N.js.map +0 -1
  1093. package/web-ui/build/static/basic-THXg16hl.js +0 -2
  1094. package/web-ui/build/static/basic-THXg16hl.js.map +0 -1
  1095. package/web-ui/build/static/batch-BH6boO98.js +0 -2
  1096. package/web-ui/build/static/batch-BH6boO98.js.map +0 -1
  1097. package/web-ui/build/static/bbcode-BTGw_qH7.js +0 -2
  1098. package/web-ui/build/static/bbcode-BTGw_qH7.js.map +0 -1
  1099. package/web-ui/build/static/bicep-Bi1c-1zY.js +0 -2
  1100. package/web-ui/build/static/bicep-Bi1c-1zY.js.map +0 -1
  1101. package/web-ui/build/static/birb-CGWbZNtm.js +0 -2
  1102. package/web-ui/build/static/birb-CGWbZNtm.js.map +0 -1
  1103. package/web-ui/build/static/bison-D6OjwxnS.js +0 -2
  1104. package/web-ui/build/static/bison-D6OjwxnS.js.map +0 -1
  1105. package/web-ui/build/static/bnf-9IKznhA0.js +0 -2
  1106. package/web-ui/build/static/bnf-9IKznhA0.js.map +0 -1
  1107. package/web-ui/build/static/bnf-CbkqJRVY.js +0 -2
  1108. package/web-ui/build/static/bnf-CbkqJRVY.js.map +0 -1
  1109. package/web-ui/build/static/brainfuck-BgYZYhEp.js +0 -2
  1110. package/web-ui/build/static/brainfuck-BgYZYhEp.js.map +0 -1
  1111. package/web-ui/build/static/brainfuck-zVhAjPbX.js +0 -2
  1112. package/web-ui/build/static/brainfuck-zVhAjPbX.js.map +0 -1
  1113. package/web-ui/build/static/brightscript-CbCD1YHl.js +0 -2
  1114. package/web-ui/build/static/brightscript-CbCD1YHl.js.map +0 -1
  1115. package/web-ui/build/static/bro-Buj4rUAa.js +0 -2
  1116. package/web-ui/build/static/bro-Buj4rUAa.js.map +0 -1
  1117. package/web-ui/build/static/bsl-CmP7I2uR.js +0 -2
  1118. package/web-ui/build/static/bsl-CmP7I2uR.js.map +0 -1
  1119. package/web-ui/build/static/c-C2_jZZLQ.js +0 -2
  1120. package/web-ui/build/static/c-C2_jZZLQ.js.map +0 -1
  1121. package/web-ui/build/static/c-CaclqMiY.js +0 -2
  1122. package/web-ui/build/static/c-CaclqMiY.js.map +0 -1
  1123. package/web-ui/build/static/c-like-CkUfEzQe.js +0 -2
  1124. package/web-ui/build/static/c-like-CkUfEzQe.js.map +0 -1
  1125. package/web-ui/build/static/cal-B-4SR7Q-.js +0 -2
  1126. package/web-ui/build/static/cal-B-4SR7Q-.js.map +0 -1
  1127. package/web-ui/build/static/capnproto-Cdruuu2P.js +0 -2
  1128. package/web-ui/build/static/capnproto-Cdruuu2P.js.map +0 -1
  1129. package/web-ui/build/static/ceylon-CCqQIdQd.js +0 -2
  1130. package/web-ui/build/static/ceylon-CCqQIdQd.js.map +0 -1
  1131. package/web-ui/build/static/cfscript-eRPxdtiN.js +0 -2
  1132. package/web-ui/build/static/cfscript-eRPxdtiN.js.map +0 -1
  1133. package/web-ui/build/static/chaiscript-BtxrPNU2.js +0 -2
  1134. package/web-ui/build/static/chaiscript-BtxrPNU2.js.map +0 -1
  1135. package/web-ui/build/static/cil-CFnPIYJ1.js +0 -2
  1136. package/web-ui/build/static/cil-CFnPIYJ1.js.map +0 -1
  1137. package/web-ui/build/static/clean-g1s0onSy.js +0 -2
  1138. package/web-ui/build/static/clean-g1s0onSy.js.map +0 -1
  1139. package/web-ui/build/static/clike-CMkV91WO.js +0 -2
  1140. package/web-ui/build/static/clike-CMkV91WO.js.map +0 -1
  1141. package/web-ui/build/static/clojure--DL927lh.js +0 -2
  1142. package/web-ui/build/static/clojure--DL927lh.js.map +0 -1
  1143. package/web-ui/build/static/clojure-BiCeUNI2.js +0 -2
  1144. package/web-ui/build/static/clojure-BiCeUNI2.js.map +0 -1
  1145. package/web-ui/build/static/clojure-repl-BjvBwR87.js +0 -2
  1146. package/web-ui/build/static/clojure-repl-BjvBwR87.js.map +0 -1
  1147. package/web-ui/build/static/cmake-DrTm3aKq.js +0 -2
  1148. package/web-ui/build/static/cmake-DrTm3aKq.js.map +0 -1
  1149. package/web-ui/build/static/cmake-GeF56i1U.js +0 -2
  1150. package/web-ui/build/static/cmake-GeF56i1U.js.map +0 -1
  1151. package/web-ui/build/static/cobol-1HP5zYCO.js +0 -2
  1152. package/web-ui/build/static/cobol-1HP5zYCO.js.map +0 -1
  1153. package/web-ui/build/static/coffeescript-Blo33pas.js +0 -2
  1154. package/web-ui/build/static/coffeescript-Blo33pas.js.map +0 -1
  1155. package/web-ui/build/static/coffeescript-DcjjvE-o.js +0 -2
  1156. package/web-ui/build/static/coffeescript-DcjjvE-o.js.map +0 -1
  1157. package/web-ui/build/static/concurnas-v4Jnl0ul.js +0 -2
  1158. package/web-ui/build/static/concurnas-v4Jnl0ul.js.map +0 -1
  1159. package/web-ui/build/static/coq-CRkxt8ze.js +0 -2
  1160. package/web-ui/build/static/coq-CRkxt8ze.js.map +0 -1
  1161. package/web-ui/build/static/coq-D8yQ0eFA.js +0 -2
  1162. package/web-ui/build/static/coq-D8yQ0eFA.js.map +0 -1
  1163. package/web-ui/build/static/cos-CULCPeqh.js +0 -2
  1164. package/web-ui/build/static/cos-CULCPeqh.js.map +0 -1
  1165. package/web-ui/build/static/cpp-Cr9yLGb2.js +0 -2
  1166. package/web-ui/build/static/cpp-Cr9yLGb2.js.map +0 -1
  1167. package/web-ui/build/static/cpp-lQCIGJbk.js +0 -2
  1168. package/web-ui/build/static/cpp-lQCIGJbk.js.map +0 -1
  1169. package/web-ui/build/static/crmsh-CyAVekhy.js +0 -2
  1170. package/web-ui/build/static/crmsh-CyAVekhy.js.map +0 -1
  1171. package/web-ui/build/static/crystal-BA-AEBCZ.js +0 -2
  1172. package/web-ui/build/static/crystal-BA-AEBCZ.js.map +0 -1
  1173. package/web-ui/build/static/crystal-DjLdpX4G.js +0 -2
  1174. package/web-ui/build/static/crystal-DjLdpX4G.js.map +0 -1
  1175. package/web-ui/build/static/csharp-BgsVr3am.js +0 -2
  1176. package/web-ui/build/static/csharp-BgsVr3am.js.map +0 -1
  1177. package/web-ui/build/static/csharp-Ddcce4Tz.js +0 -2
  1178. package/web-ui/build/static/csharp-Ddcce4Tz.js.map +0 -1
  1179. package/web-ui/build/static/cshtml-D3A_A1c8.js +0 -2
  1180. package/web-ui/build/static/cshtml-D3A_A1c8.js.map +0 -1
  1181. package/web-ui/build/static/csp-BnhKagIU.js +0 -2
  1182. package/web-ui/build/static/csp-BnhKagIU.js.map +0 -1
  1183. package/web-ui/build/static/csp-F_jalQhT.js +0 -2
  1184. package/web-ui/build/static/csp-F_jalQhT.js.map +0 -1
  1185. package/web-ui/build/static/css-DVMf6_KD.js +0 -2
  1186. package/web-ui/build/static/css-DVMf6_KD.js.map +0 -1
  1187. package/web-ui/build/static/css-R3pt5BqW.js +0 -2
  1188. package/web-ui/build/static/css-R3pt5BqW.js.map +0 -1
  1189. package/web-ui/build/static/css-extras-_Jhxmi5g.js +0 -2
  1190. package/web-ui/build/static/css-extras-_Jhxmi5g.js.map +0 -1
  1191. package/web-ui/build/static/csv-07dd6nid.js +0 -2
  1192. package/web-ui/build/static/csv-07dd6nid.js.map +0 -1
  1193. package/web-ui/build/static/cypher-CWOAtvya.js +0 -2
  1194. package/web-ui/build/static/cypher-CWOAtvya.js.map +0 -1
  1195. package/web-ui/build/static/d-BssimD6g.js +0 -2
  1196. package/web-ui/build/static/d-BssimD6g.js.map +0 -1
  1197. package/web-ui/build/static/d-DPGmH978.js +0 -2
  1198. package/web-ui/build/static/d-DPGmH978.js.map +0 -1
  1199. package/web-ui/build/static/dart-4GjuRCoR.js +0 -2
  1200. package/web-ui/build/static/dart-4GjuRCoR.js.map +0 -1
  1201. package/web-ui/build/static/dart-BwUSj6WF.js +0 -2
  1202. package/web-ui/build/static/dart-BwUSj6WF.js.map +0 -1
  1203. package/web-ui/build/static/dataweave-DBRqAneY.js +0 -2
  1204. package/web-ui/build/static/dataweave-DBRqAneY.js.map +0 -1
  1205. package/web-ui/build/static/dax-DtWLU1EI.js +0 -2
  1206. package/web-ui/build/static/dax-DtWLU1EI.js.map +0 -1
  1207. package/web-ui/build/static/delphi-BO99tkex.js +0 -2
  1208. package/web-ui/build/static/delphi-BO99tkex.js.map +0 -1
  1209. package/web-ui/build/static/dhall-d-2D6-ii.js +0 -2
  1210. package/web-ui/build/static/dhall-d-2D6-ii.js.map +0 -1
  1211. package/web-ui/build/static/diff-C44tbvx2.js +0 -2
  1212. package/web-ui/build/static/diff-C44tbvx2.js.map +0 -1
  1213. package/web-ui/build/static/diff-DQwg1JbJ.js +0 -2
  1214. package/web-ui/build/static/diff-DQwg1JbJ.js.map +0 -1
  1215. package/web-ui/build/static/django-BQCMCfan.js +0 -2
  1216. package/web-ui/build/static/django-BQCMCfan.js.map +0 -1
  1217. package/web-ui/build/static/django-CXps4i7I.js +0 -2
  1218. package/web-ui/build/static/django-CXps4i7I.js.map +0 -1
  1219. package/web-ui/build/static/dns-BvF6PI2w.js +0 -2
  1220. package/web-ui/build/static/dns-BvF6PI2w.js.map +0 -1
  1221. package/web-ui/build/static/dns-zone-file-CbriADmN.js +0 -2
  1222. package/web-ui/build/static/dns-zone-file-CbriADmN.js.map +0 -1
  1223. package/web-ui/build/static/docker-CxjEVBpp.js +0 -2
  1224. package/web-ui/build/static/docker-CxjEVBpp.js.map +0 -1
  1225. package/web-ui/build/static/dockerfile-RzCjDV-7.js +0 -2
  1226. package/web-ui/build/static/dockerfile-RzCjDV-7.js.map +0 -1
  1227. package/web-ui/build/static/dos-COBCJf7T.js +0 -2
  1228. package/web-ui/build/static/dos-COBCJf7T.js.map +0 -1
  1229. package/web-ui/build/static/dot-_66YaIps.js +0 -2
  1230. package/web-ui/build/static/dot-_66YaIps.js.map +0 -1
  1231. package/web-ui/build/static/dsconfig-TBAHc50O.js +0 -2
  1232. package/web-ui/build/static/dsconfig-TBAHc50O.js.map +0 -1
  1233. package/web-ui/build/static/dts-DngybEr2.js +0 -2
  1234. package/web-ui/build/static/dts-DngybEr2.js.map +0 -1
  1235. package/web-ui/build/static/dust-UAgesbZS.js +0 -2
  1236. package/web-ui/build/static/dust-UAgesbZS.js.map +0 -1
  1237. package/web-ui/build/static/ebnf-CGUhEP6Q.js +0 -2
  1238. package/web-ui/build/static/ebnf-CGUhEP6Q.js.map +0 -1
  1239. package/web-ui/build/static/ebnf-DsA_L72f.js +0 -2
  1240. package/web-ui/build/static/ebnf-DsA_L72f.js.map +0 -1
  1241. package/web-ui/build/static/editorconfig-zeVdPRbi.js +0 -2
  1242. package/web-ui/build/static/editorconfig-zeVdPRbi.js.map +0 -1
  1243. package/web-ui/build/static/eiffel-CBQ_JqtW.js +0 -2
  1244. package/web-ui/build/static/eiffel-CBQ_JqtW.js.map +0 -1
  1245. package/web-ui/build/static/ejs-CcCw6N4i.js +0 -2
  1246. package/web-ui/build/static/ejs-CcCw6N4i.js.map +0 -1
  1247. package/web-ui/build/static/elixir-4ji3F_5S.js +0 -2
  1248. package/web-ui/build/static/elixir-4ji3F_5S.js.map +0 -1
  1249. package/web-ui/build/static/elixir-C92YnUMX.js +0 -2
  1250. package/web-ui/build/static/elixir-C92YnUMX.js.map +0 -1
  1251. package/web-ui/build/static/elm-BwzUxH6Q.js +0 -2
  1252. package/web-ui/build/static/elm-BwzUxH6Q.js.map +0 -1
  1253. package/web-ui/build/static/elm-D47CZdBg.js +0 -2
  1254. package/web-ui/build/static/elm-D47CZdBg.js.map +0 -1
  1255. package/web-ui/build/static/erb-CUL4-BAu.js +0 -2
  1256. package/web-ui/build/static/erb-CUL4-BAu.js.map +0 -1
  1257. package/web-ui/build/static/erb-CsrAUhBg.js +0 -2
  1258. package/web-ui/build/static/erb-CsrAUhBg.js.map +0 -1
  1259. package/web-ui/build/static/erlang-BTgnIzat.js +0 -2
  1260. package/web-ui/build/static/erlang-BTgnIzat.js.map +0 -1
  1261. package/web-ui/build/static/erlang-D7FUoEMX.js +0 -2
  1262. package/web-ui/build/static/erlang-D7FUoEMX.js.map +0 -1
  1263. package/web-ui/build/static/erlang-repl-DnzpgilL.js +0 -2
  1264. package/web-ui/build/static/erlang-repl-DnzpgilL.js.map +0 -1
  1265. package/web-ui/build/static/etlua-W4Q6OTFN.js +0 -2
  1266. package/web-ui/build/static/etlua-W4Q6OTFN.js.map +0 -1
  1267. package/web-ui/build/static/excel-ByF6DtKb.js +0 -2
  1268. package/web-ui/build/static/excel-ByF6DtKb.js.map +0 -1
  1269. package/web-ui/build/static/excel-formula-DiiC4IKS.js +0 -2
  1270. package/web-ui/build/static/excel-formula-DiiC4IKS.js.map +0 -1
  1271. package/web-ui/build/static/factor-Md974-Zt.js +0 -2
  1272. package/web-ui/build/static/factor-Md974-Zt.js.map +0 -1
  1273. package/web-ui/build/static/false-BStM_TSY.js +0 -2
  1274. package/web-ui/build/static/false-BStM_TSY.js.map +0 -1
  1275. package/web-ui/build/static/firestore-security-rules-B-MvymVJ.js +0 -2
  1276. package/web-ui/build/static/firestore-security-rules-B-MvymVJ.js.map +0 -1
  1277. package/web-ui/build/static/fix-i60eW9tm.js +0 -2
  1278. package/web-ui/build/static/fix-i60eW9tm.js.map +0 -1
  1279. package/web-ui/build/static/flix-CFU97vc-.js +0 -2
  1280. package/web-ui/build/static/flix-CFU97vc-.js.map +0 -1
  1281. package/web-ui/build/static/flow-AjvMWI2h.js +0 -2
  1282. package/web-ui/build/static/flow-AjvMWI2h.js.map +0 -1
  1283. package/web-ui/build/static/fortran-BOB8oIMl.js +0 -2
  1284. package/web-ui/build/static/fortran-BOB8oIMl.js.map +0 -1
  1285. package/web-ui/build/static/fortran-Bih66WCM.js +0 -2
  1286. package/web-ui/build/static/fortran-Bih66WCM.js.map +0 -1
  1287. package/web-ui/build/static/fsharp-QvHjKL2i.js +0 -2
  1288. package/web-ui/build/static/fsharp-QvHjKL2i.js.map +0 -1
  1289. package/web-ui/build/static/fsharp-z5vijz4F.js +0 -2
  1290. package/web-ui/build/static/fsharp-z5vijz4F.js.map +0 -1
  1291. package/web-ui/build/static/ftl-CjBAXEWL.js +0 -2
  1292. package/web-ui/build/static/ftl-CjBAXEWL.js.map +0 -1
  1293. package/web-ui/build/static/gams-BsM75SSp.js +0 -2
  1294. package/web-ui/build/static/gams-BsM75SSp.js.map +0 -1
  1295. package/web-ui/build/static/gap-ZTcmejIP.js +0 -2
  1296. package/web-ui/build/static/gap-ZTcmejIP.js.map +0 -1
  1297. package/web-ui/build/static/gauss-BMJuvjw7.js +0 -2
  1298. package/web-ui/build/static/gauss-BMJuvjw7.js.map +0 -1
  1299. package/web-ui/build/static/gcode-CIcFs_u5.js +0 -2
  1300. package/web-ui/build/static/gcode-CIcFs_u5.js.map +0 -1
  1301. package/web-ui/build/static/gcode-D88o0GPm.js +0 -2
  1302. package/web-ui/build/static/gcode-D88o0GPm.js.map +0 -1
  1303. package/web-ui/build/static/gdscript-fzJaqkh5.js +0 -2
  1304. package/web-ui/build/static/gdscript-fzJaqkh5.js.map +0 -1
  1305. package/web-ui/build/static/gedcom-CBuBjrtk.js +0 -2
  1306. package/web-ui/build/static/gedcom-CBuBjrtk.js.map +0 -1
  1307. package/web-ui/build/static/gherkin-C2hL4TTh.js +0 -2
  1308. package/web-ui/build/static/gherkin-C2hL4TTh.js.map +0 -1
  1309. package/web-ui/build/static/gherkin-DlxAIXy6.js +0 -2
  1310. package/web-ui/build/static/gherkin-DlxAIXy6.js.map +0 -1
  1311. package/web-ui/build/static/git-CV96TF4K.js +0 -2
  1312. package/web-ui/build/static/git-CV96TF4K.js.map +0 -1
  1313. package/web-ui/build/static/glsl-BltXieYW.js +0 -2
  1314. package/web-ui/build/static/glsl-BltXieYW.js.map +0 -1
  1315. package/web-ui/build/static/glsl-nNhozo4g.js +0 -2
  1316. package/web-ui/build/static/glsl-nNhozo4g.js.map +0 -1
  1317. package/web-ui/build/static/gml-B66JSp-3.js +0 -2
  1318. package/web-ui/build/static/gml-B66JSp-3.js.map +0 -1
  1319. package/web-ui/build/static/gml-DWMUzuXl.js +0 -2
  1320. package/web-ui/build/static/gml-DWMUzuXl.js.map +0 -1
  1321. package/web-ui/build/static/gn-N1W-ge1_.js +0 -2
  1322. package/web-ui/build/static/gn-N1W-ge1_.js.map +0 -1
  1323. package/web-ui/build/static/go-D4o690sU.js +0 -2
  1324. package/web-ui/build/static/go-D4o690sU.js.map +0 -1
  1325. package/web-ui/build/static/go-kn5rYBtt.js +0 -2
  1326. package/web-ui/build/static/go-kn5rYBtt.js.map +0 -1
  1327. package/web-ui/build/static/go-module-_W1iQFdn.js +0 -2
  1328. package/web-ui/build/static/go-module-_W1iQFdn.js.map +0 -1
  1329. package/web-ui/build/static/golo-BVoyBzWP.js +0 -2
  1330. package/web-ui/build/static/golo-BVoyBzWP.js.map +0 -1
  1331. package/web-ui/build/static/gradle-whfYK8DO.js +0 -2
  1332. package/web-ui/build/static/gradle-whfYK8DO.js.map +0 -1
  1333. package/web-ui/build/static/graphql-CKvXIdND.js +0 -2
  1334. package/web-ui/build/static/graphql-CKvXIdND.js.map +0 -1
  1335. package/web-ui/build/static/groovy-BsRxjsvH.js +0 -2
  1336. package/web-ui/build/static/groovy-BsRxjsvH.js.map +0 -1
  1337. package/web-ui/build/static/groovy-DkH8TSE1.js +0 -2
  1338. package/web-ui/build/static/groovy-DkH8TSE1.js.map +0 -1
  1339. package/web-ui/build/static/haml-CuKB0vAR.js +0 -2
  1340. package/web-ui/build/static/haml-CuKB0vAR.js.map +0 -1
  1341. package/web-ui/build/static/haml-QfcLet_s.js +0 -2
  1342. package/web-ui/build/static/haml-QfcLet_s.js.map +0 -1
  1343. package/web-ui/build/static/handlebars-CY5nVYGX.js +0 -2
  1344. package/web-ui/build/static/handlebars-CY5nVYGX.js.map +0 -1
  1345. package/web-ui/build/static/handlebars-e_Mh5_el.js +0 -2
  1346. package/web-ui/build/static/handlebars-e_Mh5_el.js.map +0 -1
  1347. package/web-ui/build/static/haskell-D6ps1c-R.js +0 -2
  1348. package/web-ui/build/static/haskell-D6ps1c-R.js.map +0 -1
  1349. package/web-ui/build/static/haskell-DEx0cxVJ.js +0 -2
  1350. package/web-ui/build/static/haskell-DEx0cxVJ.js.map +0 -1
  1351. package/web-ui/build/static/haxe-CkwbqUuZ.js +0 -2
  1352. package/web-ui/build/static/haxe-CkwbqUuZ.js.map +0 -1
  1353. package/web-ui/build/static/haxe-CxfRWWhq.js +0 -2
  1354. package/web-ui/build/static/haxe-CxfRWWhq.js.map +0 -1
  1355. package/web-ui/build/static/hcl-DcbwTsRv.js +0 -2
  1356. package/web-ui/build/static/hcl-DcbwTsRv.js.map +0 -1
  1357. package/web-ui/build/static/hlsl-C1SfhzDE.js +0 -2
  1358. package/web-ui/build/static/hlsl-C1SfhzDE.js.map +0 -1
  1359. package/web-ui/build/static/hoon-CbmHFnKP.js +0 -2
  1360. package/web-ui/build/static/hoon-CbmHFnKP.js.map +0 -1
  1361. package/web-ui/build/static/hpkp-j7cFnmDW.js +0 -2
  1362. package/web-ui/build/static/hpkp-j7cFnmDW.js.map +0 -1
  1363. package/web-ui/build/static/hsp-RT-HCpNq.js +0 -2
  1364. package/web-ui/build/static/hsp-RT-HCpNq.js.map +0 -1
  1365. package/web-ui/build/static/hsts-BjVzpve_.js +0 -2
  1366. package/web-ui/build/static/hsts-BjVzpve_.js.map +0 -1
  1367. package/web-ui/build/static/htmlbars--_7OAeSt.js +0 -2
  1368. package/web-ui/build/static/htmlbars--_7OAeSt.js.map +0 -1
  1369. package/web-ui/build/static/http-DoLz9Pk8.js +0 -2
  1370. package/web-ui/build/static/http-DoLz9Pk8.js.map +0 -1
  1371. package/web-ui/build/static/http-Dqr7Ji-D.js +0 -2
  1372. package/web-ui/build/static/http-Dqr7Ji-D.js.map +0 -1
  1373. package/web-ui/build/static/hy-QicHjYb0.js +0 -2
  1374. package/web-ui/build/static/hy-QicHjYb0.js.map +0 -1
  1375. package/web-ui/build/static/ichigojam-BEJIsr_Z.js +0 -2
  1376. package/web-ui/build/static/ichigojam-BEJIsr_Z.js.map +0 -1
  1377. package/web-ui/build/static/icon-xEX_XLIT.js +0 -2
  1378. package/web-ui/build/static/icon-xEX_XLIT.js.map +0 -1
  1379. package/web-ui/build/static/icu-message-format-C-UlmY9O.js +0 -2
  1380. package/web-ui/build/static/icu-message-format-C-UlmY9O.js.map +0 -1
  1381. package/web-ui/build/static/idris-Cj9P2Aop.js +0 -2
  1382. package/web-ui/build/static/idris-Cj9P2Aop.js.map +0 -1
  1383. package/web-ui/build/static/iecst-BBP9U8bp.js +0 -2
  1384. package/web-ui/build/static/iecst-BBP9U8bp.js.map +0 -1
  1385. package/web-ui/build/static/ignore-Cu0Kcgs1.js +0 -2
  1386. package/web-ui/build/static/ignore-Cu0Kcgs1.js.map +0 -1
  1387. package/web-ui/build/static/index-BHMQAcV2.js +0 -2
  1388. package/web-ui/build/static/index-BHMQAcV2.js.map +0 -1
  1389. package/web-ui/build/static/index-CVDnr_xo.js +0 -14
  1390. package/web-ui/build/static/index-CVDnr_xo.js.map +0 -1
  1391. package/web-ui/build/static/index-ClcLJ2_J.js +0 -1237
  1392. package/web-ui/build/static/index-ClcLJ2_J.js.map +0 -1
  1393. package/web-ui/build/static/index-Dc7XzG09.css +0 -1
  1394. package/web-ui/build/static/inform7-4j82XkeQ.js +0 -2
  1395. package/web-ui/build/static/inform7-4j82XkeQ.js.map +0 -1
  1396. package/web-ui/build/static/inform7-B1uFngz8.js +0 -2
  1397. package/web-ui/build/static/inform7-B1uFngz8.js.map +0 -1
  1398. package/web-ui/build/static/ini-DZVcWUpc.js +0 -2
  1399. package/web-ui/build/static/ini-DZVcWUpc.js.map +0 -1
  1400. package/web-ui/build/static/ini-y53RRk59.js +0 -2
  1401. package/web-ui/build/static/ini-y53RRk59.js.map +0 -1
  1402. package/web-ui/build/static/io-CbHJzbIv.js +0 -2
  1403. package/web-ui/build/static/io-CbHJzbIv.js.map +0 -1
  1404. package/web-ui/build/static/irpf90-DDfH-RBm.js +0 -2
  1405. package/web-ui/build/static/irpf90-DDfH-RBm.js.map +0 -1
  1406. package/web-ui/build/static/isbl-Bf3VTXOw.js +0 -2
  1407. package/web-ui/build/static/isbl-Bf3VTXOw.js.map +0 -1
  1408. package/web-ui/build/static/j-CGWYy2Vf.js +0 -2
  1409. package/web-ui/build/static/j-CGWYy2Vf.js.map +0 -1
  1410. package/web-ui/build/static/java-BPteeSaj.js +0 -2
  1411. package/web-ui/build/static/java-BPteeSaj.js.map +0 -1
  1412. package/web-ui/build/static/java-C3fzftmK.js +0 -2
  1413. package/web-ui/build/static/java-C3fzftmK.js.map +0 -1
  1414. package/web-ui/build/static/javadoc--RgQlrG7.js +0 -2
  1415. package/web-ui/build/static/javadoc--RgQlrG7.js.map +0 -1
  1416. package/web-ui/build/static/javadoclike-CAQVkHyg.js +0 -2
  1417. package/web-ui/build/static/javadoclike-CAQVkHyg.js.map +0 -1
  1418. package/web-ui/build/static/javascript-DwdsKsa_.js +0 -2
  1419. package/web-ui/build/static/javascript-DwdsKsa_.js.map +0 -1
  1420. package/web-ui/build/static/javascript-ytuRAqIs.js +0 -2
  1421. package/web-ui/build/static/javascript-ytuRAqIs.js.map +0 -1
  1422. package/web-ui/build/static/javastacktrace-Bp3HQUyp.js +0 -2
  1423. package/web-ui/build/static/javastacktrace-Bp3HQUyp.js.map +0 -1
  1424. package/web-ui/build/static/jboss-cli-kD6k8uhG.js +0 -2
  1425. package/web-ui/build/static/jboss-cli-kD6k8uhG.js.map +0 -1
  1426. package/web-ui/build/static/jexl-FRT5uVWt.js +0 -2
  1427. package/web-ui/build/static/jexl-FRT5uVWt.js.map +0 -1
  1428. package/web-ui/build/static/jolie-Cs_gZNLl.js +0 -2
  1429. package/web-ui/build/static/jolie-Cs_gZNLl.js.map +0 -1
  1430. package/web-ui/build/static/jq-c2y0ZBBB.js +0 -2
  1431. package/web-ui/build/static/jq-c2y0ZBBB.js.map +0 -1
  1432. package/web-ui/build/static/js-extras-PzcNCbC_.js +0 -2
  1433. package/web-ui/build/static/js-extras-PzcNCbC_.js.map +0 -1
  1434. package/web-ui/build/static/js-templates-DsObPicH.js +0 -2
  1435. package/web-ui/build/static/js-templates-DsObPicH.js.map +0 -1
  1436. package/web-ui/build/static/jsdoc-D0IDG4ZK.js +0 -2
  1437. package/web-ui/build/static/jsdoc-D0IDG4ZK.js.map +0 -1
  1438. package/web-ui/build/static/json-BP6yjU-m.js +0 -2
  1439. package/web-ui/build/static/json-BP6yjU-m.js.map +0 -1
  1440. package/web-ui/build/static/json-BrKEgjty.js +0 -2
  1441. package/web-ui/build/static/json-BrKEgjty.js.map +0 -1
  1442. package/web-ui/build/static/json5-BVzxbELL.js +0 -2
  1443. package/web-ui/build/static/json5-BVzxbELL.js.map +0 -1
  1444. package/web-ui/build/static/jsonp-TafwNSuu.js +0 -2
  1445. package/web-ui/build/static/jsonp-TafwNSuu.js.map +0 -1
  1446. package/web-ui/build/static/jsstacktrace-Y2EoWSFK.js +0 -2
  1447. package/web-ui/build/static/jsstacktrace-Y2EoWSFK.js.map +0 -1
  1448. package/web-ui/build/static/jsx-BLG534ST.js +0 -2
  1449. package/web-ui/build/static/jsx-BLG534ST.js.map +0 -1
  1450. package/web-ui/build/static/julia-DUOcPawH.js +0 -2
  1451. package/web-ui/build/static/julia-DUOcPawH.js.map +0 -1
  1452. package/web-ui/build/static/julia-Drbp9sTS.js +0 -2
  1453. package/web-ui/build/static/julia-Drbp9sTS.js.map +0 -1
  1454. package/web-ui/build/static/julia-repl-DCZcN63m.js +0 -2
  1455. package/web-ui/build/static/julia-repl-DCZcN63m.js.map +0 -1
  1456. package/web-ui/build/static/keepalived-BxzY6TYR.js +0 -2
  1457. package/web-ui/build/static/keepalived-BxzY6TYR.js.map +0 -1
  1458. package/web-ui/build/static/keyman-VhT31Y02.js +0 -2
  1459. package/web-ui/build/static/keyman-VhT31Y02.js.map +0 -1
  1460. package/web-ui/build/static/kotlin-CTGH-dM1.js +0 -2
  1461. package/web-ui/build/static/kotlin-CTGH-dM1.js.map +0 -1
  1462. package/web-ui/build/static/kotlin-D2gugIHV.js +0 -2
  1463. package/web-ui/build/static/kotlin-D2gugIHV.js.map +0 -1
  1464. package/web-ui/build/static/kumir-CG5X4bfu.js +0 -2
  1465. package/web-ui/build/static/kumir-CG5X4bfu.js.map +0 -1
  1466. package/web-ui/build/static/kusto-tWpO9tDy.js +0 -2
  1467. package/web-ui/build/static/kusto-tWpO9tDy.js.map +0 -1
  1468. package/web-ui/build/static/lasso-vaxNjZNB.js +0 -2
  1469. package/web-ui/build/static/lasso-vaxNjZNB.js.map +0 -1
  1470. package/web-ui/build/static/latex-BEW74dsv.js +0 -2
  1471. package/web-ui/build/static/latex-BEW74dsv.js.map +0 -1
  1472. package/web-ui/build/static/latex-hyVdLWMi.js +0 -2
  1473. package/web-ui/build/static/latex-hyVdLWMi.js.map +0 -1
  1474. package/web-ui/build/static/latte-BqUssf9p.js +0 -2
  1475. package/web-ui/build/static/latte-BqUssf9p.js.map +0 -1
  1476. package/web-ui/build/static/ldif-bW_bMeUV.js +0 -2
  1477. package/web-ui/build/static/ldif-bW_bMeUV.js.map +0 -1
  1478. package/web-ui/build/static/leaf-MaN6nRDs.js +0 -2
  1479. package/web-ui/build/static/leaf-MaN6nRDs.js.map +0 -1
  1480. package/web-ui/build/static/less-BE_23GiU.js +0 -2
  1481. package/web-ui/build/static/less-BE_23GiU.js.map +0 -1
  1482. package/web-ui/build/static/less-D2vy_5ce.js +0 -2
  1483. package/web-ui/build/static/less-D2vy_5ce.js.map +0 -1
  1484. package/web-ui/build/static/lilypond-DsmtQF-B.js +0 -2
  1485. package/web-ui/build/static/lilypond-DsmtQF-B.js.map +0 -1
  1486. package/web-ui/build/static/liquid-UIkmcuYo.js +0 -2
  1487. package/web-ui/build/static/liquid-UIkmcuYo.js.map +0 -1
  1488. package/web-ui/build/static/lisp-BZUBiQlf.js +0 -2
  1489. package/web-ui/build/static/lisp-BZUBiQlf.js.map +0 -1
  1490. package/web-ui/build/static/lisp-CK0S2cfW.js +0 -2
  1491. package/web-ui/build/static/lisp-CK0S2cfW.js.map +0 -1
  1492. package/web-ui/build/static/livecodeserver-CP2R-4T2.js +0 -2
  1493. package/web-ui/build/static/livecodeserver-CP2R-4T2.js.map +0 -1
  1494. package/web-ui/build/static/livescript-CL4wIgPQ.js +0 -2
  1495. package/web-ui/build/static/livescript-CL4wIgPQ.js.map +0 -1
  1496. package/web-ui/build/static/livescript-CqrcDvUR.js +0 -2
  1497. package/web-ui/build/static/livescript-CqrcDvUR.js.map +0 -1
  1498. package/web-ui/build/static/llvm-CFmvjrni.js +0 -2
  1499. package/web-ui/build/static/llvm-CFmvjrni.js.map +0 -1
  1500. package/web-ui/build/static/llvm-dLVzCvnX.js +0 -2
  1501. package/web-ui/build/static/llvm-dLVzCvnX.js.map +0 -1
  1502. package/web-ui/build/static/log-CyFdteAn.js +0 -2
  1503. package/web-ui/build/static/log-CyFdteAn.js.map +0 -1
  1504. package/web-ui/build/static/lolcode-BklGdR_u.js +0 -2
  1505. package/web-ui/build/static/lolcode-BklGdR_u.js.map +0 -1
  1506. package/web-ui/build/static/lsl-CdQYVKS6.js +0 -2
  1507. package/web-ui/build/static/lsl-CdQYVKS6.js.map +0 -1
  1508. package/web-ui/build/static/lua-C3o0FPO9.js +0 -2
  1509. package/web-ui/build/static/lua-C3o0FPO9.js.map +0 -1
  1510. package/web-ui/build/static/lua-D5Uol3rD.js +0 -2
  1511. package/web-ui/build/static/lua-D5Uol3rD.js.map +0 -1
  1512. package/web-ui/build/static/magma-Ba7HOCdR.js +0 -2
  1513. package/web-ui/build/static/magma-Ba7HOCdR.js.map +0 -1
  1514. package/web-ui/build/static/makefile-bLWkuLhb.js +0 -2
  1515. package/web-ui/build/static/makefile-bLWkuLhb.js.map +0 -1
  1516. package/web-ui/build/static/makefile-gODlaynT.js +0 -2
  1517. package/web-ui/build/static/makefile-gODlaynT.js.map +0 -1
  1518. package/web-ui/build/static/markdown-Cg5YbPFY.js +0 -2
  1519. package/web-ui/build/static/markdown-Cg5YbPFY.js.map +0 -1
  1520. package/web-ui/build/static/markdown-CwFQnpc5.js +0 -2
  1521. package/web-ui/build/static/markdown-CwFQnpc5.js.map +0 -1
  1522. package/web-ui/build/static/markup-Bh4rPwoF.js +0 -2
  1523. package/web-ui/build/static/markup-Bh4rPwoF.js.map +0 -1
  1524. package/web-ui/build/static/markup-templating-DBdA2pQ-.js +0 -2
  1525. package/web-ui/build/static/markup-templating-DBdA2pQ-.js.map +0 -1
  1526. package/web-ui/build/static/mathematica-C0uT97gW.js +0 -2
  1527. package/web-ui/build/static/mathematica-C0uT97gW.js.map +0 -1
  1528. package/web-ui/build/static/matlab-Bhwuyeli.js +0 -2
  1529. package/web-ui/build/static/matlab-Bhwuyeli.js.map +0 -1
  1530. package/web-ui/build/static/matlab-DLw9ueAc.js +0 -2
  1531. package/web-ui/build/static/matlab-DLw9ueAc.js.map +0 -1
  1532. package/web-ui/build/static/maxima-B8DljU5H.js +0 -2
  1533. package/web-ui/build/static/maxima-B8DljU5H.js.map +0 -1
  1534. package/web-ui/build/static/maxscript-g_gaMtmV.js +0 -2
  1535. package/web-ui/build/static/maxscript-g_gaMtmV.js.map +0 -1
  1536. package/web-ui/build/static/mel-CfVQggBB.js +0 -2
  1537. package/web-ui/build/static/mel-CfVQggBB.js.map +0 -1
  1538. package/web-ui/build/static/mel-DY3cdbQi.js +0 -2
  1539. package/web-ui/build/static/mel-DY3cdbQi.js.map +0 -1
  1540. package/web-ui/build/static/mercury-QMKJsOLz.js +0 -2
  1541. package/web-ui/build/static/mercury-QMKJsOLz.js.map +0 -1
  1542. package/web-ui/build/static/mermaid-DKxNOrjN.js +0 -2
  1543. package/web-ui/build/static/mermaid-DKxNOrjN.js.map +0 -1
  1544. package/web-ui/build/static/mipsasm-B8zWpc47.js +0 -2
  1545. package/web-ui/build/static/mipsasm-B8zWpc47.js.map +0 -1
  1546. package/web-ui/build/static/mizar-Ck7tzbQm.js +0 -2
  1547. package/web-ui/build/static/mizar-Ck7tzbQm.js.map +0 -1
  1548. package/web-ui/build/static/mizar-oerGI3kg.js +0 -2
  1549. package/web-ui/build/static/mizar-oerGI3kg.js.map +0 -1
  1550. package/web-ui/build/static/mojolicious-MlbeBczS.js +0 -2
  1551. package/web-ui/build/static/mojolicious-MlbeBczS.js.map +0 -1
  1552. package/web-ui/build/static/mongodb-Cx9YgX8D.js +0 -2
  1553. package/web-ui/build/static/mongodb-Cx9YgX8D.js.map +0 -1
  1554. package/web-ui/build/static/monkey-COlUbh56.js +0 -2
  1555. package/web-ui/build/static/monkey-COlUbh56.js.map +0 -1
  1556. package/web-ui/build/static/monkey-CUhbRmbV.js +0 -2
  1557. package/web-ui/build/static/monkey-CUhbRmbV.js.map +0 -1
  1558. package/web-ui/build/static/moonscript-BJgtoJow.js +0 -2
  1559. package/web-ui/build/static/moonscript-BJgtoJow.js.map +0 -1
  1560. package/web-ui/build/static/moonscript-CUlTR7rh.js +0 -2
  1561. package/web-ui/build/static/moonscript-CUlTR7rh.js.map +0 -1
  1562. package/web-ui/build/static/n1ql-B2hrOm-B.js +0 -2
  1563. package/web-ui/build/static/n1ql-B2hrOm-B.js.map +0 -1
  1564. package/web-ui/build/static/n1ql-DvmkMU_A.js +0 -2
  1565. package/web-ui/build/static/n1ql-DvmkMU_A.js.map +0 -1
  1566. package/web-ui/build/static/n4js-CKxBpRWt.js +0 -2
  1567. package/web-ui/build/static/n4js-CKxBpRWt.js.map +0 -1
  1568. package/web-ui/build/static/nand2tetris-hdl-DBMpE93F.js +0 -2
  1569. package/web-ui/build/static/nand2tetris-hdl-DBMpE93F.js.map +0 -1
  1570. package/web-ui/build/static/naniscript-CtevBkcX.js +0 -2
  1571. package/web-ui/build/static/naniscript-CtevBkcX.js.map +0 -1
  1572. package/web-ui/build/static/nasm-DlhEVDk4.js +0 -2
  1573. package/web-ui/build/static/nasm-DlhEVDk4.js.map +0 -1
  1574. package/web-ui/build/static/neon-C1cmdzQ7.js +0 -2
  1575. package/web-ui/build/static/neon-C1cmdzQ7.js.map +0 -1
  1576. package/web-ui/build/static/nevod-dgqbEcTa.js +0 -2
  1577. package/web-ui/build/static/nevod-dgqbEcTa.js.map +0 -1
  1578. package/web-ui/build/static/nginx-D97dKf5M.js +0 -2
  1579. package/web-ui/build/static/nginx-D97dKf5M.js.map +0 -1
  1580. package/web-ui/build/static/nginx-DQn56Nat.js +0 -2
  1581. package/web-ui/build/static/nginx-DQn56Nat.js.map +0 -1
  1582. package/web-ui/build/static/nim-5m2GuMSS.js +0 -2
  1583. package/web-ui/build/static/nim-5m2GuMSS.js.map +0 -1
  1584. package/web-ui/build/static/nim-Bbyj2OHB.js +0 -2
  1585. package/web-ui/build/static/nim-Bbyj2OHB.js.map +0 -1
  1586. package/web-ui/build/static/nix-fkWKc0tU.js +0 -2
  1587. package/web-ui/build/static/nix-fkWKc0tU.js.map +0 -1
  1588. package/web-ui/build/static/nix-pKx8hfGt.js +0 -2
  1589. package/web-ui/build/static/nix-pKx8hfGt.js.map +0 -1
  1590. package/web-ui/build/static/node-repl-Dgut3ERf.js +0 -2
  1591. package/web-ui/build/static/node-repl-Dgut3ERf.js.map +0 -1
  1592. package/web-ui/build/static/nsis-Bp2rflkW.js +0 -2
  1593. package/web-ui/build/static/nsis-Bp2rflkW.js.map +0 -1
  1594. package/web-ui/build/static/nsis-tn104hXr.js +0 -2
  1595. package/web-ui/build/static/nsis-tn104hXr.js.map +0 -1
  1596. package/web-ui/build/static/objectivec-CJPpf3kd.js +0 -2
  1597. package/web-ui/build/static/objectivec-CJPpf3kd.js.map +0 -1
  1598. package/web-ui/build/static/objectivec-DnAZa1rv.js +0 -2
  1599. package/web-ui/build/static/objectivec-DnAZa1rv.js.map +0 -1
  1600. package/web-ui/build/static/ocaml-CZz3i9EB.js +0 -2
  1601. package/web-ui/build/static/ocaml-CZz3i9EB.js.map +0 -1
  1602. package/web-ui/build/static/ocaml-yN_PYkXl.js +0 -2
  1603. package/web-ui/build/static/ocaml-yN_PYkXl.js.map +0 -1
  1604. package/web-ui/build/static/opencl-CapeXxSJ.js +0 -2
  1605. package/web-ui/build/static/opencl-CapeXxSJ.js.map +0 -1
  1606. package/web-ui/build/static/openqasm-aED1A6xF.js +0 -2
  1607. package/web-ui/build/static/openqasm-aED1A6xF.js.map +0 -1
  1608. package/web-ui/build/static/openscad-DdgNB5Dd.js +0 -2
  1609. package/web-ui/build/static/openscad-DdgNB5Dd.js.map +0 -1
  1610. package/web-ui/build/static/oxygene-BclunzrN.js +0 -2
  1611. package/web-ui/build/static/oxygene-BclunzrN.js.map +0 -1
  1612. package/web-ui/build/static/oz-DMavFbqw.js +0 -2
  1613. package/web-ui/build/static/oz-DMavFbqw.js.map +0 -1
  1614. package/web-ui/build/static/parigp-SI8cSF8o.js +0 -2
  1615. package/web-ui/build/static/parigp-SI8cSF8o.js.map +0 -1
  1616. package/web-ui/build/static/parser-pN0_g7UE.js +0 -2
  1617. package/web-ui/build/static/parser-pN0_g7UE.js.map +0 -1
  1618. package/web-ui/build/static/parser3-DRSPoR0d.js +0 -2
  1619. package/web-ui/build/static/parser3-DRSPoR0d.js.map +0 -1
  1620. package/web-ui/build/static/pascal-CzIwspSP.js +0 -2
  1621. package/web-ui/build/static/pascal-CzIwspSP.js.map +0 -1
  1622. package/web-ui/build/static/pascaligo-B0-tsCHJ.js +0 -2
  1623. package/web-ui/build/static/pascaligo-B0-tsCHJ.js.map +0 -1
  1624. package/web-ui/build/static/pcaxis-D1kwKUAL.js +0 -2
  1625. package/web-ui/build/static/pcaxis-D1kwKUAL.js.map +0 -1
  1626. package/web-ui/build/static/peoplecode-C8XuYU_O.js +0 -2
  1627. package/web-ui/build/static/peoplecode-C8XuYU_O.js.map +0 -1
  1628. package/web-ui/build/static/perl-Ca2FDxCS.js +0 -2
  1629. package/web-ui/build/static/perl-Ca2FDxCS.js.map +0 -1
  1630. package/web-ui/build/static/perl-KR25WPfJ.js +0 -2
  1631. package/web-ui/build/static/perl-KR25WPfJ.js.map +0 -1
  1632. package/web-ui/build/static/pf-Bx1uwoaw.js +0 -2
  1633. package/web-ui/build/static/pf-Bx1uwoaw.js.map +0 -1
  1634. package/web-ui/build/static/pgsql-CVaF77hw.js +0 -2
  1635. package/web-ui/build/static/pgsql-CVaF77hw.js.map +0 -1
  1636. package/web-ui/build/static/php-Blx0YiWi.js +0 -2
  1637. package/web-ui/build/static/php-Blx0YiWi.js.map +0 -1
  1638. package/web-ui/build/static/php-BncT2Zz9.js +0 -2
  1639. package/web-ui/build/static/php-BncT2Zz9.js.map +0 -1
  1640. package/web-ui/build/static/php-extras-D6lfFhFv.js +0 -2
  1641. package/web-ui/build/static/php-extras-D6lfFhFv.js.map +0 -1
  1642. package/web-ui/build/static/php-template-CFLIm9z9.js +0 -2
  1643. package/web-ui/build/static/php-template-CFLIm9z9.js.map +0 -1
  1644. package/web-ui/build/static/phpdoc-BJ4GsuFg.js +0 -2
  1645. package/web-ui/build/static/phpdoc-BJ4GsuFg.js.map +0 -1
  1646. package/web-ui/build/static/plaintext-Bb-0Il1J.js +0 -2
  1647. package/web-ui/build/static/plaintext-Bb-0Il1J.js.map +0 -1
  1648. package/web-ui/build/static/plsql-BsXYTQka.js +0 -2
  1649. package/web-ui/build/static/plsql-BsXYTQka.js.map +0 -1
  1650. package/web-ui/build/static/pony-AgPTXht6.js +0 -2
  1651. package/web-ui/build/static/pony-AgPTXht6.js.map +0 -1
  1652. package/web-ui/build/static/powerquery-BLdDcLiC.js +0 -2
  1653. package/web-ui/build/static/powerquery-BLdDcLiC.js.map +0 -1
  1654. package/web-ui/build/static/powershell-BlpdkHw6.js +0 -2
  1655. package/web-ui/build/static/powershell-BlpdkHw6.js.map +0 -1
  1656. package/web-ui/build/static/powershell-DTmFM6fi.js +0 -2
  1657. package/web-ui/build/static/powershell-DTmFM6fi.js.map +0 -1
  1658. package/web-ui/build/static/processing-COTmOJVu.js +0 -2
  1659. package/web-ui/build/static/processing-COTmOJVu.js.map +0 -1
  1660. package/web-ui/build/static/processing-o1IuAuSS.js +0 -2
  1661. package/web-ui/build/static/processing-o1IuAuSS.js.map +0 -1
  1662. package/web-ui/build/static/profile-xtxHa-Up.js +0 -2
  1663. package/web-ui/build/static/profile-xtxHa-Up.js.map +0 -1
  1664. package/web-ui/build/static/prolog-B-c1eAWA.js +0 -2
  1665. package/web-ui/build/static/prolog-B-c1eAWA.js.map +0 -1
  1666. package/web-ui/build/static/prolog-DbZCUyV7.js +0 -2
  1667. package/web-ui/build/static/prolog-DbZCUyV7.js.map +0 -1
  1668. package/web-ui/build/static/promql-CgnPH9yj.js +0 -2
  1669. package/web-ui/build/static/promql-CgnPH9yj.js.map +0 -1
  1670. package/web-ui/build/static/properties-CKnFby_U.js +0 -2
  1671. package/web-ui/build/static/properties-CKnFby_U.js.map +0 -1
  1672. package/web-ui/build/static/properties-Dd7EH8Ku.js +0 -2
  1673. package/web-ui/build/static/properties-Dd7EH8Ku.js.map +0 -1
  1674. package/web-ui/build/static/protobuf-B-_F7v12.js +0 -2
  1675. package/web-ui/build/static/protobuf-B-_F7v12.js.map +0 -1
  1676. package/web-ui/build/static/protobuf-CcW5SlZb.js +0 -2
  1677. package/web-ui/build/static/protobuf-CcW5SlZb.js.map +0 -1
  1678. package/web-ui/build/static/psl-DIKicPGo.js +0 -2
  1679. package/web-ui/build/static/psl-DIKicPGo.js.map +0 -1
  1680. package/web-ui/build/static/pug-DPy5FgBG.js +0 -2
  1681. package/web-ui/build/static/pug-DPy5FgBG.js.map +0 -1
  1682. package/web-ui/build/static/puppet-CO8XUhcc.js +0 -2
  1683. package/web-ui/build/static/puppet-CO8XUhcc.js.map +0 -1
  1684. package/web-ui/build/static/puppet-D-9m8ldY.js +0 -2
  1685. package/web-ui/build/static/puppet-D-9m8ldY.js.map +0 -1
  1686. package/web-ui/build/static/pure-DVUfyF_2.js +0 -2
  1687. package/web-ui/build/static/pure-DVUfyF_2.js.map +0 -1
  1688. package/web-ui/build/static/purebasic-C6kq7P4r.js +0 -2
  1689. package/web-ui/build/static/purebasic-C6kq7P4r.js.map +0 -1
  1690. package/web-ui/build/static/purebasic-D_UdSQjW.js +0 -2
  1691. package/web-ui/build/static/purebasic-D_UdSQjW.js.map +0 -1
  1692. package/web-ui/build/static/purescript-B_Fjig8A.js +0 -2
  1693. package/web-ui/build/static/purescript-B_Fjig8A.js.map +0 -1
  1694. package/web-ui/build/static/python-CIzUlHLt.js +0 -2
  1695. package/web-ui/build/static/python-CIzUlHLt.js.map +0 -1
  1696. package/web-ui/build/static/python-VX5rTaVs.js +0 -2
  1697. package/web-ui/build/static/python-VX5rTaVs.js.map +0 -1
  1698. package/web-ui/build/static/python-repl--mNQPseb.js +0 -2
  1699. package/web-ui/build/static/python-repl--mNQPseb.js.map +0 -1
  1700. package/web-ui/build/static/q-D2ouIXTV.js +0 -2
  1701. package/web-ui/build/static/q-D2ouIXTV.js.map +0 -1
  1702. package/web-ui/build/static/q-DK-O5ZIG.js +0 -2
  1703. package/web-ui/build/static/q-DK-O5ZIG.js.map +0 -1
  1704. package/web-ui/build/static/qml-4kVMsyFK.js +0 -2
  1705. package/web-ui/build/static/qml-4kVMsyFK.js.map +0 -1
  1706. package/web-ui/build/static/qml-DrPhJSIm.js +0 -2
  1707. package/web-ui/build/static/qml-DrPhJSIm.js.map +0 -1
  1708. package/web-ui/build/static/qore-DfWU-1-k.js +0 -2
  1709. package/web-ui/build/static/qore-DfWU-1-k.js.map +0 -1
  1710. package/web-ui/build/static/qsharp-DcM_GRYK.js +0 -2
  1711. package/web-ui/build/static/qsharp-DcM_GRYK.js.map +0 -1
  1712. package/web-ui/build/static/r-DNtDT6aX.js +0 -2
  1713. package/web-ui/build/static/r-DNtDT6aX.js.map +0 -1
  1714. package/web-ui/build/static/r-dwYzD1L9.js +0 -2
  1715. package/web-ui/build/static/r-dwYzD1L9.js.map +0 -1
  1716. package/web-ui/build/static/racket-Df84j74i.js +0 -2
  1717. package/web-ui/build/static/racket-Df84j74i.js.map +0 -1
  1718. package/web-ui/build/static/reason-CN4Oo0e6.js +0 -2
  1719. package/web-ui/build/static/reason-CN4Oo0e6.js.map +0 -1
  1720. package/web-ui/build/static/reasonml-DfnyPdtk.js +0 -2
  1721. package/web-ui/build/static/reasonml-DfnyPdtk.js.map +0 -1
  1722. package/web-ui/build/static/regex-Dwf2vk_x.js +0 -2
  1723. package/web-ui/build/static/regex-Dwf2vk_x.js.map +0 -1
  1724. package/web-ui/build/static/rego-DKsrRaLm.js +0 -2
  1725. package/web-ui/build/static/rego-DKsrRaLm.js.map +0 -1
  1726. package/web-ui/build/static/renpy-CwbXL3ll.js +0 -2
  1727. package/web-ui/build/static/renpy-CwbXL3ll.js.map +0 -1
  1728. package/web-ui/build/static/rest-C8fnirwj.js +0 -2
  1729. package/web-ui/build/static/rest-C8fnirwj.js.map +0 -1
  1730. package/web-ui/build/static/rib-CoubKiCe.js +0 -2
  1731. package/web-ui/build/static/rib-CoubKiCe.js.map +0 -1
  1732. package/web-ui/build/static/rip-CFcKHWOI.js +0 -2
  1733. package/web-ui/build/static/rip-CFcKHWOI.js.map +0 -1
  1734. package/web-ui/build/static/roboconf-CsXzxEf0.js +0 -2
  1735. package/web-ui/build/static/roboconf-CsXzxEf0.js.map +0 -1
  1736. package/web-ui/build/static/roboconf-CznEW0IS.js +0 -2
  1737. package/web-ui/build/static/roboconf-CznEW0IS.js.map +0 -1
  1738. package/web-ui/build/static/robotframework-G2SO947n.js +0 -2
  1739. package/web-ui/build/static/robotframework-G2SO947n.js.map +0 -1
  1740. package/web-ui/build/static/routeros-BetZLoWk.js +0 -2
  1741. package/web-ui/build/static/routeros-BetZLoWk.js.map +0 -1
  1742. package/web-ui/build/static/rsl-D6aqK1xR.js +0 -2
  1743. package/web-ui/build/static/rsl-D6aqK1xR.js.map +0 -1
  1744. package/web-ui/build/static/ruby-B3rtMcxn.js +0 -2
  1745. package/web-ui/build/static/ruby-B3rtMcxn.js.map +0 -1
  1746. package/web-ui/build/static/ruby-BYqglBLE.js +0 -2
  1747. package/web-ui/build/static/ruby-BYqglBLE.js.map +0 -1
  1748. package/web-ui/build/static/ruleslanguage-BAHKvB94.js +0 -2
  1749. package/web-ui/build/static/ruleslanguage-BAHKvB94.js.map +0 -1
  1750. package/web-ui/build/static/rust-BlWuNAp3.js +0 -2
  1751. package/web-ui/build/static/rust-BlWuNAp3.js.map +0 -1
  1752. package/web-ui/build/static/rust-bKrIjHnj.js +0 -2
  1753. package/web-ui/build/static/rust-bKrIjHnj.js.map +0 -1
  1754. package/web-ui/build/static/sas-BgygXlqP.js +0 -2
  1755. package/web-ui/build/static/sas-BgygXlqP.js.map +0 -1
  1756. package/web-ui/build/static/sas-Dgl5gez5.js +0 -2
  1757. package/web-ui/build/static/sas-Dgl5gez5.js.map +0 -1
  1758. package/web-ui/build/static/sass-DcGTLm5M.js +0 -2
  1759. package/web-ui/build/static/sass-DcGTLm5M.js.map +0 -1
  1760. package/web-ui/build/static/scala-CHQyIgY9.js +0 -2
  1761. package/web-ui/build/static/scala-CHQyIgY9.js.map +0 -1
  1762. package/web-ui/build/static/scala-D4yMIuvM.js +0 -2
  1763. package/web-ui/build/static/scala-D4yMIuvM.js.map +0 -1
  1764. package/web-ui/build/static/scheme-DyscENY0.js +0 -2
  1765. package/web-ui/build/static/scheme-DyscENY0.js.map +0 -1
  1766. package/web-ui/build/static/scheme-kby1HJxJ.js +0 -2
  1767. package/web-ui/build/static/scheme-kby1HJxJ.js.map +0 -1
  1768. package/web-ui/build/static/scilab-DA1ZiDIv.js +0 -2
  1769. package/web-ui/build/static/scilab-DA1ZiDIv.js.map +0 -1
  1770. package/web-ui/build/static/scss-BZjFVzSt.js +0 -2
  1771. package/web-ui/build/static/scss-BZjFVzSt.js.map +0 -1
  1772. package/web-ui/build/static/scss-DuedndOH.js +0 -2
  1773. package/web-ui/build/static/scss-DuedndOH.js.map +0 -1
  1774. package/web-ui/build/static/shell-BJeROUFU.js +0 -2
  1775. package/web-ui/build/static/shell-BJeROUFU.js.map +0 -1
  1776. package/web-ui/build/static/shell-session-BlxhqJSB.js +0 -2
  1777. package/web-ui/build/static/shell-session-BlxhqJSB.js.map +0 -1
  1778. package/web-ui/build/static/smali-DvdZkAJm.js +0 -2
  1779. package/web-ui/build/static/smali-DvdZkAJm.js.map +0 -1
  1780. package/web-ui/build/static/smali-r27CmYFc.js +0 -2
  1781. package/web-ui/build/static/smali-r27CmYFc.js.map +0 -1
  1782. package/web-ui/build/static/smalltalk-B0RRdtPe.js +0 -2
  1783. package/web-ui/build/static/smalltalk-B0RRdtPe.js.map +0 -1
  1784. package/web-ui/build/static/smalltalk-D82eQw7I.js +0 -2
  1785. package/web-ui/build/static/smalltalk-D82eQw7I.js.map +0 -1
  1786. package/web-ui/build/static/smarty-C4I_cvUR.js +0 -2
  1787. package/web-ui/build/static/smarty-C4I_cvUR.js.map +0 -1
  1788. package/web-ui/build/static/sml-D2Nfmg_6.js +0 -2
  1789. package/web-ui/build/static/sml-D2Nfmg_6.js.map +0 -1
  1790. package/web-ui/build/static/sml-DYOA2vUN.js +0 -2
  1791. package/web-ui/build/static/sml-DYOA2vUN.js.map +0 -1
  1792. package/web-ui/build/static/solidity-B-Xcx_MF.js +0 -2
  1793. package/web-ui/build/static/solidity-B-Xcx_MF.js.map +0 -1
  1794. package/web-ui/build/static/solution-file-Ce5YrgXb.js +0 -2
  1795. package/web-ui/build/static/solution-file-Ce5YrgXb.js.map +0 -1
  1796. package/web-ui/build/static/soy-BUZbhpt5.js +0 -2
  1797. package/web-ui/build/static/soy-BUZbhpt5.js.map +0 -1
  1798. package/web-ui/build/static/sparql-sAp9ai5y.js +0 -2
  1799. package/web-ui/build/static/sparql-sAp9ai5y.js.map +0 -1
  1800. package/web-ui/build/static/splunk-spl-CLS1A2J4.js +0 -2
  1801. package/web-ui/build/static/splunk-spl-CLS1A2J4.js.map +0 -1
  1802. package/web-ui/build/static/sqf-DHTUbNlx.js +0 -2
  1803. package/web-ui/build/static/sqf-DHTUbNlx.js.map +0 -1
  1804. package/web-ui/build/static/sqf-DZBxBgOh.js +0 -2
  1805. package/web-ui/build/static/sqf-DZBxBgOh.js.map +0 -1
  1806. package/web-ui/build/static/sql-CV7wELE7.js +0 -2
  1807. package/web-ui/build/static/sql-CV7wELE7.js.map +0 -1
  1808. package/web-ui/build/static/sql-D0xXAIEP.js +0 -2
  1809. package/web-ui/build/static/sql-D0xXAIEP.js.map +0 -1
  1810. package/web-ui/build/static/sql_more-BNWiWg5y.js +0 -2
  1811. package/web-ui/build/static/sql_more-BNWiWg5y.js.map +0 -1
  1812. package/web-ui/build/static/squirrel-CUcEAmX-.js +0 -2
  1813. package/web-ui/build/static/squirrel-CUcEAmX-.js.map +0 -1
  1814. package/web-ui/build/static/stan-DizpP3cm.js +0 -2
  1815. package/web-ui/build/static/stan-DizpP3cm.js.map +0 -1
  1816. package/web-ui/build/static/stan-I_fkJJoh.js +0 -2
  1817. package/web-ui/build/static/stan-I_fkJJoh.js.map +0 -1
  1818. package/web-ui/build/static/stata-Csa4nKie.js +0 -2
  1819. package/web-ui/build/static/stata-Csa4nKie.js.map +0 -1
  1820. package/web-ui/build/static/step21-C44HwHl-.js +0 -2
  1821. package/web-ui/build/static/step21-C44HwHl-.js.map +0 -1
  1822. package/web-ui/build/static/stylus-3b5m0Cir.js +0 -2
  1823. package/web-ui/build/static/stylus-3b5m0Cir.js.map +0 -1
  1824. package/web-ui/build/static/stylus-8hUNgNgp.js +0 -2
  1825. package/web-ui/build/static/stylus-8hUNgNgp.js.map +0 -1
  1826. package/web-ui/build/static/subunit-C1D3XSRf.js +0 -2
  1827. package/web-ui/build/static/subunit-C1D3XSRf.js.map +0 -1
  1828. package/web-ui/build/static/swift-CNWTU_F-.js +0 -2
  1829. package/web-ui/build/static/swift-CNWTU_F-.js.map +0 -1
  1830. package/web-ui/build/static/swift-CUHVKPEa.js +0 -2
  1831. package/web-ui/build/static/swift-CUHVKPEa.js.map +0 -1
  1832. package/web-ui/build/static/systemd-DDRNHvgX.js +0 -2
  1833. package/web-ui/build/static/systemd-DDRNHvgX.js.map +0 -1
  1834. package/web-ui/build/static/t4-cs-MV4OZ1n5.js +0 -2
  1835. package/web-ui/build/static/t4-cs-MV4OZ1n5.js.map +0 -1
  1836. package/web-ui/build/static/t4-templating-CTZifPR2.js +0 -2
  1837. package/web-ui/build/static/t4-templating-CTZifPR2.js.map +0 -1
  1838. package/web-ui/build/static/t4-vb-UUs-rMbd.js +0 -2
  1839. package/web-ui/build/static/t4-vb-UUs-rMbd.js.map +0 -1
  1840. package/web-ui/build/static/taggerscript-DqTzC4fm.js +0 -2
  1841. package/web-ui/build/static/taggerscript-DqTzC4fm.js.map +0 -1
  1842. package/web-ui/build/static/tap-BToCdE2N.js +0 -2
  1843. package/web-ui/build/static/tap-BToCdE2N.js.map +0 -1
  1844. package/web-ui/build/static/tap-CaOWNm0o.js +0 -2
  1845. package/web-ui/build/static/tap-CaOWNm0o.js.map +0 -1
  1846. package/web-ui/build/static/tcl-CJO-Ym3c.js +0 -2
  1847. package/web-ui/build/static/tcl-CJO-Ym3c.js.map +0 -1
  1848. package/web-ui/build/static/tcl-CXCCempr.js +0 -2
  1849. package/web-ui/build/static/tcl-CXCCempr.js.map +0 -1
  1850. package/web-ui/build/static/textile-CHeZaje2.js +0 -2
  1851. package/web-ui/build/static/textile-CHeZaje2.js.map +0 -1
  1852. package/web-ui/build/static/thrift-CA5E4lJi.js +0 -2
  1853. package/web-ui/build/static/thrift-CA5E4lJi.js.map +0 -1
  1854. package/web-ui/build/static/toml-HZDoIKyD.js +0 -2
  1855. package/web-ui/build/static/toml-HZDoIKyD.js.map +0 -1
  1856. package/web-ui/build/static/tp-D5aWnREj.js +0 -2
  1857. package/web-ui/build/static/tp-D5aWnREj.js.map +0 -1
  1858. package/web-ui/build/static/tremor-CYDMiNB_.js +0 -2
  1859. package/web-ui/build/static/tremor-CYDMiNB_.js.map +0 -1
  1860. package/web-ui/build/static/tsx-BYnsHFJW.js +0 -2
  1861. package/web-ui/build/static/tsx-BYnsHFJW.js.map +0 -1
  1862. package/web-ui/build/static/tt2-ByQIdaAN.js +0 -2
  1863. package/web-ui/build/static/tt2-ByQIdaAN.js.map +0 -1
  1864. package/web-ui/build/static/turtle-iRysXQZ7.js +0 -2
  1865. package/web-ui/build/static/turtle-iRysXQZ7.js.map +0 -1
  1866. package/web-ui/build/static/twig-PVhTDTMB.js +0 -2
  1867. package/web-ui/build/static/twig-PVhTDTMB.js.map +0 -1
  1868. package/web-ui/build/static/twig-mSyGn5y_.js +0 -2
  1869. package/web-ui/build/static/twig-mSyGn5y_.js.map +0 -1
  1870. package/web-ui/build/static/typescript-BhKlIa27.js +0 -2
  1871. package/web-ui/build/static/typescript-BhKlIa27.js.map +0 -1
  1872. package/web-ui/build/static/typescript-CcCqg2Ij.js +0 -2
  1873. package/web-ui/build/static/typescript-CcCqg2Ij.js.map +0 -1
  1874. package/web-ui/build/static/typoscript-Cb_EMgbj.js +0 -2
  1875. package/web-ui/build/static/typoscript-Cb_EMgbj.js.map +0 -1
  1876. package/web-ui/build/static/unrealscript-CsHWC3iS.js +0 -2
  1877. package/web-ui/build/static/unrealscript-CsHWC3iS.js.map +0 -1
  1878. package/web-ui/build/static/uorazor-xAmV-Utw.js +0 -2
  1879. package/web-ui/build/static/uorazor-xAmV-Utw.js.map +0 -1
  1880. package/web-ui/build/static/uri-wfuNuEzb.js +0 -2
  1881. package/web-ui/build/static/uri-wfuNuEzb.js.map +0 -1
  1882. package/web-ui/build/static/v-UWy09hH1.js +0 -2
  1883. package/web-ui/build/static/v-UWy09hH1.js.map +0 -1
  1884. package/web-ui/build/static/vala-CGdabItU.js +0 -2
  1885. package/web-ui/build/static/vala-CGdabItU.js.map +0 -1
  1886. package/web-ui/build/static/vala-DkjA157E.js +0 -2
  1887. package/web-ui/build/static/vala-DkjA157E.js.map +0 -1
  1888. package/web-ui/build/static/vbnet-BW0_2BDq.js +0 -2
  1889. package/web-ui/build/static/vbnet-BW0_2BDq.js.map +0 -1
  1890. package/web-ui/build/static/vbnet-wRDbvdTB.js +0 -2
  1891. package/web-ui/build/static/vbnet-wRDbvdTB.js.map +0 -1
  1892. package/web-ui/build/static/vbscript-Kq-giwfC.js +0 -2
  1893. package/web-ui/build/static/vbscript-Kq-giwfC.js.map +0 -1
  1894. package/web-ui/build/static/vbscript-html-CN9MRyjc.js +0 -2
  1895. package/web-ui/build/static/vbscript-html-CN9MRyjc.js.map +0 -1
  1896. package/web-ui/build/static/velocity-CbfCiTy8.js +0 -2
  1897. package/web-ui/build/static/velocity-CbfCiTy8.js.map +0 -1
  1898. package/web-ui/build/static/verilog-BXu9V06a.js +0 -2
  1899. package/web-ui/build/static/verilog-BXu9V06a.js.map +0 -1
  1900. package/web-ui/build/static/verilog-CDsJYNV0.js +0 -2
  1901. package/web-ui/build/static/verilog-CDsJYNV0.js.map +0 -1
  1902. package/web-ui/build/static/vhdl-DqFHm35G.js +0 -2
  1903. package/web-ui/build/static/vhdl-DqFHm35G.js.map +0 -1
  1904. package/web-ui/build/static/vhdl-ZBVe-G7o.js +0 -2
  1905. package/web-ui/build/static/vhdl-ZBVe-G7o.js.map +0 -1
  1906. package/web-ui/build/static/vim-C9t0OqUm.js +0 -2
  1907. package/web-ui/build/static/vim-C9t0OqUm.js.map +0 -1
  1908. package/web-ui/build/static/vim-CK3NDA2b.js +0 -2
  1909. package/web-ui/build/static/vim-CK3NDA2b.js.map +0 -1
  1910. package/web-ui/build/static/visual-basic-5VzpWXap.js +0 -2
  1911. package/web-ui/build/static/visual-basic-5VzpWXap.js.map +0 -1
  1912. package/web-ui/build/static/warpscript-DRnf-QIs.js +0 -2
  1913. package/web-ui/build/static/warpscript-DRnf-QIs.js.map +0 -1
  1914. package/web-ui/build/static/wasm-CJDFrN_6.js +0 -2
  1915. package/web-ui/build/static/wasm-CJDFrN_6.js.map +0 -1
  1916. package/web-ui/build/static/web-idl-Bi7tOKF3.js +0 -2
  1917. package/web-ui/build/static/web-idl-Bi7tOKF3.js.map +0 -1
  1918. package/web-ui/build/static/wiki-CunYRQhT.js +0 -2
  1919. package/web-ui/build/static/wiki-CunYRQhT.js.map +0 -1
  1920. package/web-ui/build/static/wolfram-D9UFIPPp.js +0 -2
  1921. package/web-ui/build/static/wolfram-D9UFIPPp.js.map +0 -1
  1922. package/web-ui/build/static/wren-CToJZ9Ce.js +0 -2
  1923. package/web-ui/build/static/wren-CToJZ9Ce.js.map +0 -1
  1924. package/web-ui/build/static/x86asm-B-AElpbb.js +0 -2
  1925. package/web-ui/build/static/x86asm-B-AElpbb.js.map +0 -1
  1926. package/web-ui/build/static/xeora-BcRTdkG2.js +0 -2
  1927. package/web-ui/build/static/xeora-BcRTdkG2.js.map +0 -1
  1928. package/web-ui/build/static/xl-Cwu2I1yC.js +0 -2
  1929. package/web-ui/build/static/xl-Cwu2I1yC.js.map +0 -1
  1930. package/web-ui/build/static/xml-doc-BtR7IdrW.js +0 -2
  1931. package/web-ui/build/static/xml-doc-BtR7IdrW.js.map +0 -1
  1932. package/web-ui/build/static/xml-mZ7PgkAO.js +0 -2
  1933. package/web-ui/build/static/xml-mZ7PgkAO.js.map +0 -1
  1934. package/web-ui/build/static/xojo-Cb3WMgE0.js +0 -2
  1935. package/web-ui/build/static/xojo-Cb3WMgE0.js.map +0 -1
  1936. package/web-ui/build/static/xquery-BUPccOak.js +0 -2
  1937. package/web-ui/build/static/xquery-BUPccOak.js.map +0 -1
  1938. package/web-ui/build/static/xquery-vTV6QmEN.js +0 -2
  1939. package/web-ui/build/static/xquery-vTV6QmEN.js.map +0 -1
  1940. package/web-ui/build/static/yaml-C1tzs4lC.js +0 -2
  1941. package/web-ui/build/static/yaml-C1tzs4lC.js.map +0 -1
  1942. package/web-ui/build/static/yaml-Dc5uId9V.js +0 -2
  1943. package/web-ui/build/static/yaml-Dc5uId9V.js.map +0 -1
  1944. package/web-ui/build/static/yang-C52DJGPY.js +0 -2
  1945. package/web-ui/build/static/yang-C52DJGPY.js.map +0 -1
  1946. package/web-ui/build/static/zephir-pB3vIR1F.js +0 -2
  1947. package/web-ui/build/static/zephir-pB3vIR1F.js.map +0 -1
  1948. package/web-ui/build/static/zig-CSRbdGmK.js +0 -2
  1949. package/web-ui/build/static/zig-CSRbdGmK.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ import { jest, describe, it, expect, beforeEach, afterEach } from '@jest/globals';
2
+ import express from 'express';
3
+ import { createServer } from 'http';
4
+ import { registerAttachmentRoutes } from '../attachmentRoutes.js';
5
+
6
+ async function post(url, body) {
7
+ const resp = await globalThis.fetch(url, {
8
+ method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify(body || {}),
9
+ });
10
+ const ct = resp.headers.get('content-type') || '';
11
+ return { status: resp.status, body: ct.includes('json') ? await resp.json() : await resp.text() };
12
+ }
13
+
14
+ function startApp(getIngestionService) {
15
+ const app = express();
16
+ // NOTE: deliberately NO global express.json — the route mounts its own parser.
17
+ registerAttachmentRoutes(app, { getIngestionService, logger: { error: jest.fn() } });
18
+ const server = createServer(app);
19
+ return new Promise((r) => server.listen(0, () => r({ server, baseUrl: `http://localhost:${server.address().port}` })));
20
+ }
21
+
22
+ let ingestion;
23
+ beforeEach(() => {
24
+ ingestion = {
25
+ ingestUpload: jest.fn().mockResolvedValue({ fileId: 'f1', fileName: 'pic.png' }),
26
+ ingestServerPath: jest.fn().mockResolvedValue({ fileId: 'f2', fileName: 'doc.pdf' }),
27
+ };
28
+ });
29
+
30
+ describe('POST /api/agents/:id/attachments', () => {
31
+ let server, baseUrl;
32
+ beforeEach(async () => { ({ server, baseUrl } = await startApp(() => ingestion)); });
33
+ afterEach(() => server?.close());
34
+
35
+ it('routes a base64 upload to ingestUpload', async () => {
36
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'pic.png', dataBase64: 'AAAA', mode: 'content' });
37
+ expect(r.status).toBe(200);
38
+ expect(r.body).toEqual({ success: true, attachment: { fileId: 'f1', fileName: 'pic.png' } });
39
+ expect(ingestion.ingestUpload).toHaveBeenCalledWith(expect.objectContaining({ agentId: 'a1', fileName: 'pic.png', dataBase64: 'AAAA', mode: 'content' }));
40
+ expect(ingestion.ingestServerPath).not.toHaveBeenCalled();
41
+ });
42
+
43
+ it('routes a server filePath to ingestServerPath', async () => {
44
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { filePath: '/srv/doc.pdf', fileName: 'doc.pdf' });
45
+ expect(r.status).toBe(200);
46
+ expect(r.body.attachment.fileId).toBe('f2');
47
+ expect(ingestion.ingestServerPath).toHaveBeenCalledWith(expect.objectContaining({ agentId: 'a1', filePath: '/srv/doc.pdf', fileName: 'doc.pdf' }));
48
+ });
49
+
50
+ it('forwards scope + conversationId to ingestion', async () => {
51
+ await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x', dataBase64: 'AA', scope: 'conversation', conversationId: 'c1' });
52
+ expect(ingestion.ingestUpload).toHaveBeenCalledWith(expect.objectContaining({ scope: 'conversation', conversationId: 'c1' }));
53
+ });
54
+
55
+ it('prefers dataBase64 over filePath when both are present', async () => {
56
+ await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x', dataBase64: 'AA', filePath: '/srv/x' });
57
+ expect(ingestion.ingestUpload).toHaveBeenCalledTimes(1);
58
+ expect(ingestion.ingestServerPath).not.toHaveBeenCalled();
59
+ });
60
+
61
+ it('400s when neither source is provided', async () => {
62
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x' });
63
+ expect(r.status).toBe(400);
64
+ expect(r.body.error).toMatch(/Provide dataBase64.*or filePath/);
65
+ });
66
+
67
+ it('400s with the error message when ingestion throws (validation)', async () => {
68
+ ingestion.ingestUpload.mockRejectedValueOnce(new Error('Executable files (.exe) are not allowed'));
69
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'm.exe', dataBase64: 'AA' });
70
+ expect(r.status).toBe(400);
71
+ expect(r.body).toMatchObject({ success: false, error: /not allowed/ });
72
+ });
73
+ });
74
+
75
+ describe('service-absent + defensive', () => {
76
+ it('503 when the ingestion service is not wired yet (boot ordering)', async () => {
77
+ const { server, baseUrl } = await startApp(() => null);
78
+ try {
79
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x', dataBase64: 'AA' });
80
+ expect(r.status).toBe(503);
81
+ } finally { server.close(); }
82
+ });
83
+
84
+ it('503 when no thunk is supplied at all', async () => {
85
+ const { server, baseUrl } = await startApp(undefined);
86
+ try {
87
+ expect((await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x', dataBase64: 'AA' })).status).toBe(503);
88
+ } finally { server.close(); }
89
+ });
90
+
91
+ it('no-ops when app is null (with and without an options object)', () => {
92
+ expect(() => registerAttachmentRoutes(null, {})).not.toThrow();
93
+ expect(() => registerAttachmentRoutes(undefined)).not.toThrow(); // default {} options arm
94
+ });
95
+
96
+ it('handles a request whose body the JSON parser left unset (non-JSON content-type)', async () => {
97
+ const { server, baseUrl } = await startApp(() => ingestion);
98
+ try {
99
+ const resp = await globalThis.fetch(`${baseUrl}/api/agents/a1/attachments`, {
100
+ method: 'POST', headers: { 'content-type': 'text/plain' }, body: 'not json',
101
+ });
102
+ expect(resp.status).toBe(400); // req.body || {} → no source → 400, no crash
103
+ } finally { server.close(); }
104
+ });
105
+
106
+ it('works with no logger supplied (uses the no-op fallback) on the error path', async () => {
107
+ const ing = { ingestUpload: jest.fn().mockRejectedValue(new Error('boom')), ingestServerPath: jest.fn() };
108
+ const app = express();
109
+ registerAttachmentRoutes(app, { getIngestionService: () => ing }); // no logger
110
+ const server = createServer(app);
111
+ await new Promise((r) => server.listen(0, r));
112
+ const baseUrl = `http://localhost:${server.address().port}`;
113
+ try {
114
+ const r = await post(`${baseUrl}/api/agents/a1/attachments`, { fileName: 'x', dataBase64: 'AA' });
115
+ expect(r.status).toBe(400); // error path ran through the no-op logger without throwing
116
+ } finally { server.close(); }
117
+ });
118
+ });
@@ -226,3 +226,91 @@ describe('/api/images/:sessionId/:filename', () => {
226
226
  expect(body.error).toBe('Image not found');
227
227
  });
228
228
  });
229
+
230
+ // ── /api/image?path=… (serve an image by absolute path) ─────────────
231
+
232
+ function buildImageByPathApp() {
233
+ const app = express();
234
+ // Replicate the exact route from webServer.js
235
+ app.get('/api/image', async (req, res) => {
236
+ try {
237
+ const raw = req.query.path;
238
+ if (!raw || typeof raw !== 'string') {
239
+ return res.status(HTTP_STATUS.BAD_REQUEST).json({ success: false, error: 'path query is required' });
240
+ }
241
+ const resolved = path.resolve(raw);
242
+ const ext = path.extname(resolved).toLowerCase();
243
+ const ALLOWED = ['.png', '.jpg', '.jpeg', '.webp', '.gif', '.bmp', '.svg'];
244
+ if (!ALLOWED.includes(ext)) {
245
+ return res.status(HTTP_STATUS.BAD_REQUEST).json({ success: false, error: 'Unsupported image type' });
246
+ }
247
+ const stats = await fs.stat(resolved).catch(() => null);
248
+ if (!stats || !stats.isFile()) {
249
+ return res.status(HTTP_STATUS.NOT_FOUND).json({ success: false, error: 'Image not found' });
250
+ }
251
+ res.sendFile(resolved, (err) => {
252
+ if (err && !res.headersSent) {
253
+ res.status(HTTP_STATUS.NOT_FOUND).json({ success: false, error: 'Image not found' });
254
+ }
255
+ });
256
+ } catch (error) {
257
+ res.status(HTTP_STATUS.INTERNAL_SERVER_ERROR).json({ success: false, error: error.message });
258
+ }
259
+ });
260
+ return app;
261
+ }
262
+
263
+ describe('/api/image?path=', () => {
264
+ let server, baseUrl, tmpDir, imgPath, txtPath;
265
+
266
+ beforeAll(async () => {
267
+ tmpDir = path.join(os.tmpdir(), `loxia-img-bypath-${Date.now()}`);
268
+ await fs.mkdir(tmpDir, { recursive: true });
269
+ imgPath = path.join(tmpDir, 'pic.png');
270
+ txtPath = path.join(tmpDir, 'notes.txt');
271
+ await fs.writeFile(imgPath, Buffer.from([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]));
272
+ await fs.writeFile(txtPath, 'not an image');
273
+
274
+ server = createServer(buildImageByPathApp());
275
+ await new Promise(resolve => server.listen(0, resolve));
276
+ baseUrl = `http://localhost:${server.address().port}`;
277
+ });
278
+
279
+ afterAll(async () => {
280
+ server?.close();
281
+ await fs.rm(tmpDir, { recursive: true, force: true }).catch(() => {});
282
+ });
283
+
284
+ it('400 when path is missing', async () => {
285
+ const { status, body } = await fetch(`${baseUrl}/api/image`);
286
+ expect(status).toBe(400);
287
+ expect(body.error).toMatch(/path query is required/);
288
+ });
289
+
290
+ it('400 for a non-image extension', async () => {
291
+ const { status, body } = await fetch(`${baseUrl}/api/image?path=${encodeURIComponent(txtPath)}`);
292
+ expect(status).toBe(400);
293
+ expect(body.error).toMatch(/Unsupported image type/);
294
+ });
295
+
296
+ it('404 for an image path that does not exist', async () => {
297
+ const missing = path.join(tmpDir, 'ghost.png');
298
+ const { status, body } = await fetch(`${baseUrl}/api/image?path=${encodeURIComponent(missing)}`);
299
+ expect(status).toBe(404);
300
+ expect(body.error).toBe('Image not found');
301
+ });
302
+
303
+ it('404 when the path is a directory, not a file', async () => {
304
+ // A directory named like an image so the extension check passes.
305
+ const dirLikeImage = path.join(tmpDir, 'folder.png');
306
+ await fs.mkdir(dirLikeImage, { recursive: true });
307
+ const { status } = await fetch(`${baseUrl}/api/image?path=${encodeURIComponent(dirLikeImage)}`);
308
+ expect(status).toBe(404);
309
+ });
310
+
311
+ it('serves an existing image by absolute path', async () => {
312
+ const { status, headers } = await fetch(`${baseUrl}/api/image?path=${encodeURIComponent(imgPath)}`);
313
+ expect(status).toBe(200);
314
+ expect(headers.get('content-type')).toMatch(/image|octet/);
315
+ });
316
+ });
@@ -0,0 +1,223 @@
1
+ /**
2
+ * HTTP route tests for the scheduled-tasks API (registerScheduleRoutes).
3
+ *
4
+ * Mounts a real Express app + the production helper — the same shape
5
+ * webServer.js uses — so the status codes / response shapes and the
6
+ * service-absent + not-found + error branches are locked.
7
+ */
8
+ import { jest, describe, it, expect, beforeEach, afterEach } from '@jest/globals';
9
+ import express from 'express';
10
+ import { createServer } from 'http';
11
+ import { registerScheduleRoutes } from '../scheduleRoutes.js';
12
+
13
+ async function http(url, options = {}) {
14
+ const resp = await globalThis.fetch(url, options);
15
+ const ct = resp.headers.get('content-type') || '';
16
+ const body = ct.includes('json') ? await resp.json() : await resp.text();
17
+ return { status: resp.status, body };
18
+ }
19
+
20
+ function startApp(getScheduleService, logger = { error: jest.fn() }) {
21
+ const app = express();
22
+ app.use(express.json());
23
+ registerScheduleRoutes(app, { getScheduleService, logger });
24
+ const server = createServer(app);
25
+ return new Promise((resolve) => {
26
+ server.listen(0, () => resolve({ server, baseUrl: `http://localhost:${server.address().port}` }));
27
+ });
28
+ }
29
+
30
+ function fakeService(overrides = {}) {
31
+ return {
32
+ listSchedules: jest.fn().mockReturnValue([{ id: 's1', name: 'A' }]),
33
+ getPresets: jest.fn().mockReturnValue({ daily: '0 9 * * *' }),
34
+ createSchedule: jest.fn().mockResolvedValue({ id: 'new', name: 'New' }),
35
+ getSchedule: jest.fn().mockReturnValue({ id: 's1', name: 'A', enabled: true }),
36
+ updateSchedule: jest.fn().mockResolvedValue({ id: 's1', name: 'A', enabled: false }),
37
+ deleteSchedule: jest.fn().mockResolvedValue(undefined),
38
+ triggerSchedule: jest.fn().mockResolvedValue({ id: 's1', name: 'A', lastRunStatus: 'success' }),
39
+ ...overrides,
40
+ };
41
+ }
42
+
43
+ describe('registerScheduleRoutes — happy paths', () => {
44
+ let server, baseUrl, svc;
45
+ beforeEach(async () => {
46
+ svc = fakeService();
47
+ ({ server, baseUrl } = await startApp(() => svc));
48
+ });
49
+ afterEach(() => server?.close());
50
+
51
+ it('GET /api/schedules lists', async () => {
52
+ const r = await http(`${baseUrl}/api/schedules`);
53
+ expect(r.status).toBe(200);
54
+ expect(r.body).toEqual({ success: true, schedules: [{ id: 's1', name: 'A' }] });
55
+ });
56
+
57
+ it('GET /api/schedules/presets returns presets (and is not captured by /:id)', async () => {
58
+ const r = await http(`${baseUrl}/api/schedules/presets`);
59
+ expect(r.status).toBe(200);
60
+ expect(r.body).toEqual({ success: true, presets: { daily: '0 9 * * *' } });
61
+ expect(svc.getSchedule).not.toHaveBeenCalledWith('presets');
62
+ });
63
+
64
+ it('POST /api/schedules creates', async () => {
65
+ const r = await http(`${baseUrl}/api/schedules`, {
66
+ method: 'POST', headers: { 'content-type': 'application/json' },
67
+ body: JSON.stringify({ name: 'New' }),
68
+ });
69
+ expect(r.status).toBe(200);
70
+ expect(r.body).toEqual({ success: true, schedule: { id: 'new', name: 'New' } });
71
+ expect(svc.createSchedule).toHaveBeenCalledWith({ name: 'New' });
72
+ });
73
+
74
+ it('GET /api/schedules/:id reads', async () => {
75
+ const r = await http(`${baseUrl}/api/schedules/s1`);
76
+ expect(r.status).toBe(200);
77
+ expect(r.body.schedule.id).toBe('s1');
78
+ });
79
+
80
+ it('PUT /api/schedules/:id updates', async () => {
81
+ const r = await http(`${baseUrl}/api/schedules/s1`, {
82
+ method: 'PUT', headers: { 'content-type': 'application/json' },
83
+ body: JSON.stringify({ name: 'A' }),
84
+ });
85
+ expect(r.status).toBe(200);
86
+ expect(svc.updateSchedule).toHaveBeenCalledWith('s1', { name: 'A' });
87
+ });
88
+
89
+ it('DELETE /api/schedules/:id deletes', async () => {
90
+ const r = await http(`${baseUrl}/api/schedules/s1`, { method: 'DELETE' });
91
+ expect(r.status).toBe(200);
92
+ expect(r.body).toEqual({ success: true });
93
+ expect(svc.deleteSchedule).toHaveBeenCalledWith('s1');
94
+ });
95
+
96
+ it('POST /api/schedules/:id/trigger force-runs and returns run status', async () => {
97
+ const r = await http(`${baseUrl}/api/schedules/s1/trigger`, { method: 'POST' });
98
+ expect(r.status).toBe(200);
99
+ expect(r.body).toEqual({ success: true, scheduleName: 'A', lastRunStatus: 'success' });
100
+ expect(svc.triggerSchedule).toHaveBeenCalledWith('s1');
101
+ });
102
+
103
+ it('POST /api/schedules/:id/toggle flips enabled', async () => {
104
+ const r = await http(`${baseUrl}/api/schedules/s1/toggle`, { method: 'POST' });
105
+ expect(r.status).toBe(200);
106
+ expect(svc.updateSchedule).toHaveBeenCalledWith('s1', { enabled: false }); // current.enabled was true
107
+ });
108
+ });
109
+
110
+ describe('registerScheduleRoutes — service absent (boot ordering)', () => {
111
+ let server, baseUrl;
112
+ beforeEach(async () => { ({ server, baseUrl } = await startApp(() => null)); });
113
+ afterEach(() => server?.close());
114
+
115
+ it('list degrades to an empty array', async () => {
116
+ expect(await http(`${baseUrl}/api/schedules`)).toMatchObject({ status: 200, body: { schedules: [] } });
117
+ });
118
+ it('presets degrade to an empty object', async () => {
119
+ expect(await http(`${baseUrl}/api/schedules/presets`)).toMatchObject({ status: 200, body: { presets: {} } });
120
+ });
121
+ it('create 400s', async () => {
122
+ expect((await http(`${baseUrl}/api/schedules`, { method: 'POST', headers: { 'content-type': 'application/json' }, body: '{}' })).status).toBe(400);
123
+ });
124
+ it('read 404s', async () => {
125
+ expect((await http(`${baseUrl}/api/schedules/x`)).status).toBe(404);
126
+ });
127
+ it('update / delete / trigger / toggle 400 (trigger/toggle without a service)', async () => {
128
+ expect((await http(`${baseUrl}/api/schedules/x`, { method: 'PUT', headers: { 'content-type': 'application/json' }, body: '{}' })).status).toBe(400);
129
+ expect((await http(`${baseUrl}/api/schedules/x`, { method: 'DELETE' })).status).toBe(400);
130
+ expect((await http(`${baseUrl}/api/schedules/x/trigger`, { method: 'POST' })).status).toBe(400);
131
+ expect((await http(`${baseUrl}/api/schedules/x/toggle`, { method: 'POST' })).status).toBe(400);
132
+ });
133
+ });
134
+
135
+ describe('registerScheduleRoutes — not-found + error branches', () => {
136
+ it('trigger 404s when the schedule does not exist', async () => {
137
+ const svc = fakeService({ getSchedule: jest.fn().mockReturnValue(null) });
138
+ const { server, baseUrl } = await startApp(() => svc);
139
+ try {
140
+ const r = await http(`${baseUrl}/api/schedules/ghost/trigger`, { method: 'POST' });
141
+ expect(r.status).toBe(404);
142
+ expect(svc.triggerSchedule).not.toHaveBeenCalled();
143
+ } finally { server.close(); }
144
+ });
145
+
146
+ it('toggle 404s when the schedule does not exist', async () => {
147
+ const svc = fakeService({ getSchedule: jest.fn().mockReturnValue(null) });
148
+ const { server, baseUrl } = await startApp(() => svc);
149
+ try {
150
+ expect((await http(`${baseUrl}/api/schedules/ghost/toggle`, { method: 'POST' })).status).toBe(404);
151
+ } finally { server.close(); }
152
+ });
153
+
154
+ it('create 400s with the error message when the service throws (validation)', async () => {
155
+ const svc = fakeService({ createSchedule: jest.fn().mockRejectedValue(new Error('name is required')) });
156
+ const { server, baseUrl } = await startApp(() => svc);
157
+ try {
158
+ const r = await http(`${baseUrl}/api/schedules`, { method: 'POST', headers: { 'content-type': 'application/json' }, body: '{}' });
159
+ expect(r.status).toBe(400);
160
+ expect(r.body).toMatchObject({ success: false, error: 'name is required' });
161
+ } finally { server.close(); }
162
+ });
163
+
164
+ it('list 500s when the service throws', async () => {
165
+ const svc = fakeService({ listSchedules: jest.fn(() => { throw new Error('boom'); }) });
166
+ const { server, baseUrl } = await startApp(() => svc);
167
+ try {
168
+ const r = await http(`${baseUrl}/api/schedules`);
169
+ expect(r.status).toBe(500);
170
+ expect(r.body).toMatchObject({ error: 'boom' });
171
+ } finally { server.close(); }
172
+ });
173
+
174
+ it('trigger 500s when triggerSchedule throws', async () => {
175
+ const svc = fakeService({ triggerSchedule: jest.fn().mockRejectedValue(new Error('exec fail')) });
176
+ const { server, baseUrl } = await startApp(() => svc);
177
+ try {
178
+ const r = await http(`${baseUrl}/api/schedules/s1/trigger`, { method: 'POST' });
179
+ expect(r.status).toBe(500);
180
+ } finally { server.close(); }
181
+ });
182
+
183
+ it('presets 500s when getPresets throws', async () => {
184
+ const svc = fakeService({ getPresets: jest.fn(() => { throw new Error('p'); }) });
185
+ const { server, baseUrl } = await startApp(() => svc);
186
+ try {
187
+ expect((await http(`${baseUrl}/api/schedules/presets`)).status).toBe(500);
188
+ } finally { server.close(); }
189
+ });
190
+
191
+ it('read 500s when getSchedule throws', async () => {
192
+ const svc = fakeService({ getSchedule: jest.fn(() => { throw new Error('r'); }) });
193
+ const { server, baseUrl } = await startApp(() => svc);
194
+ try {
195
+ expect((await http(`${baseUrl}/api/schedules/s1`)).status).toBe(500);
196
+ } finally { server.close(); }
197
+ });
198
+
199
+ it('update / delete / toggle 400 when the service throws', async () => {
200
+ const svc = fakeService({
201
+ updateSchedule: jest.fn().mockRejectedValue(new Error('u')),
202
+ deleteSchedule: jest.fn().mockRejectedValue(new Error('d')),
203
+ });
204
+ const { server, baseUrl } = await startApp(() => svc);
205
+ try {
206
+ expect((await http(`${baseUrl}/api/schedules/s1`, { method: 'PUT', headers: { 'content-type': 'application/json' }, body: '{}' })).status).toBe(400);
207
+ expect((await http(`${baseUrl}/api/schedules/s1`, { method: 'DELETE' })).status).toBe(400);
208
+ expect((await http(`${baseUrl}/api/schedules/s1/toggle`, { method: 'POST' })).status).toBe(400);
209
+ } finally { server.close(); }
210
+ });
211
+ });
212
+
213
+ describe('registerScheduleRoutes — defensive', () => {
214
+ it('no-ops when app is null (does not throw)', () => {
215
+ expect(() => registerScheduleRoutes(null, {})).not.toThrow();
216
+ });
217
+ it('tolerates a missing getScheduleService thunk (treats service as absent)', async () => {
218
+ const { server, baseUrl } = await startApp(undefined);
219
+ try {
220
+ expect((await http(`${baseUrl}/api/schedules`)).body.schedules).toEqual([]);
221
+ } finally { server.close(); }
222
+ });
223
+ });
@@ -0,0 +1,85 @@
1
+ import { describe, test, expect, jest } from '@jest/globals';
2
+ import { proxyTranscribe } from '../transcribeProxy.js';
3
+
4
+ const okJson = (data) => ({ ok: true, status: 200, json: async () => data, text: async () => JSON.stringify(data) });
5
+ const errRes = (status, text) => ({ ok: false, status, json: async () => ({}), text: async () => text ?? '' });
6
+
7
+ const base = { audioBase64: 'AAAA', apiKey: 'key-1', backendBaseUrl: 'https://backend.test' };
8
+
9
+ describe('proxyTranscribe', () => {
10
+ test('400 when audioBase64 is missing or not a string', async () => {
11
+ expect((await proxyTranscribe()).status).toBe(400); // no args → default {} → 400
12
+ expect((await proxyTranscribe({ apiKey: 'k', fetchImpl: jest.fn() })).status).toBe(400);
13
+ expect((await proxyTranscribe({ audioBase64: 123, apiKey: 'k', fetchImpl: jest.fn() })).status).toBe(400);
14
+ });
15
+
16
+ test('401 when no apiKey', async () => {
17
+ const r = await proxyTranscribe({ audioBase64: 'AAAA', fetchImpl: jest.fn() });
18
+ expect(r.status).toBe(401);
19
+ expect(r.body.error).toMatch(/API key/);
20
+ });
21
+
22
+ test('500 when no fetch implementation', async () => {
23
+ const r = await proxyTranscribe({ ...base, fetchImpl: null });
24
+ expect(r.status).toBe(500);
25
+ });
26
+
27
+ test('forwards to <backend>/llm/transcribe with bearer auth + payload, returns trimmed text', async () => {
28
+ const fetchImpl = jest.fn(async () => okJson({ text: ' hello world ' }));
29
+ const r = await proxyTranscribe({ ...base, mimeType: 'audio/ogg', filename: 'v.ogg', durationSeconds: 3, fetchImpl });
30
+ expect(r.status).toBe(200);
31
+ expect(r.body.text).toBe('hello world');
32
+ expect(fetchImpl).toHaveBeenCalledTimes(1);
33
+ const [url, opts] = fetchImpl.mock.calls[0];
34
+ expect(url).toBe('https://backend.test/llm/transcribe');
35
+ expect(opts.headers.Authorization).toBe('Bearer key-1');
36
+ const sent = JSON.parse(opts.body);
37
+ expect(sent).toMatchObject({ audioBase64: 'AAAA', mimeType: 'audio/ogg', filename: 'v.ogg', durationSeconds: 3 });
38
+ });
39
+
40
+ test('defaults mimeType/filename and omits durationSeconds when not a number', async () => {
41
+ const fetchImpl = jest.fn(async () => okJson({ text: 'hi' }));
42
+ await proxyTranscribe({ ...base, durationSeconds: 'nope', fetchImpl });
43
+ const sent = JSON.parse(fetchImpl.mock.calls[0][1].body);
44
+ expect(sent.mimeType).toBe('audio/webm');
45
+ expect(sent.filename).toBe('dictation.webm');
46
+ expect('durationSeconds' in sent).toBe(false);
47
+ });
48
+
49
+ test('503 from backend → 503 not-configured message', async () => {
50
+ const r = await proxyTranscribe({ ...base, fetchImpl: async () => errRes(503) });
51
+ expect(r.status).toBe(503);
52
+ expect(r.body.error).toMatch(/not configured/i);
53
+ });
54
+
55
+ test('non-ok backend → relays status + truncated details', async () => {
56
+ const r = await proxyTranscribe({ ...base, fetchImpl: async () => errRes(500, 'x'.repeat(500)), logger: { warn() {} } });
57
+ expect(r.status).toBe(500);
58
+ expect(r.body.error).toMatch(/Transcription failed \(500\)/);
59
+ expect(r.body.details.length).toBe(300);
60
+ });
61
+
62
+ test('fetch throwing → 502', async () => {
63
+ const r = await proxyTranscribe({ ...base, fetchImpl: async () => { throw new Error('socket'); }, logger: { error() {} } });
64
+ expect(r.status).toBe(502);
65
+ expect(r.body.error).toMatch(/socket/);
66
+ });
67
+
68
+ test('ok but non-JSON body → empty text (tolerated)', async () => {
69
+ const r = await proxyTranscribe({ ...base, fetchImpl: async () => ({ ok: true, status: 200, json: async () => { throw new Error('not json'); } }) });
70
+ expect(r.status).toBe(200);
71
+ expect(r.body.text).toBe('');
72
+ });
73
+
74
+ test('uses the default backend URL when none provided', async () => {
75
+ const fetchImpl = jest.fn(async () => okJson({ text: 'ok' }));
76
+ await proxyTranscribe({ audioBase64: 'AAAA', apiKey: 'k', fetchImpl });
77
+ expect(fetchImpl.mock.calls[0][0]).toMatch(/^https:\/\/.+\/llm\/transcribe$/);
78
+ });
79
+
80
+ test('non-ok with text() throwing still relays status', async () => {
81
+ const r = await proxyTranscribe({ ...base, fetchImpl: async () => ({ ok: false, status: 418, text: async () => { throw new Error('no body'); } }) });
82
+ expect(r.status).toBe(418);
83
+ expect(r.body.details).toBe('');
84
+ });
85
+ });
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Route-level tests for POST /api/llm/transcribe (registerTranscribeRoute).
3
+ *
4
+ * The proxy itself (proxyTranscribe) is covered separately; here we lock the
5
+ * API-key resolution ladder and the status/body relay by mounting the real
6
+ * helper on a bare Express app with an injected proxy stub.
7
+ */
8
+ import { jest, describe, it, expect, afterEach } from '@jest/globals';
9
+ import express from 'express';
10
+ import { createServer } from 'http';
11
+ import { registerTranscribeRoute, resolveTranscribeApiKey } from '../transcribeRoute.js';
12
+
13
+ async function post(url, body, headers = {}) {
14
+ const resp = await globalThis.fetch(url, {
15
+ method: 'POST',
16
+ headers: { 'content-type': 'application/json', ...headers },
17
+ body: JSON.stringify(body || {}),
18
+ });
19
+ const ct = resp.headers.get('content-type') || '';
20
+ return { status: resp.status, body: ct.includes('json') ? await resp.json() : await resp.text() };
21
+ }
22
+
23
+ function startApp(deps) {
24
+ const app = express();
25
+ app.use(express.json());
26
+ registerTranscribeRoute(app, deps);
27
+ const server = createServer(app);
28
+ return new Promise((resolve) => {
29
+ server.listen(0, () => resolve({ server, baseUrl: `http://localhost:${server.address().port}` }));
30
+ });
31
+ }
32
+
33
+ describe('resolveTranscribeApiKey (key ladder)', () => {
34
+ const OLD_ENV = process.env.LOXIA_API_KEY;
35
+ afterEach(() => {
36
+ if (OLD_ENV === undefined) delete process.env.LOXIA_API_KEY;
37
+ else process.env.LOXIA_API_KEY = OLD_ENV;
38
+ });
39
+
40
+ it('prefers the Bearer header', () => {
41
+ const key = resolveTranscribeApiKey({
42
+ authHeader: 'Bearer HEADERKEY',
43
+ apiKeyManager: { getKeysForRequest: () => ({ loxiaApiKey: 'MGR' }) },
44
+ config: { loxiaApiKey: 'CFG' },
45
+ });
46
+ expect(key).toBe('HEADERKEY');
47
+ });
48
+
49
+ it('falls back to the apiKeyManager platform key', () => {
50
+ const key = resolveTranscribeApiKey({
51
+ authHeader: undefined,
52
+ apiKeyManager: { getKeysForRequest: jest.fn().mockReturnValue({ loxiaApiKey: 'MGR' }) },
53
+ sessionId: 'sess',
54
+ config: { loxiaApiKey: 'CFG' },
55
+ });
56
+ expect(key).toBe('MGR');
57
+ });
58
+
59
+ it('falls back to config, then env, then null', () => {
60
+ delete process.env.LOXIA_API_KEY;
61
+ expect(resolveTranscribeApiKey({ config: { loxiaApiKey: 'CFG' } })).toBe('CFG');
62
+ process.env.LOXIA_API_KEY = 'ENVKEY';
63
+ expect(resolveTranscribeApiKey({ config: {} })).toBe('ENVKEY');
64
+ delete process.env.LOXIA_API_KEY;
65
+ expect(resolveTranscribeApiKey({ config: {} })).toBeNull();
66
+ });
67
+
68
+ it('ignores a non-Bearer auth header', () => {
69
+ expect(resolveTranscribeApiKey({ authHeader: 'Basic abc', config: { loxiaApiKey: 'CFG' } })).toBe('CFG');
70
+ });
71
+
72
+ it('falls through when the manager lacks getKeysForRequest (optional chain)', () => {
73
+ expect(resolveTranscribeApiKey({ apiKeyManager: {}, config: { loxiaApiKey: 'CFG' } })).toBe('CFG');
74
+ });
75
+
76
+ it('falls through when the manager returns no platform key', () => {
77
+ expect(resolveTranscribeApiKey({
78
+ apiKeyManager: { getKeysForRequest: () => ({}) },
79
+ config: { loxiaApiKey: 'CFG' },
80
+ })).toBe('CFG');
81
+ });
82
+ });
83
+
84
+ describe('POST /api/llm/transcribe', () => {
85
+ it('relays the proxy status + body and forwards the resolved key', async () => {
86
+ const proxyImpl = jest.fn().mockResolvedValue({ status: 200, body: { text: 'hello world' } });
87
+ const { server, baseUrl } = await startApp({
88
+ getApiKeyManager: () => null,
89
+ config: { loxiaApiKey: 'CFG', backend: { baseUrl: 'https://b' } },
90
+ logger: { warn: jest.fn() },
91
+ proxyImpl,
92
+ });
93
+ try {
94
+ const r = await post(`${baseUrl}/api/llm/transcribe`, { audioBase64: 'AAA', mimeType: 'audio/webm' });
95
+ expect(r.status).toBe(200);
96
+ expect(r.body).toEqual({ text: 'hello world' });
97
+ expect(proxyImpl).toHaveBeenCalledWith(expect.objectContaining({
98
+ audioBase64: 'AAA', mimeType: 'audio/webm', apiKey: 'CFG', backendBaseUrl: 'https://b',
99
+ }));
100
+ } finally { server.close(); }
101
+ });
102
+
103
+ it('relays a non-200 proxy result unchanged (e.g. 400 no audio)', async () => {
104
+ const proxyImpl = jest.fn().mockResolvedValue({ status: 400, body: { error: 'No audio provided' } });
105
+ const { server, baseUrl } = await startApp({ getApiKeyManager: () => null, config: {}, proxyImpl });
106
+ try {
107
+ const r = await post(`${baseUrl}/api/llm/transcribe`, {});
108
+ expect(r.status).toBe(400);
109
+ expect(r.body).toMatchObject({ error: 'No audio provided' });
110
+ } finally { server.close(); }
111
+ });
112
+
113
+ it('uses the apiKeyManager when no Bearer header is sent', async () => {
114
+ const proxyImpl = jest.fn().mockResolvedValue({ status: 200, body: { text: '' } });
115
+ const apiKeyManager = { getKeysForRequest: jest.fn().mockReturnValue({ loxiaApiKey: 'MGRKEY' }) };
116
+ const { server, baseUrl } = await startApp({ getApiKeyManager: () => apiKeyManager, config: {}, proxyImpl });
117
+ try {
118
+ await post(`${baseUrl}/api/llm/transcribe`, { audioBase64: 'X', sessionId: 's1' });
119
+ expect(apiKeyManager.getKeysForRequest).toHaveBeenCalledWith('s1', { platformProvided: true });
120
+ expect(proxyImpl).toHaveBeenCalledWith(expect.objectContaining({ apiKey: 'MGRKEY' }));
121
+ } finally { server.close(); }
122
+ });
123
+
124
+ it('no-ops registration when app is null', () => {
125
+ expect(() => registerTranscribeRoute(null, {})).not.toThrow();
126
+ });
127
+ });