onbuzz 4.6.2 → 4.7.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 (958) hide show
  1. package/bin/cli.js +8 -0
  2. package/package.json +1 -1
  3. package/src/__tests__/autoUpdateConfig.test.js +44 -0
  4. package/src/__tests__/releaseWorkflow.test.js +72 -0
  5. package/src/interfaces/__tests__/accountRoutes.test.js +429 -0
  6. package/src/interfaces/__tests__/apiKeyManagerContract.test.js +39 -0
  7. package/src/interfaces/__tests__/authRoutes.test.js +8 -8
  8. package/src/interfaces/accountRoutes.js +250 -0
  9. package/src/interfaces/webServer.js +83 -32
  10. package/src/services/__tests__/apiKeyManager.test.js +4 -6
  11. package/src/services/__tests__/authCacheStore.test.js +118 -0
  12. package/src/services/apiKeyManager.js +12 -99
  13. package/src/services/authCacheStore.js +140 -0
  14. package/src/tools/__tests__/webTool.e2e.test.js +9 -1
  15. package/src/tools/webTool.js +20 -4
  16. package/src/utilities/__tests__/authCache.test.js +266 -0
  17. package/src/utilities/__tests__/secretsCipher.test.js +97 -0
  18. package/src/utilities/__tests__/updateNotifier.test.js +139 -0
  19. package/src/utilities/authCache.js +121 -0
  20. package/src/utilities/secretsCipher.js +116 -0
  21. package/src/utilities/updateNotifier.js +140 -0
  22. package/web-ui/build/index.html +2 -2
  23. package/web-ui/build/static/1c-D_MLuenD.js +1 -0
  24. package/web-ui/build/static/abap-BNvFMksw.js +1 -0
  25. package/web-ui/build/static/abnf-WlnRJIp2.js +1 -0
  26. package/web-ui/build/static/abnf-mx1Wbtnp.js +1 -0
  27. package/web-ui/build/static/accesslog-CJumJuuV.js +1 -0
  28. package/web-ui/build/static/actionscript-B6CbK7n7.js +1 -0
  29. package/web-ui/build/static/actionscript-DZ5xfmPr.js +1 -0
  30. package/web-ui/build/static/ada-CCVAXM0c.js +1 -0
  31. package/web-ui/build/static/ada-DtGkgqC4.js +1 -0
  32. package/web-ui/build/static/agda-gMFRTChb.js +1 -0
  33. package/web-ui/build/static/al-88fYQh4r.js +1 -0
  34. package/web-ui/build/static/angelscript-Bibc8YWJ.js +1 -0
  35. package/web-ui/build/static/antlr4-DgibPJaJ.js +1 -0
  36. package/web-ui/build/static/apache-_pZ-s8l6.js +1 -0
  37. package/web-ui/build/static/apacheconf-YDldOH3Q.js +1 -0
  38. package/web-ui/build/static/apex-CIj23tyF.js +1 -0
  39. package/web-ui/build/static/apl-DtRSC0Xv.js +1 -0
  40. package/web-ui/build/static/applescript-CKhcPsla.js +1 -0
  41. package/web-ui/build/static/applescript-DuJeHJ1r.js +1 -0
  42. package/web-ui/build/static/aql-BgmI8Ors.js +1 -0
  43. package/web-ui/build/static/arcade-BX83978b.js +1 -0
  44. package/web-ui/build/static/arduino-BVdatcJb.js +1 -0
  45. package/web-ui/build/static/arduino-h6ifuWka.js +1 -0
  46. package/web-ui/build/static/arff-DHmbMeIA.js +1 -0
  47. package/web-ui/build/static/armasm-DiDgI5h5.js +1 -0
  48. package/web-ui/build/static/asciidoc-CBro7xXU.js +1 -0
  49. package/web-ui/build/static/asciidoc-DRC2X4bq.js +1 -0
  50. package/web-ui/build/static/asm6502-53VLu0lq.js +1 -0
  51. package/web-ui/build/static/asmatmel-DlRHdXes.js +1 -0
  52. package/web-ui/build/static/aspectj-DTSWMNl9.js +1 -0
  53. package/web-ui/build/static/aspnet-DEUO05ai.js +1 -0
  54. package/web-ui/build/static/autohotkey-3gt8xVo-.js +1 -0
  55. package/web-ui/build/static/autohotkey-BWcbMbe_.js +1 -0
  56. package/web-ui/build/static/autoit-CackGf4X.js +1 -0
  57. package/web-ui/build/static/autoit-Dyf0FSt2.js +1 -0
  58. package/web-ui/build/static/avisynth-DfCuxmn5.js +1 -0
  59. package/web-ui/build/static/avrasm-DdDiRWhx.js +1 -0
  60. package/web-ui/build/static/avro-idl-DppsvvwR.js +1 -0
  61. package/web-ui/build/static/awk-Cjk3U-Y4.js +1 -0
  62. package/web-ui/build/static/axapta-WwnY3TVf.js +1 -0
  63. package/web-ui/build/static/bash-C5Xkqken.js +1 -0
  64. package/web-ui/build/static/bash-ckPXa-RG.js +1 -0
  65. package/web-ui/build/static/basic-BCVHqHd2.js +1 -0
  66. package/web-ui/build/static/basic-D0dZbGrs.js +1 -0
  67. package/web-ui/build/static/batch-DUo60tbI.js +1 -0
  68. package/web-ui/build/static/bbcode-BVzBKrPV.js +1 -0
  69. package/web-ui/build/static/bicep-DkTjKL2N.js +1 -0
  70. package/web-ui/build/static/birb-C0rKI0h6.js +1 -0
  71. package/web-ui/build/static/bison-ChzwcDVc.js +1 -0
  72. package/web-ui/build/static/bnf-COhTgjpr.js +1 -0
  73. package/web-ui/build/static/bnf-DUYKVI2p.js +1 -0
  74. package/web-ui/build/static/brainfuck-BBJLbMxW.js +1 -0
  75. package/web-ui/build/static/brainfuck-DufOqE73.js +1 -0
  76. package/web-ui/build/static/brightscript-DXhkwfCc.js +1 -0
  77. package/web-ui/build/static/bro-BOFEsT-K.js +1 -0
  78. package/web-ui/build/static/bsl-ClV9GpNm.js +1 -0
  79. package/web-ui/build/static/c-Cl_3N1WB.js +1 -0
  80. package/web-ui/build/static/c-D0hFoAJ3.js +1 -0
  81. package/web-ui/build/static/c-like-D4BQ8VhL.js +1 -0
  82. package/web-ui/build/static/cal-CVIQ5DKG.js +1 -0
  83. package/web-ui/build/static/capnproto-l7oAqnCr.js +1 -0
  84. package/web-ui/build/static/ceylon-BEhCsFMw.js +1 -0
  85. package/web-ui/build/static/cfscript-DMh-xvVk.js +1 -0
  86. package/web-ui/build/static/chaiscript-DCvDoIGS.js +1 -0
  87. package/web-ui/build/static/cil-Ccn-j3TB.js +1 -0
  88. package/web-ui/build/static/clean-CjrEwcC-.js +1 -0
  89. package/web-ui/build/static/clojure-Dgo-8qFd.js +1 -0
  90. package/web-ui/build/static/clojure-M1AknfQi.js +1 -0
  91. package/web-ui/build/static/clojure-repl-BY1VLOSH.js +1 -0
  92. package/web-ui/build/static/cmake-CdHJ7Mp0.js +1 -0
  93. package/web-ui/build/static/cmake-DDGvi7kU.js +1 -0
  94. package/web-ui/build/static/cobol-BdrXYRxi.js +1 -0
  95. package/web-ui/build/static/coffeescript-BMDvMAy2.js +1 -0
  96. package/web-ui/build/static/coffeescript-CAYcMTRg.js +1 -0
  97. package/web-ui/build/static/concurnas-B8vcX0ec.js +1 -0
  98. package/web-ui/build/static/coq-CqvluN1S.js +1 -0
  99. package/web-ui/build/static/coq-vhnnRdWb.js +1 -0
  100. package/web-ui/build/static/cos-DY4p0y_u.js +1 -0
  101. package/web-ui/build/static/cpp-C3m_aEUX.js +1 -0
  102. package/web-ui/build/static/cpp-DRs9bbEm.js +1 -0
  103. package/web-ui/build/static/crmsh-CY6InunC.js +1 -0
  104. package/web-ui/build/static/crystal-Cwk1figA.js +1 -0
  105. package/web-ui/build/static/crystal-DeCJ5Pz7.js +1 -0
  106. package/web-ui/build/static/csharp-WmvubeKF.js +1 -0
  107. package/web-ui/build/static/csharp-zL1j7hXr.js +1 -0
  108. package/web-ui/build/static/cshtml-CbvGCaf_.js +1 -0
  109. package/web-ui/build/static/csp-BH2nxxKs.js +1 -0
  110. package/web-ui/build/static/csp-CHlC7KoB.js +1 -0
  111. package/web-ui/build/static/css-_X0ZO87y.js +1 -0
  112. package/web-ui/build/static/css-extras-wgFh56PY.js +1 -0
  113. package/web-ui/build/static/csv-momqe7r6.js +1 -0
  114. package/web-ui/build/static/cypher-hOeHFCfk.js +1 -0
  115. package/web-ui/build/static/d-B3d-tfyQ.js +1 -0
  116. package/web-ui/build/static/d-C6iyl9wX.js +1 -0
  117. package/web-ui/build/static/dart-BDKSE6LE.js +1 -0
  118. package/web-ui/build/static/dart-Bjchg8qI.js +1 -0
  119. package/web-ui/build/static/dataweave-ZgvdD-pH.js +1 -0
  120. package/web-ui/build/static/dax-yfGYNpUh.js +1 -0
  121. package/web-ui/build/static/delphi-CRLCdiTE.js +1 -0
  122. package/web-ui/build/static/dhall-yl1p1XUr.js +1 -0
  123. package/web-ui/build/static/diff-5SMtcFK7.js +1 -0
  124. package/web-ui/build/static/diff-y2RTBWsQ.js +1 -0
  125. package/web-ui/build/static/django-CtjG6w9L.js +1 -0
  126. package/web-ui/build/static/django-DNXOxI3v.js +1 -0
  127. package/web-ui/build/static/dns-D7Czwn_S.js +1 -0
  128. package/web-ui/build/static/dns-zone-file-D3yPxpjz.js +1 -0
  129. package/web-ui/build/static/docker-CWC5NqQQ.js +1 -0
  130. package/web-ui/build/static/dockerfile-CKFBVY9d.js +1 -0
  131. package/web-ui/build/static/dos-B7gYphQ-.js +1 -0
  132. package/web-ui/build/static/dot-BsisNMX4.js +1 -0
  133. package/web-ui/build/static/dsconfig-CEWwz7T6.js +1 -0
  134. package/web-ui/build/static/dts-UM5u5dMt.js +1 -0
  135. package/web-ui/build/static/dust-DlPmuh4d.js +1 -0
  136. package/web-ui/build/static/ebnf-BE6vq-fo.js +1 -0
  137. package/web-ui/build/static/ebnf-Czd8moGp.js +1 -0
  138. package/web-ui/build/static/editorconfig-Ctn83uRn.js +1 -0
  139. package/web-ui/build/static/eiffel-CZP01HVF.js +1 -0
  140. package/web-ui/build/static/ejs-BAXhrtLI.js +1 -0
  141. package/web-ui/build/static/elixir-C9PFjTwP.js +1 -0
  142. package/web-ui/build/static/elixir-DMjZPYCh.js +1 -0
  143. package/web-ui/build/static/elm-BH_KfOxJ.js +1 -0
  144. package/web-ui/build/static/elm-DRnNerE2.js +1 -0
  145. package/web-ui/build/static/erb-BhzUuTTy.js +1 -0
  146. package/web-ui/build/static/erb-DNbmX3N2.js +1 -0
  147. package/web-ui/build/static/erlang-BBPIw_V_.js +1 -0
  148. package/web-ui/build/static/erlang-BWdcSiKs.js +1 -0
  149. package/web-ui/build/static/erlang-repl-DQ9I6Dh_.js +1 -0
  150. package/web-ui/build/static/etlua-BeVNUecy.js +1 -0
  151. package/web-ui/build/static/excel-DYFvX5ms.js +1 -0
  152. package/web-ui/build/static/excel-formula-BtiqixBz.js +1 -0
  153. package/web-ui/build/static/factor-BCHyN6XZ.js +1 -0
  154. package/web-ui/build/static/false-UDWS0Dzk.js +1 -0
  155. package/web-ui/build/static/firestore-security-rules-B1-wJ42j.js +1 -0
  156. package/web-ui/build/static/fix-DrXU-V21.js +1 -0
  157. package/web-ui/build/static/flix-BjF0RPW9.js +1 -0
  158. package/web-ui/build/static/flow-DovuDACs.js +1 -0
  159. package/web-ui/build/static/fortran-DOqQP_9c.js +1 -0
  160. package/web-ui/build/static/fortran-DPASe5gH.js +1 -0
  161. package/web-ui/build/static/fsharp-Ckup0uPw.js +1 -0
  162. package/web-ui/build/static/fsharp-DyfRmGjn.js +1 -0
  163. package/web-ui/build/static/ftl-Coj24bDj.js +1 -0
  164. package/web-ui/build/static/gams-GwREZQh1.js +1 -0
  165. package/web-ui/build/static/gap-B7d6Bkmk.js +1 -0
  166. package/web-ui/build/static/gauss-DrLvPj5Z.js +1 -0
  167. package/web-ui/build/static/gcode-40iTJ2U1.js +1 -0
  168. package/web-ui/build/static/gcode-CISHXDj4.js +1 -0
  169. package/web-ui/build/static/gdscript-DmopCB0R.js +1 -0
  170. package/web-ui/build/static/gedcom-LiECv7gg.js +1 -0
  171. package/web-ui/build/static/gherkin-CYp_kcve.js +1 -0
  172. package/web-ui/build/static/gherkin-C_QgMjxf.js +1 -0
  173. package/web-ui/build/static/git-CfTT-600.js +1 -0
  174. package/web-ui/build/static/glsl-DRFMhvlG.js +1 -0
  175. package/web-ui/build/static/glsl-PNmpuSn0.js +1 -0
  176. package/web-ui/build/static/gml-3qmqfrt3.js +1 -0
  177. package/web-ui/build/static/gml-BTCmr4y5.js +1 -0
  178. package/web-ui/build/static/gn-BX0L2dQ-.js +1 -0
  179. package/web-ui/build/static/go-BXYOf5mS.js +1 -0
  180. package/web-ui/build/static/go-BnvPVHID.js +1 -0
  181. package/web-ui/build/static/go-module-BsPBvEmG.js +1 -0
  182. package/web-ui/build/static/golo-B6l7i4bX.js +1 -0
  183. package/web-ui/build/static/gradle-9DvvuDBJ.js +1 -0
  184. package/web-ui/build/static/graphql-OcCfd-Bc.js +1 -0
  185. package/web-ui/build/static/groovy-B33LZAt0.js +1 -0
  186. package/web-ui/build/static/groovy-Uyg0ruyE.js +1 -0
  187. package/web-ui/build/static/haml-D_FDAM6q.js +1 -0
  188. package/web-ui/build/static/haml-DjG31i1A.js +1 -0
  189. package/web-ui/build/static/handlebars-BKPDMksf.js +1 -0
  190. package/web-ui/build/static/handlebars-PP4M-qJ8.js +1 -0
  191. package/web-ui/build/static/haskell-HD9Gv3Wo.js +1 -0
  192. package/web-ui/build/static/haskell-nUf9ckz5.js +1 -0
  193. package/web-ui/build/static/haxe-BSsJNrQU.js +1 -0
  194. package/web-ui/build/static/haxe-D7yTwhdv.js +1 -0
  195. package/web-ui/build/static/hcl-_dqjptFs.js +1 -0
  196. package/web-ui/build/static/hlsl-DKixrsyy.js +1 -0
  197. package/web-ui/build/static/hoon-Di28eQfV.js +1 -0
  198. package/web-ui/build/static/hpkp-CXYG9zoQ.js +1 -0
  199. package/web-ui/build/static/hsp-lYl9KN6o.js +1 -0
  200. package/web-ui/build/static/hsts-CaYq9R8-.js +1 -0
  201. package/web-ui/build/static/htmlbars-eoY2PWS6.js +1 -0
  202. package/web-ui/build/static/http-2DXUmN2h.js +1 -0
  203. package/web-ui/build/static/http-Yjic3oWm.js +1 -0
  204. package/web-ui/build/static/hy-DVImg5uG.js +1 -0
  205. package/web-ui/build/static/ichigojam-Bdk-szlv.js +1 -0
  206. package/web-ui/build/static/icon-BEs9UbI_.js +1 -0
  207. package/web-ui/build/static/icu-message-format-DMfiLVs5.js +1 -0
  208. package/web-ui/build/static/idris-meksg0Ce.js +1 -0
  209. package/web-ui/build/static/iecst-DMPBiTmw.js +1 -0
  210. package/web-ui/build/static/ignore-BOQ9ZPvw.js +1 -0
  211. package/web-ui/build/static/index-BSEOP86D.js +1 -0
  212. package/web-ui/build/static/index-Be9WvMkI.js +1162 -0
  213. package/web-ui/build/static/index-Cr9q1fNq.css +1 -0
  214. package/web-ui/build/static/index-CuZ_erP9.js +13 -0
  215. package/web-ui/build/static/inform7-CNqu8FhU.js +1 -0
  216. package/web-ui/build/static/inform7-Cvfrdb0X.js +1 -0
  217. package/web-ui/build/static/ini-4DHUSW37.js +1 -0
  218. package/web-ui/build/static/ini-BgZ18Nk6.js +1 -0
  219. package/web-ui/build/static/io-c519ulw2.js +1 -0
  220. package/web-ui/build/static/irpf90-Kzq81vn5.js +1 -0
  221. package/web-ui/build/static/isbl-CeBN_o-W.js +1 -0
  222. package/web-ui/build/static/j-BmSuFx5E.js +1 -0
  223. package/web-ui/build/static/java-BezG0JQd.js +1 -0
  224. package/web-ui/build/static/java-BxBhTA1D.js +1 -0
  225. package/web-ui/build/static/javadoc-b96LRy9-.js +1 -0
  226. package/web-ui/build/static/javadoclike-BTNVp6pR.js +1 -0
  227. package/web-ui/build/static/javascript-B75gzQUI.js +1 -0
  228. package/web-ui/build/static/javastacktrace-D4xVOdoe.js +1 -0
  229. package/web-ui/build/static/jboss-cli-DH30pghK.js +1 -0
  230. package/web-ui/build/static/jexl-DF2RGmtX.js +1 -0
  231. package/web-ui/build/static/jolie-BlwO_Eyn.js +1 -0
  232. package/web-ui/build/static/jq-C7YhIw1G.js +1 -0
  233. package/web-ui/build/static/js-extras-JVZxoi4Q.js +1 -0
  234. package/web-ui/build/static/js-templates-D1CnsXgJ.js +1 -0
  235. package/web-ui/build/static/jsdoc-vf63NOxo.js +1 -0
  236. package/web-ui/build/static/json-CiKwLA5O.js +1 -0
  237. package/web-ui/build/static/json-pgLQeaes.js +1 -0
  238. package/web-ui/build/static/json5-_HMAYh1c.js +1 -0
  239. package/web-ui/build/static/jsonp-BeHQpb2r.js +1 -0
  240. package/web-ui/build/static/jsstacktrace-nw21JEtY.js +1 -0
  241. package/web-ui/build/static/jsx-Nxt_XhcW.js +1 -0
  242. package/web-ui/build/static/julia-BFczE4HB.js +1 -0
  243. package/web-ui/build/static/julia-DeDNID0K.js +1 -0
  244. package/web-ui/build/static/julia-repl-CoPTZMue.js +1 -0
  245. package/web-ui/build/static/keepalived-DP1sFl1b.js +1 -0
  246. package/web-ui/build/static/keyman-CCQVTHgo.js +1 -0
  247. package/web-ui/build/static/kotlin-CdZP58gi.js +1 -0
  248. package/web-ui/build/static/kotlin-CzNKVbXq.js +1 -0
  249. package/web-ui/build/static/kumir-lPok55sq.js +1 -0
  250. package/web-ui/build/static/kusto-oLek_zqj.js +1 -0
  251. package/web-ui/build/static/lasso-BFOYENIx.js +1 -0
  252. package/web-ui/build/static/latex-BH6YJXW6.js +1 -0
  253. package/web-ui/build/static/latex-IweVcDOS.js +1 -0
  254. package/web-ui/build/static/latte-Cmzytj93.js +1 -0
  255. package/web-ui/build/static/ldif-Bp4o5m10.js +1 -0
  256. package/web-ui/build/static/leaf-BFbMre84.js +1 -0
  257. package/web-ui/build/static/less-BVpV_iBx.js +1 -0
  258. package/web-ui/build/static/less-vdx-pGtM.js +1 -0
  259. package/web-ui/build/static/lilypond-Da6mCtwg.js +1 -0
  260. package/web-ui/build/static/liquid-RVC3EWUf.js +1 -0
  261. package/web-ui/build/static/lisp-Bgt-EmTk.js +1 -0
  262. package/web-ui/build/static/lisp-E8gUigGo.js +1 -0
  263. package/web-ui/build/static/livecodeserver-DDFQieJg.js +1 -0
  264. package/web-ui/build/static/livescript-C7FEDmfm.js +1 -0
  265. package/web-ui/build/static/livescript-Cc5SDmvx.js +1 -0
  266. package/web-ui/build/static/llvm-C22gmUEJ.js +1 -0
  267. package/web-ui/build/static/llvm-CjnVIiX4.js +1 -0
  268. package/web-ui/build/static/log-duIQICZV.js +1 -0
  269. package/web-ui/build/static/lolcode-Chrz9tTZ.js +1 -0
  270. package/web-ui/build/static/lsl-D1sdqECW.js +1 -0
  271. package/web-ui/build/static/lua-BFoJUb0S.js +1 -0
  272. package/web-ui/build/static/lua-D8RyRvqw.js +1 -0
  273. package/web-ui/build/static/magma-Cb3OhPkH.js +1 -0
  274. package/web-ui/build/static/makefile-BoVTcm8r.js +1 -0
  275. package/web-ui/build/static/makefile-LpYbnzZi.js +1 -0
  276. package/web-ui/build/static/markdown-CtQc_FZV.js +1 -0
  277. package/web-ui/build/static/markdown-DKz9qNdH.js +1 -0
  278. package/web-ui/build/static/markup-templating-D4EP19Lc.js +1 -0
  279. package/web-ui/build/static/mathematica-CIjlHVkd.js +1 -0
  280. package/web-ui/build/static/matlab-2b895p29.js +1 -0
  281. package/web-ui/build/static/matlab-BuluE4GS.js +1 -0
  282. package/web-ui/build/static/maxima-BGR8Puew.js +1 -0
  283. package/web-ui/build/static/maxscript-B429y77A.js +1 -0
  284. package/web-ui/build/static/mel-CYh_3LnF.js +1 -0
  285. package/web-ui/build/static/mel-CbYDscql.js +1 -0
  286. package/web-ui/build/static/mercury-DOee0RcU.js +1 -0
  287. package/web-ui/build/static/mermaid-Bgnlfred.js +1 -0
  288. package/web-ui/build/static/mipsasm-CB-uene8.js +1 -0
  289. package/web-ui/build/static/mizar-7qF42uX5.js +1 -0
  290. package/web-ui/build/static/mizar-Clogrskx.js +1 -0
  291. package/web-ui/build/static/mojolicious-BSIpTTKj.js +1 -0
  292. package/web-ui/build/static/mongodb--rWzrKDS.js +1 -0
  293. package/web-ui/build/static/monkey-C0lS2_fv.js +1 -0
  294. package/web-ui/build/static/monkey-DvqsFbfK.js +1 -0
  295. package/web-ui/build/static/moonscript-D6zFHk1D.js +1 -0
  296. package/web-ui/build/static/moonscript-JTxm8n_4.js +1 -0
  297. package/web-ui/build/static/n1ql-BwY55fjF.js +1 -0
  298. package/web-ui/build/static/n1ql-D8h3fDkJ.js +1 -0
  299. package/web-ui/build/static/n4js-5XIl8zQT.js +1 -0
  300. package/web-ui/build/static/nand2tetris-hdl-C4b_TExX.js +1 -0
  301. package/web-ui/build/static/naniscript-h2vnytgY.js +1 -0
  302. package/web-ui/build/static/nasm-SJmR3Ebn.js +1 -0
  303. package/web-ui/build/static/neon-B7dnnKEh.js +1 -0
  304. package/web-ui/build/static/nevod-zunhA02o.js +1 -0
  305. package/web-ui/build/static/nginx-BR_D0je7.js +1 -0
  306. package/web-ui/build/static/nginx-Cf7oQt-G.js +1 -0
  307. package/web-ui/build/static/nim-D-MjIxvw.js +1 -0
  308. package/web-ui/build/static/nim-D6YOyDC-.js +1 -0
  309. package/web-ui/build/static/nix-DCZEZqSO.js +1 -0
  310. package/web-ui/build/static/nix-Dx16U5rS.js +1 -0
  311. package/web-ui/build/static/node-repl-P-vGpiQ7.js +1 -0
  312. package/web-ui/build/static/nsis-CjyZMgjR.js +1 -0
  313. package/web-ui/build/static/nsis-X8NQeZjE.js +1 -0
  314. package/web-ui/build/static/objectivec-BejNoH7m.js +1 -0
  315. package/web-ui/build/static/objectivec-CGy2F8n6.js +1 -0
  316. package/web-ui/build/static/ocaml-C15hcRxR.js +1 -0
  317. package/web-ui/build/static/ocaml-U7N8L5Z7.js +1 -0
  318. package/web-ui/build/static/opencl-Bkm-SovU.js +1 -0
  319. package/web-ui/build/static/openqasm-BOc5975b.js +1 -0
  320. package/web-ui/build/static/openscad-CRpFnhV_.js +1 -0
  321. package/web-ui/build/static/oxygene-eHBZbxHy.js +1 -0
  322. package/web-ui/build/static/oz-B6RWw36L.js +1 -0
  323. package/web-ui/build/static/parigp-rifRy-ff.js +1 -0
  324. package/web-ui/build/static/parser-C0HBjZDk.js +1 -0
  325. package/web-ui/build/static/parser3-DSK81uS5.js +1 -0
  326. package/web-ui/build/static/pascal-BWha02r-.js +1 -0
  327. package/web-ui/build/static/pascaligo-B5sQ2hGz.js +1 -0
  328. package/web-ui/build/static/pcaxis-B1HLYPhm.js +1 -0
  329. package/web-ui/build/static/peoplecode-C4FPD4Yt.js +1 -0
  330. package/web-ui/build/static/perl-CyNx_mIa.js +1 -0
  331. package/web-ui/build/static/perl-rKxEWgtc.js +1 -0
  332. package/web-ui/build/static/pf-DbL4T2HZ.js +1 -0
  333. package/web-ui/build/static/pgsql-BKrwbRTY.js +1 -0
  334. package/web-ui/build/static/php-Cbd5TyJ-.js +1 -0
  335. package/web-ui/build/static/php-extras-DoVpsRj3.js +1 -0
  336. package/web-ui/build/static/php-template-DvdLavxo.js +1 -0
  337. package/web-ui/build/static/php-wYQJLv7J.js +1 -0
  338. package/web-ui/build/static/phpdoc-DTzZ5d0C.js +1 -0
  339. package/web-ui/build/static/plaintext-BRfzJjyj.js +1 -0
  340. package/web-ui/build/static/plsql-BLiE3aGC.js +1 -0
  341. package/web-ui/build/static/pony-CzLDxYVb.js +1 -0
  342. package/web-ui/build/static/powerquery-BdGgwM1a.js +1 -0
  343. package/web-ui/build/static/powershell-Cxl47yK_.js +1 -0
  344. package/web-ui/build/static/powershell-DrOFoqBE.js +1 -0
  345. package/web-ui/build/static/processing-9GbETrF_.js +1 -0
  346. package/web-ui/build/static/processing-M8gRGxck.js +1 -0
  347. package/web-ui/build/static/profile-CpNlvCnw.js +1 -0
  348. package/web-ui/build/static/prolog-CKZzbIr9.js +1 -0
  349. package/web-ui/build/static/prolog-mmIPeMRS.js +1 -0
  350. package/web-ui/build/static/promql-sDn1PHGN.js +1 -0
  351. package/web-ui/build/static/properties-CMFMCgWo.js +1 -0
  352. package/web-ui/build/static/properties-DQUf7KOp.js +1 -0
  353. package/web-ui/build/static/protobuf-CeY2Q-pH.js +1 -0
  354. package/web-ui/build/static/protobuf-WpfASK2n.js +1 -0
  355. package/web-ui/build/static/psl-D2GfEOkk.js +1 -0
  356. package/web-ui/build/static/pug-OMqhtHt8.js +1 -0
  357. package/web-ui/build/static/puppet-B68-xib8.js +1 -0
  358. package/web-ui/build/static/puppet-DEWzLqRg.js +1 -0
  359. package/web-ui/build/static/pure-C_CchY8g.js +1 -0
  360. package/web-ui/build/static/purebasic-D6vSqsja.js +1 -0
  361. package/web-ui/build/static/purebasic-Dy_z6LTs.js +1 -0
  362. package/web-ui/build/static/purescript-1f1OoM-A.js +1 -0
  363. package/web-ui/build/static/python-BssLWmNd.js +1 -0
  364. package/web-ui/build/static/python-CbOivp-X.js +1 -0
  365. package/web-ui/build/static/python-repl-Dsbi7aBP.js +1 -0
  366. package/web-ui/build/static/q-BC6w8B4U.js +1 -0
  367. package/web-ui/build/static/q-Brd1mf_C.js +1 -0
  368. package/web-ui/build/static/qml-BG4KN74g.js +1 -0
  369. package/web-ui/build/static/qml-BW-AE2Ma.js +1 -0
  370. package/web-ui/build/static/qore-m870d7ZA.js +1 -0
  371. package/web-ui/build/static/qsharp-BC9vEXOd.js +1 -0
  372. package/web-ui/build/static/r-BQySF8sO.js +1 -0
  373. package/web-ui/build/static/r-Cur0B9lo.js +1 -0
  374. package/web-ui/build/static/racket-CiJlajVU.js +1 -0
  375. package/web-ui/build/static/reason-C3VZcXa9.js +1 -0
  376. package/web-ui/build/static/reasonml-CpaxZwMO.js +1 -0
  377. package/web-ui/build/static/regex-bY-o17az.js +1 -0
  378. package/web-ui/build/static/rego-WPkEW7us.js +1 -0
  379. package/web-ui/build/static/renpy-DQr5LC4O.js +1 -0
  380. package/web-ui/build/static/rest-qmfCQ86m.js +1 -0
  381. package/web-ui/build/static/rib-DYzEblkc.js +1 -0
  382. package/web-ui/build/static/rip-D-NWUqHZ.js +1 -0
  383. package/web-ui/build/static/roboconf-CVmdy543.js +1 -0
  384. package/web-ui/build/static/roboconf-Ray0NGMb.js +1 -0
  385. package/web-ui/build/static/robotframework-DlxPBTF_.js +1 -0
  386. package/web-ui/build/static/routeros-S_f-nuVM.js +1 -0
  387. package/web-ui/build/static/rsl-CHtR71Pc.js +1 -0
  388. package/web-ui/build/static/ruby-ByuU-3cy.js +1 -0
  389. package/web-ui/build/static/ruby-DOin939S.js +1 -0
  390. package/web-ui/build/static/ruleslanguage-zhFrFxeU.js +1 -0
  391. package/web-ui/build/static/rust-B606UvZv.js +1 -0
  392. package/web-ui/build/static/rust-BJMuS7if.js +1 -0
  393. package/web-ui/build/static/sas-Bzk_0rOu.js +1 -0
  394. package/web-ui/build/static/sas-C-C55Hy4.js +1 -0
  395. package/web-ui/build/static/sass-DKkkoHtH.js +1 -0
  396. package/web-ui/build/static/scala-BKlnHttP.js +1 -0
  397. package/web-ui/build/static/scala-IsJjjIKA.js +1 -0
  398. package/web-ui/build/static/scheme-Bq_tfrRE.js +1 -0
  399. package/web-ui/build/static/scheme-DiXFvLKG.js +1 -0
  400. package/web-ui/build/static/scilab-DVyT87si.js +1 -0
  401. package/web-ui/build/static/scss-BtDpAVzH.js +1 -0
  402. package/web-ui/build/static/scss-D8cn4aNM.js +1 -0
  403. package/web-ui/build/static/shell-YROU1_yo.js +1 -0
  404. package/web-ui/build/static/shell-session-D06UXOLk.js +1 -0
  405. package/web-ui/build/static/smali-B1Wl_1dD.js +1 -0
  406. package/web-ui/build/static/smali-D2R-11j_.js +1 -0
  407. package/web-ui/build/static/smalltalk-M2S1lL6Z.js +1 -0
  408. package/web-ui/build/static/smalltalk-OWg84676.js +1 -0
  409. package/web-ui/build/static/smarty-l1m-zZmR.js +1 -0
  410. package/web-ui/build/static/sml-B6gSTHMm.js +1 -0
  411. package/web-ui/build/static/sml-BKURhRNM.js +1 -0
  412. package/web-ui/build/static/solidity-BcrqESJt.js +1 -0
  413. package/web-ui/build/static/solution-file-BYpCOi9k.js +1 -0
  414. package/web-ui/build/static/soy-DOQhQ7Di.js +1 -0
  415. package/web-ui/build/static/sparql-BwiIX_wO.js +1 -0
  416. package/web-ui/build/static/splunk-spl-DuIl6XxN.js +1 -0
  417. package/web-ui/build/static/sqf-8cYPidUR.js +1 -0
  418. package/web-ui/build/static/sqf-n8nRTmXc.js +1 -0
  419. package/web-ui/build/static/sql-D0WSLeXV.js +1 -0
  420. package/web-ui/build/static/sql-D8KWxFl_.js +1 -0
  421. package/web-ui/build/static/sql_more-D3ozDsf6.js +1 -0
  422. package/web-ui/build/static/squirrel-C4U4fAL5.js +1 -0
  423. package/web-ui/build/static/stan-BbFEvT-l.js +1 -0
  424. package/web-ui/build/static/stan-CJ4ny6dZ.js +1 -0
  425. package/web-ui/build/static/stata-BKEkbqzD.js +1 -0
  426. package/web-ui/build/static/step21-52PURHjy.js +1 -0
  427. package/web-ui/build/static/stylus-buszfxDg.js +1 -0
  428. package/web-ui/build/static/stylus-y0WOYXDO.js +1 -0
  429. package/web-ui/build/static/subunit-DU_iInw0.js +1 -0
  430. package/web-ui/build/static/swift-1VeEUHZi.js +1 -0
  431. package/web-ui/build/static/swift-Iw0x_Dum.js +1 -0
  432. package/web-ui/build/static/systemd-BT_5EOz8.js +1 -0
  433. package/web-ui/build/static/t4-cs-DlHeFrua.js +1 -0
  434. package/web-ui/build/static/t4-templating-Bz3RFfzp.js +1 -0
  435. package/web-ui/build/static/t4-vb-BMG0Q3qg.js +1 -0
  436. package/web-ui/build/static/taggerscript-CxwafGpT.js +1 -0
  437. package/web-ui/build/static/tap-6QugbkZA.js +1 -0
  438. package/web-ui/build/static/tap-SB1ST166.js +1 -0
  439. package/web-ui/build/static/tcl-CpV5bsKx.js +1 -0
  440. package/web-ui/build/static/tcl-Dikgd33H.js +1 -0
  441. package/web-ui/build/static/textile-aPmNtrkM.js +1 -0
  442. package/web-ui/build/static/thrift-B4Snltg5.js +1 -0
  443. package/web-ui/build/static/toml-B8SfswHQ.js +1 -0
  444. package/web-ui/build/static/tp-CdO-cn9g.js +1 -0
  445. package/web-ui/build/static/tremor-CqqCLe4A.js +1 -0
  446. package/web-ui/build/static/tsx-Ck0ZDqEy.js +1 -0
  447. package/web-ui/build/static/tt2-BrqZXSkJ.js +1 -0
  448. package/web-ui/build/static/turtle-DpnSIzmN.js +1 -0
  449. package/web-ui/build/static/twig-B5Et_eTY.js +1 -0
  450. package/web-ui/build/static/twig-C3vsy99c.js +1 -0
  451. package/web-ui/build/static/typescript-DH7tzpeO.js +1 -0
  452. package/web-ui/build/static/typescript-s1qBbHGm.js +1 -0
  453. package/web-ui/build/static/typoscript-DD8499cq.js +1 -0
  454. package/web-ui/build/static/unrealscript-C1zerCVR.js +1 -0
  455. package/web-ui/build/static/uorazor-CtRNfzg2.js +1 -0
  456. package/web-ui/build/static/uri-CAfIv8vn.js +1 -0
  457. package/web-ui/build/static/v-B6_f9ZGJ.js +1 -0
  458. package/web-ui/build/static/vala-BIpejmrf.js +1 -0
  459. package/web-ui/build/static/vala-BYLjm9ih.js +1 -0
  460. package/web-ui/build/static/vbnet-DEW7adbx.js +1 -0
  461. package/web-ui/build/static/vbnet-D_CuPCaz.js +1 -0
  462. package/web-ui/build/static/vbscript-Do9hsQ_u.js +1 -0
  463. package/web-ui/build/static/vbscript-html-4bMQ0-FJ.js +1 -0
  464. package/web-ui/build/static/velocity-CQjo2-fz.js +1 -0
  465. package/web-ui/build/static/verilog-C-Xvd__o.js +1 -0
  466. package/web-ui/build/static/verilog-Dn1ZGsRG.js +1 -0
  467. package/web-ui/build/static/vhdl-DZ-dTOLA.js +1 -0
  468. package/web-ui/build/static/vhdl-bDNJfpa7.js +1 -0
  469. package/web-ui/build/static/vim-BDAo5YHC.js +1 -0
  470. package/web-ui/build/static/vim-ClkOafc3.js +1 -0
  471. package/web-ui/build/static/visual-basic-DXIeLZZ8.js +1 -0
  472. package/web-ui/build/static/warpscript-f7veA-3J.js +1 -0
  473. package/web-ui/build/static/wasm-TToDlmNk.js +1 -0
  474. package/web-ui/build/static/web-idl-CrrjMFQT.js +1 -0
  475. package/web-ui/build/static/wiki-aicisDW2.js +1 -0
  476. package/web-ui/build/static/wolfram-C_A80rAh.js +1 -0
  477. package/web-ui/build/static/wren-DkVyeDoy.js +1 -0
  478. package/web-ui/build/static/x86asm-fx1o_ltw.js +1 -0
  479. package/web-ui/build/static/xeora-D-uaDMXn.js +1 -0
  480. package/web-ui/build/static/xl-Dnyvb9_S.js +1 -0
  481. package/web-ui/build/static/xml-BGV0zG9K.js +1 -0
  482. package/web-ui/build/static/xml-doc-DOGLcenw.js +1 -0
  483. package/web-ui/build/static/xojo-B3Qgvb5A.js +1 -0
  484. package/web-ui/build/static/xquery-C-B5-0Q9.js +1 -0
  485. package/web-ui/build/static/xquery-KbuiAVhj.js +1 -0
  486. package/web-ui/build/static/yaml-CBWBoq6m.js +1 -0
  487. package/web-ui/build/static/yaml-IghlDZf6.js +1 -0
  488. package/web-ui/build/static/yang-CArp62P5.js +1 -0
  489. package/web-ui/build/static/zephir-DMLTJ9_9.js +1 -0
  490. package/web-ui/build/static/zig-CWG2311v.js +1 -0
  491. package/web-ui/build/static/1c-4BRB87En.js +0 -1
  492. package/web-ui/build/static/abap-BXIqiAfL.js +0 -1
  493. package/web-ui/build/static/abnf-0gk1i0eD.js +0 -1
  494. package/web-ui/build/static/abnf-jcv7vN9a.js +0 -1
  495. package/web-ui/build/static/accesslog-bXE2aOZl.js +0 -1
  496. package/web-ui/build/static/actionscript-CF-bqawj.js +0 -1
  497. package/web-ui/build/static/actionscript-CodwLKar.js +0 -1
  498. package/web-ui/build/static/ada-BBEDI84F.js +0 -1
  499. package/web-ui/build/static/ada-Kb6JvaxP.js +0 -1
  500. package/web-ui/build/static/agda-UvnMXUUo.js +0 -1
  501. package/web-ui/build/static/al-D5QZ0ijQ.js +0 -1
  502. package/web-ui/build/static/angelscript-RpvZxbeT.js +0 -1
  503. package/web-ui/build/static/antlr4-BPyUvfii.js +0 -1
  504. package/web-ui/build/static/apache-CtM2pGik.js +0 -1
  505. package/web-ui/build/static/apacheconf-D-i9eISH.js +0 -1
  506. package/web-ui/build/static/apex-Dhn_SJi4.js +0 -1
  507. package/web-ui/build/static/apl-HWtdSaYy.js +0 -1
  508. package/web-ui/build/static/applescript-Br9NrmTP.js +0 -1
  509. package/web-ui/build/static/applescript-DLL0TuGw.js +0 -1
  510. package/web-ui/build/static/aql-MjCgNRUX.js +0 -1
  511. package/web-ui/build/static/arcade--DFvEPVv.js +0 -1
  512. package/web-ui/build/static/arduino-Cqw5W_fL.js +0 -1
  513. package/web-ui/build/static/arduino-DIDBbB7R.js +0 -1
  514. package/web-ui/build/static/arff-GGvbnOhc.js +0 -1
  515. package/web-ui/build/static/armasm-DKLRDLs1.js +0 -1
  516. package/web-ui/build/static/asciidoc-CN5qfm0K.js +0 -1
  517. package/web-ui/build/static/asciidoc-CeQEWYOj.js +0 -1
  518. package/web-ui/build/static/asm6502-B1l2Hc9j.js +0 -1
  519. package/web-ui/build/static/asmatmel-BAojNNWJ.js +0 -1
  520. package/web-ui/build/static/aspectj-DqZFhwdh.js +0 -1
  521. package/web-ui/build/static/aspnet-C0kQPqSr.js +0 -1
  522. package/web-ui/build/static/autohotkey-DY25td-Z.js +0 -1
  523. package/web-ui/build/static/autohotkey-DlqXINgk.js +0 -1
  524. package/web-ui/build/static/autoit-By7J2Y34.js +0 -1
  525. package/web-ui/build/static/autoit-nsu9sBga.js +0 -1
  526. package/web-ui/build/static/avisynth-DmhvVsr-.js +0 -1
  527. package/web-ui/build/static/avrasm-CHfBwwoQ.js +0 -1
  528. package/web-ui/build/static/avro-idl-BKgIWEIF.js +0 -1
  529. package/web-ui/build/static/awk-CpAb4d4E.js +0 -1
  530. package/web-ui/build/static/axapta-CM4aTfCZ.js +0 -1
  531. package/web-ui/build/static/bash-D1KTDlk-.js +0 -1
  532. package/web-ui/build/static/bash-DShkskxb.js +0 -1
  533. package/web-ui/build/static/basic-C4CfKvhg.js +0 -1
  534. package/web-ui/build/static/basic-CkQS4VwL.js +0 -1
  535. package/web-ui/build/static/batch-DZtrClI1.js +0 -1
  536. package/web-ui/build/static/bbcode-CY2FsfaO.js +0 -1
  537. package/web-ui/build/static/bicep-BeSEpm_3.js +0 -1
  538. package/web-ui/build/static/birb-huu22Mwu.js +0 -1
  539. package/web-ui/build/static/bison-CmbxfR57.js +0 -1
  540. package/web-ui/build/static/bnf-c2l_4HXN.js +0 -1
  541. package/web-ui/build/static/bnf-wucEDTqY.js +0 -1
  542. package/web-ui/build/static/brainfuck-CzWBg5U7.js +0 -1
  543. package/web-ui/build/static/brainfuck-I_YQ4sma.js +0 -1
  544. package/web-ui/build/static/brightscript-LOkD4eYW.js +0 -1
  545. package/web-ui/build/static/bro-CLJ7Afqo.js +0 -1
  546. package/web-ui/build/static/bsl-DbUgC2FQ.js +0 -1
  547. package/web-ui/build/static/c-C0S2D2ge.js +0 -1
  548. package/web-ui/build/static/c-KH25O_pL.js +0 -1
  549. package/web-ui/build/static/c-like-DtAFxyl_.js +0 -1
  550. package/web-ui/build/static/cal-uGiVJBNC.js +0 -1
  551. package/web-ui/build/static/capnproto-DSLchjOW.js +0 -1
  552. package/web-ui/build/static/ceylon-Bbxk66YL.js +0 -1
  553. package/web-ui/build/static/cfscript-CjDdgKbl.js +0 -1
  554. package/web-ui/build/static/chaiscript-CnRXaMae.js +0 -1
  555. package/web-ui/build/static/cil-CM9ygF3R.js +0 -1
  556. package/web-ui/build/static/clean-ppAH0SYy.js +0 -1
  557. package/web-ui/build/static/clojure-C5LVccGq.js +0 -1
  558. package/web-ui/build/static/clojure-DtLXiuuC.js +0 -1
  559. package/web-ui/build/static/clojure-repl-fSdrYuup.js +0 -1
  560. package/web-ui/build/static/cmake-AD1fuzSY.js +0 -1
  561. package/web-ui/build/static/cmake-D-o08Yta.js +0 -1
  562. package/web-ui/build/static/cobol-bDh1KHf9.js +0 -1
  563. package/web-ui/build/static/coffeescript-D8InK8kf.js +0 -1
  564. package/web-ui/build/static/coffeescript-MKWUOXb5.js +0 -1
  565. package/web-ui/build/static/concurnas-CR56nj6R.js +0 -1
  566. package/web-ui/build/static/coq-DDLBsBJu.js +0 -1
  567. package/web-ui/build/static/coq-WbhtANeW.js +0 -1
  568. package/web-ui/build/static/cos-Bfmre3op.js +0 -1
  569. package/web-ui/build/static/cpp-Cdy6A7gI.js +0 -1
  570. package/web-ui/build/static/cpp-De2KZejr.js +0 -1
  571. package/web-ui/build/static/crmsh-uf3vbKnN.js +0 -1
  572. package/web-ui/build/static/crystal-BHMyEVPP.js +0 -1
  573. package/web-ui/build/static/crystal-DXAQwftg.js +0 -1
  574. package/web-ui/build/static/csharp-Ci2MRG6L.js +0 -1
  575. package/web-ui/build/static/csharp-D8MV2a7f.js +0 -1
  576. package/web-ui/build/static/cshtml-kVj3v3uY.js +0 -1
  577. package/web-ui/build/static/csp-B83CCdVc.js +0 -1
  578. package/web-ui/build/static/csp-DUO7zlPh.js +0 -1
  579. package/web-ui/build/static/css-BWsx7mtO.js +0 -1
  580. package/web-ui/build/static/css-extras-oHch2Y5C.js +0 -1
  581. package/web-ui/build/static/csv-DIf0iNlc.js +0 -1
  582. package/web-ui/build/static/cypher-B1rOF_f3.js +0 -1
  583. package/web-ui/build/static/d-BUgLS87u.js +0 -1
  584. package/web-ui/build/static/d-ClM8XTCr.js +0 -1
  585. package/web-ui/build/static/dart-D5rVGtrb.js +0 -1
  586. package/web-ui/build/static/dart-Oal__k4m.js +0 -1
  587. package/web-ui/build/static/dataweave-B0uxnNDC.js +0 -1
  588. package/web-ui/build/static/dax-B9z6d1P6.js +0 -1
  589. package/web-ui/build/static/delphi-KMlx8q8A.js +0 -1
  590. package/web-ui/build/static/dhall-DLWFgSR8.js +0 -1
  591. package/web-ui/build/static/diff-DDMGnyhE.js +0 -1
  592. package/web-ui/build/static/diff-yg1oXq3U.js +0 -1
  593. package/web-ui/build/static/django-BDtkIu_c.js +0 -1
  594. package/web-ui/build/static/django-Bkn9HlyQ.js +0 -1
  595. package/web-ui/build/static/dns-Bx1VHfo6.js +0 -1
  596. package/web-ui/build/static/dns-zone-file-Bgn5zn_J.js +0 -1
  597. package/web-ui/build/static/docker-CTdrZJHc.js +0 -1
  598. package/web-ui/build/static/dockerfile-B7ziWbf_.js +0 -1
  599. package/web-ui/build/static/dos-cbBC5Icj.js +0 -1
  600. package/web-ui/build/static/dot-JXSVTLEH.js +0 -1
  601. package/web-ui/build/static/dsconfig-sEua2C2o.js +0 -1
  602. package/web-ui/build/static/dts-Zem_gT_O.js +0 -1
  603. package/web-ui/build/static/dust-B-dZ6-uQ.js +0 -1
  604. package/web-ui/build/static/ebnf-CXfeZoXF.js +0 -1
  605. package/web-ui/build/static/ebnf-raQs4FpT.js +0 -1
  606. package/web-ui/build/static/editorconfig-hp8ARbHf.js +0 -1
  607. package/web-ui/build/static/eiffel-tO3jaG00.js +0 -1
  608. package/web-ui/build/static/ejs-BGmD5Rvl.js +0 -1
  609. package/web-ui/build/static/elixir-CF0JDN9L.js +0 -1
  610. package/web-ui/build/static/elixir-CFSil_Ou.js +0 -1
  611. package/web-ui/build/static/elm-As6XaD-g.js +0 -1
  612. package/web-ui/build/static/elm-pw5GpqTZ.js +0 -1
  613. package/web-ui/build/static/erb-BrpCJIyN.js +0 -1
  614. package/web-ui/build/static/erb-D2_eJU9C.js +0 -1
  615. package/web-ui/build/static/erlang-5rSv6NMZ.js +0 -1
  616. package/web-ui/build/static/erlang-RCAxVMBd.js +0 -1
  617. package/web-ui/build/static/erlang-repl-BN0h_6XR.js +0 -1
  618. package/web-ui/build/static/etlua-BMtMnKtv.js +0 -1
  619. package/web-ui/build/static/excel-CRNS57iM.js +0 -1
  620. package/web-ui/build/static/excel-formula-BNw56R2m.js +0 -1
  621. package/web-ui/build/static/factor-7lsloWTf.js +0 -1
  622. package/web-ui/build/static/false-CQUvGnfd.js +0 -1
  623. package/web-ui/build/static/firestore-security-rules-WC1PabFS.js +0 -1
  624. package/web-ui/build/static/fix-Cs6kLeYV.js +0 -1
  625. package/web-ui/build/static/flix-1fdMgw2I.js +0 -1
  626. package/web-ui/build/static/flow-CRPduKSH.js +0 -1
  627. package/web-ui/build/static/fortran-C-3TUt5R.js +0 -1
  628. package/web-ui/build/static/fortran-CA4bbZCj.js +0 -1
  629. package/web-ui/build/static/fsharp-BScjCFae.js +0 -1
  630. package/web-ui/build/static/fsharp-BtHWuW4o.js +0 -1
  631. package/web-ui/build/static/ftl-Re-S2zvF.js +0 -1
  632. package/web-ui/build/static/gams-Cr12l-cM.js +0 -1
  633. package/web-ui/build/static/gap-H0O9-Zju.js +0 -1
  634. package/web-ui/build/static/gauss-CW8jwURx.js +0 -1
  635. package/web-ui/build/static/gcode-CIxfYtg9.js +0 -1
  636. package/web-ui/build/static/gcode-CVqRWYeB.js +0 -1
  637. package/web-ui/build/static/gdscript-BltZCaKl.js +0 -1
  638. package/web-ui/build/static/gedcom-nMT5ety_.js +0 -1
  639. package/web-ui/build/static/gherkin-B4M7CGOo.js +0 -1
  640. package/web-ui/build/static/gherkin-DumuqAQF.js +0 -1
  641. package/web-ui/build/static/git-BBiBlZ5H.js +0 -1
  642. package/web-ui/build/static/glsl-D8ckiRVo.js +0 -1
  643. package/web-ui/build/static/glsl-Z4VdDyPa.js +0 -1
  644. package/web-ui/build/static/gml-BHuSndHE.js +0 -1
  645. package/web-ui/build/static/gml-DZpfN_A4.js +0 -1
  646. package/web-ui/build/static/gn-BjpAHNh_.js +0 -1
  647. package/web-ui/build/static/go-BeZ9IgZB.js +0 -1
  648. package/web-ui/build/static/go-HEXrcgIc.js +0 -1
  649. package/web-ui/build/static/go-module-BGdPb7sP.js +0 -1
  650. package/web-ui/build/static/golo-Cr70KUbI.js +0 -1
  651. package/web-ui/build/static/gradle-C7MXrDnB.js +0 -1
  652. package/web-ui/build/static/graphql-CJK0wQjf.js +0 -1
  653. package/web-ui/build/static/groovy-Bwe7hkFG.js +0 -1
  654. package/web-ui/build/static/groovy-Dc6WDoKa.js +0 -1
  655. package/web-ui/build/static/haml-BSsAjltt.js +0 -1
  656. package/web-ui/build/static/haml-CZih7X_4.js +0 -1
  657. package/web-ui/build/static/handlebars-CN8hCpsy.js +0 -1
  658. package/web-ui/build/static/handlebars-XBLc7i13.js +0 -1
  659. package/web-ui/build/static/haskell-BH9WhK10.js +0 -1
  660. package/web-ui/build/static/haskell-Djf2J1vd.js +0 -1
  661. package/web-ui/build/static/haxe-BllD-W9e.js +0 -1
  662. package/web-ui/build/static/haxe-DY8Hyn7u.js +0 -1
  663. package/web-ui/build/static/hcl-CfktAP2o.js +0 -1
  664. package/web-ui/build/static/hlsl-B2JSOD9d.js +0 -1
  665. package/web-ui/build/static/hoon-BILyDobB.js +0 -1
  666. package/web-ui/build/static/hpkp-Bb8rXx4p.js +0 -1
  667. package/web-ui/build/static/hsp-BmjeJC21.js +0 -1
  668. package/web-ui/build/static/hsts-DJhW57Fu.js +0 -1
  669. package/web-ui/build/static/htmlbars-CJe_ZLjw.js +0 -1
  670. package/web-ui/build/static/http-D7SlABvQ.js +0 -1
  671. package/web-ui/build/static/http-DEUJqmEm.js +0 -1
  672. package/web-ui/build/static/hy-DVfsgEbr.js +0 -1
  673. package/web-ui/build/static/ichigojam-CPdz2bOt.js +0 -1
  674. package/web-ui/build/static/icon-DYK9RbU9.js +0 -1
  675. package/web-ui/build/static/icu-message-format-HiZB_alB.js +0 -1
  676. package/web-ui/build/static/idris-Clk3tJIE.js +0 -1
  677. package/web-ui/build/static/iecst-D7wkeksq.js +0 -1
  678. package/web-ui/build/static/ignore-GSm-L3jG.js +0 -1
  679. package/web-ui/build/static/index-BJe5td0v.js +0 -13
  680. package/web-ui/build/static/index-BYvljeMN.js +0 -1
  681. package/web-ui/build/static/index-CLelJq9j.js +0 -1156
  682. package/web-ui/build/static/index-f5UnFSsY.css +0 -1
  683. package/web-ui/build/static/inform7-D3gc0hSc.js +0 -1
  684. package/web-ui/build/static/inform7-DLdvZTxX.js +0 -1
  685. package/web-ui/build/static/ini-CVcWx1TA.js +0 -1
  686. package/web-ui/build/static/ini-CxYBdsvZ.js +0 -1
  687. package/web-ui/build/static/io-D760QF0i.js +0 -1
  688. package/web-ui/build/static/irpf90-DfkXdZut.js +0 -1
  689. package/web-ui/build/static/isbl-Bl3W-krY.js +0 -1
  690. package/web-ui/build/static/j-DyJj9FSc.js +0 -1
  691. package/web-ui/build/static/java-CLw1cH97.js +0 -1
  692. package/web-ui/build/static/java-vXaHBzP4.js +0 -1
  693. package/web-ui/build/static/javadoc-p5hIe48g.js +0 -1
  694. package/web-ui/build/static/javadoclike-OXi-sQ0q.js +0 -1
  695. package/web-ui/build/static/javascript-CTSqES8o.js +0 -1
  696. package/web-ui/build/static/javastacktrace-PC9-3moA.js +0 -1
  697. package/web-ui/build/static/jboss-cli-CxOZKDLi.js +0 -1
  698. package/web-ui/build/static/jexl-C4kSXhD1.js +0 -1
  699. package/web-ui/build/static/jolie-CntM8cWx.js +0 -1
  700. package/web-ui/build/static/jq-D_4bTCm0.js +0 -1
  701. package/web-ui/build/static/js-extras-Cx9VAZJd.js +0 -1
  702. package/web-ui/build/static/js-templates-BqyJUDxJ.js +0 -1
  703. package/web-ui/build/static/jsdoc-CNHLgAph.js +0 -1
  704. package/web-ui/build/static/json-BXIFrbVC.js +0 -1
  705. package/web-ui/build/static/json-DRUrJL_F.js +0 -1
  706. package/web-ui/build/static/json5-EsTrOpXr.js +0 -1
  707. package/web-ui/build/static/jsonp-RijEuTJY.js +0 -1
  708. package/web-ui/build/static/jsstacktrace-dM13uE1y.js +0 -1
  709. package/web-ui/build/static/jsx-Cf0j02DZ.js +0 -1
  710. package/web-ui/build/static/julia-BLrtj5Dj.js +0 -1
  711. package/web-ui/build/static/julia-D0PJgQhi.js +0 -1
  712. package/web-ui/build/static/julia-repl-BLnLCve4.js +0 -1
  713. package/web-ui/build/static/keepalived-SvzEYloD.js +0 -1
  714. package/web-ui/build/static/keyman-B5l2mmmE.js +0 -1
  715. package/web-ui/build/static/kotlin-B_6COR1e.js +0 -1
  716. package/web-ui/build/static/kotlin-vd1Xdz6D.js +0 -1
  717. package/web-ui/build/static/kumir-8mIZWgJQ.js +0 -1
  718. package/web-ui/build/static/kusto-CoV2oHqt.js +0 -1
  719. package/web-ui/build/static/lasso-BjjUNa_o.js +0 -1
  720. package/web-ui/build/static/latex-C9KOfuFk.js +0 -1
  721. package/web-ui/build/static/latex-DhLttY-I.js +0 -1
  722. package/web-ui/build/static/latte-CaYNaOoK.js +0 -1
  723. package/web-ui/build/static/ldif-DFxnpH3G.js +0 -1
  724. package/web-ui/build/static/leaf-DrMpC83a.js +0 -1
  725. package/web-ui/build/static/less-DUoYpEFn.js +0 -1
  726. package/web-ui/build/static/less-nh0XCcut.js +0 -1
  727. package/web-ui/build/static/lilypond-BlqjLr3W.js +0 -1
  728. package/web-ui/build/static/liquid-BVGHSG0T.js +0 -1
  729. package/web-ui/build/static/lisp-CEK8BtYQ.js +0 -1
  730. package/web-ui/build/static/lisp-D_jGHxhc.js +0 -1
  731. package/web-ui/build/static/livecodeserver-CFUDw_SK.js +0 -1
  732. package/web-ui/build/static/livescript-C5xzpiLM.js +0 -1
  733. package/web-ui/build/static/livescript-CKoPcK0c.js +0 -1
  734. package/web-ui/build/static/llvm-BBOVIeTl.js +0 -1
  735. package/web-ui/build/static/llvm-ioC5bCUB.js +0 -1
  736. package/web-ui/build/static/log-CPYTqm4T.js +0 -1
  737. package/web-ui/build/static/lolcode-BkT93adT.js +0 -1
  738. package/web-ui/build/static/lsl-M98YPNRW.js +0 -1
  739. package/web-ui/build/static/lua-D7Lum5n9.js +0 -1
  740. package/web-ui/build/static/lua-DHyr0QwE.js +0 -1
  741. package/web-ui/build/static/magma-BwMFjwQu.js +0 -1
  742. package/web-ui/build/static/makefile-BFYZ-SfG.js +0 -1
  743. package/web-ui/build/static/makefile-D6oyR2lD.js +0 -1
  744. package/web-ui/build/static/markdown-6jtg6KZm.js +0 -1
  745. package/web-ui/build/static/markdown-DTLtPgeP.js +0 -1
  746. package/web-ui/build/static/markup-templating-K8uoAIqY.js +0 -1
  747. package/web-ui/build/static/mathematica-cW5hOuB2.js +0 -1
  748. package/web-ui/build/static/matlab-CwSNWEq8.js +0 -1
  749. package/web-ui/build/static/matlab-MQ972BY-.js +0 -1
  750. package/web-ui/build/static/maxima-CMSFLri-.js +0 -1
  751. package/web-ui/build/static/maxscript-BzcoS2KA.js +0 -1
  752. package/web-ui/build/static/mel-Cd20pAs-.js +0 -1
  753. package/web-ui/build/static/mel-KWG5N49g.js +0 -1
  754. package/web-ui/build/static/mercury-eW1ljJh0.js +0 -1
  755. package/web-ui/build/static/mermaid-D3zeCM84.js +0 -1
  756. package/web-ui/build/static/mipsasm-B5g6Ndra.js +0 -1
  757. package/web-ui/build/static/mizar-C_nZ0Ts9.js +0 -1
  758. package/web-ui/build/static/mizar-CuTNEv2t.js +0 -1
  759. package/web-ui/build/static/mojolicious-C1Xq--lT.js +0 -1
  760. package/web-ui/build/static/mongodb-C_3giArw.js +0 -1
  761. package/web-ui/build/static/monkey-DQ1olPd-.js +0 -1
  762. package/web-ui/build/static/monkey-n4Tbrep7.js +0 -1
  763. package/web-ui/build/static/moonscript-CmnQJuIL.js +0 -1
  764. package/web-ui/build/static/moonscript-DXgmWjLy.js +0 -1
  765. package/web-ui/build/static/n1ql-531a3W-1.js +0 -1
  766. package/web-ui/build/static/n1ql-BYH9EvME.js +0 -1
  767. package/web-ui/build/static/n4js-Cy0LcM-V.js +0 -1
  768. package/web-ui/build/static/nand2tetris-hdl-CKOztBDD.js +0 -1
  769. package/web-ui/build/static/naniscript-oLFpxBGE.js +0 -1
  770. package/web-ui/build/static/nasm-DLPnwFkM.js +0 -1
  771. package/web-ui/build/static/neon-Cn03wGUR.js +0 -1
  772. package/web-ui/build/static/nevod-C_VRvbdf.js +0 -1
  773. package/web-ui/build/static/nginx-60SpLv4t.js +0 -1
  774. package/web-ui/build/static/nginx-DZLHid-q.js +0 -1
  775. package/web-ui/build/static/nim-BnrHdqGC.js +0 -1
  776. package/web-ui/build/static/nim-Ds3pmwtE.js +0 -1
  777. package/web-ui/build/static/nix-Dl-dS0w4.js +0 -1
  778. package/web-ui/build/static/nix-jL62FzTz.js +0 -1
  779. package/web-ui/build/static/node-repl-BAuDzNZd.js +0 -1
  780. package/web-ui/build/static/nsis-CEnFjfNr.js +0 -1
  781. package/web-ui/build/static/nsis-CcCz6HIu.js +0 -1
  782. package/web-ui/build/static/objectivec-CZXfVowS.js +0 -1
  783. package/web-ui/build/static/objectivec-CuaFU-Ef.js +0 -1
  784. package/web-ui/build/static/ocaml-BGAzfwAx.js +0 -1
  785. package/web-ui/build/static/ocaml-BoO1lU26.js +0 -1
  786. package/web-ui/build/static/opencl-DAnD5xP-.js +0 -1
  787. package/web-ui/build/static/openqasm-CO7gdVj9.js +0 -1
  788. package/web-ui/build/static/openscad-B2wMEMQR.js +0 -1
  789. package/web-ui/build/static/oxygene-1erv93gF.js +0 -1
  790. package/web-ui/build/static/oz-D3334gi7.js +0 -1
  791. package/web-ui/build/static/parigp-rQZTN8zi.js +0 -1
  792. package/web-ui/build/static/parser-B4ZSZ1ig.js +0 -1
  793. package/web-ui/build/static/parser3-CCCjkYLG.js +0 -1
  794. package/web-ui/build/static/pascal-DeC9Pvom.js +0 -1
  795. package/web-ui/build/static/pascaligo-CT2u6UpO.js +0 -1
  796. package/web-ui/build/static/pcaxis-CvlRg6t4.js +0 -1
  797. package/web-ui/build/static/peoplecode-BYahULz2.js +0 -1
  798. package/web-ui/build/static/perl-CKgvyY59.js +0 -1
  799. package/web-ui/build/static/perl-E7sx7Izv.js +0 -1
  800. package/web-ui/build/static/pf-D9wnFBt7.js +0 -1
  801. package/web-ui/build/static/pgsql-CrlBdRAn.js +0 -1
  802. package/web-ui/build/static/php-D2O-B3y7.js +0 -1
  803. package/web-ui/build/static/php-extras-BKqZuzgt.js +0 -1
  804. package/web-ui/build/static/php-nfXl9WfB.js +0 -1
  805. package/web-ui/build/static/php-template-Cg8ERLNQ.js +0 -1
  806. package/web-ui/build/static/phpdoc-Z1u90OwH.js +0 -1
  807. package/web-ui/build/static/plaintext-DkNVeXWx.js +0 -1
  808. package/web-ui/build/static/plsql-DO5fJNhS.js +0 -1
  809. package/web-ui/build/static/pony-DXIqq5Bk.js +0 -1
  810. package/web-ui/build/static/powerquery-B2ovxJZi.js +0 -1
  811. package/web-ui/build/static/powershell-BVeqqari.js +0 -1
  812. package/web-ui/build/static/powershell-CskV4qWh.js +0 -1
  813. package/web-ui/build/static/processing-D90SJpnq.js +0 -1
  814. package/web-ui/build/static/processing-DP2mf97Z.js +0 -1
  815. package/web-ui/build/static/profile-H6zk8v_f.js +0 -1
  816. package/web-ui/build/static/prolog-AUfxYiJV.js +0 -1
  817. package/web-ui/build/static/prolog-Dz2WdsVN.js +0 -1
  818. package/web-ui/build/static/promql-CloMJmMW.js +0 -1
  819. package/web-ui/build/static/properties-CTl3mnrP.js +0 -1
  820. package/web-ui/build/static/properties-D2RfteTZ.js +0 -1
  821. package/web-ui/build/static/protobuf-Be9oqQCu.js +0 -1
  822. package/web-ui/build/static/protobuf-BgG8zUnY.js +0 -1
  823. package/web-ui/build/static/psl-Bqx8iN9e.js +0 -1
  824. package/web-ui/build/static/pug-CHfFC0Wg.js +0 -1
  825. package/web-ui/build/static/puppet-__1ifzZS.js +0 -1
  826. package/web-ui/build/static/puppet-pbtRCMgd.js +0 -1
  827. package/web-ui/build/static/pure-B9STuf4F.js +0 -1
  828. package/web-ui/build/static/purebasic-7ADyn-Ce.js +0 -1
  829. package/web-ui/build/static/purebasic-Bc06YQcD.js +0 -1
  830. package/web-ui/build/static/purescript-CU-dDebr.js +0 -1
  831. package/web-ui/build/static/python-BEsXrEbi.js +0 -1
  832. package/web-ui/build/static/python-CZFrgH2X.js +0 -1
  833. package/web-ui/build/static/python-repl-CI9GmJce.js +0 -1
  834. package/web-ui/build/static/q-E7xvTGRo.js +0 -1
  835. package/web-ui/build/static/q-hvg9aQoY.js +0 -1
  836. package/web-ui/build/static/qml-DkZWcxEv.js +0 -1
  837. package/web-ui/build/static/qml-DpdWla8G.js +0 -1
  838. package/web-ui/build/static/qore-Dsm7ACR_.js +0 -1
  839. package/web-ui/build/static/qsharp-BBec6MJR.js +0 -1
  840. package/web-ui/build/static/r-CTVkq_Ky.js +0 -1
  841. package/web-ui/build/static/r-DHGNCupF.js +0 -1
  842. package/web-ui/build/static/racket-hoSh4YPx.js +0 -1
  843. package/web-ui/build/static/reason-CQPUIbsm.js +0 -1
  844. package/web-ui/build/static/reasonml-BXtFFSTZ.js +0 -1
  845. package/web-ui/build/static/regex-BNkF_ufb.js +0 -1
  846. package/web-ui/build/static/rego-BXHrjItC.js +0 -1
  847. package/web-ui/build/static/renpy-CBQvK_5t.js +0 -1
  848. package/web-ui/build/static/rest-Bf8hzmF1.js +0 -1
  849. package/web-ui/build/static/rib-D0a4KzlP.js +0 -1
  850. package/web-ui/build/static/rip-DchN4BQN.js +0 -1
  851. package/web-ui/build/static/roboconf-HXnyGNTm.js +0 -1
  852. package/web-ui/build/static/roboconf-zfK6mgmU.js +0 -1
  853. package/web-ui/build/static/robotframework-DnP-vXyd.js +0 -1
  854. package/web-ui/build/static/routeros-CDirYxZY.js +0 -1
  855. package/web-ui/build/static/rsl-BCK_msc-.js +0 -1
  856. package/web-ui/build/static/ruby--mXX6GNK.js +0 -1
  857. package/web-ui/build/static/ruby-BIdQYq0Y.js +0 -1
  858. package/web-ui/build/static/ruleslanguage-BD07s5RU.js +0 -1
  859. package/web-ui/build/static/rust-Bgni9V7U.js +0 -1
  860. package/web-ui/build/static/rust-OywmQ2ox.js +0 -1
  861. package/web-ui/build/static/sas-B6-82htH.js +0 -1
  862. package/web-ui/build/static/sas-k9XEScbR.js +0 -1
  863. package/web-ui/build/static/sass-BOvNBStT.js +0 -1
  864. package/web-ui/build/static/scala-At07fmMd.js +0 -1
  865. package/web-ui/build/static/scala-DUOfqSaU.js +0 -1
  866. package/web-ui/build/static/scheme-B87lC0bK.js +0 -1
  867. package/web-ui/build/static/scheme-BS7OzWRX.js +0 -1
  868. package/web-ui/build/static/scilab-Bmn4jjcu.js +0 -1
  869. package/web-ui/build/static/scss-DTeB95yE.js +0 -1
  870. package/web-ui/build/static/scss-xilnl6Dx.js +0 -1
  871. package/web-ui/build/static/shell-CKetyy4y.js +0 -1
  872. package/web-ui/build/static/shell-session-B6rat2c7.js +0 -1
  873. package/web-ui/build/static/smali-C9O9CXOD.js +0 -1
  874. package/web-ui/build/static/smali-CBkgbinS.js +0 -1
  875. package/web-ui/build/static/smalltalk-CuUjFHiz.js +0 -1
  876. package/web-ui/build/static/smalltalk-D0xhFL9b.js +0 -1
  877. package/web-ui/build/static/smarty-CY0N0d5x.js +0 -1
  878. package/web-ui/build/static/sml-BVAw3fjB.js +0 -1
  879. package/web-ui/build/static/sml-CO9XB1ax.js +0 -1
  880. package/web-ui/build/static/solidity-BNixD4Dx.js +0 -1
  881. package/web-ui/build/static/solution-file-DHyGXf2y.js +0 -1
  882. package/web-ui/build/static/soy-Cxgjntsl.js +0 -1
  883. package/web-ui/build/static/sparql-CDLqu9vy.js +0 -1
  884. package/web-ui/build/static/splunk-spl-Cmkl_Xmw.js +0 -1
  885. package/web-ui/build/static/sqf-CIGKolw3.js +0 -1
  886. package/web-ui/build/static/sqf-Cfp_lC6-.js +0 -1
  887. package/web-ui/build/static/sql-DHOGwYxe.js +0 -1
  888. package/web-ui/build/static/sql-QIw1Q2yi.js +0 -1
  889. package/web-ui/build/static/sql_more-C0b3-InT.js +0 -1
  890. package/web-ui/build/static/squirrel-DASToo1F.js +0 -1
  891. package/web-ui/build/static/stan-DHMkcFZg.js +0 -1
  892. package/web-ui/build/static/stan-No3nsdnQ.js +0 -1
  893. package/web-ui/build/static/stata-Brkzu5Nv.js +0 -1
  894. package/web-ui/build/static/step21-D2l5M5Ml.js +0 -1
  895. package/web-ui/build/static/stylus-Bx6FaZN_.js +0 -1
  896. package/web-ui/build/static/stylus-CVkTaPns.js +0 -1
  897. package/web-ui/build/static/subunit-CDrsAMuL.js +0 -1
  898. package/web-ui/build/static/swift-BSw_pS-l.js +0 -1
  899. package/web-ui/build/static/swift-BWyqwIo8.js +0 -1
  900. package/web-ui/build/static/systemd-BwqpYcJK.js +0 -1
  901. package/web-ui/build/static/t4-cs-CwsJLOxV.js +0 -1
  902. package/web-ui/build/static/t4-templating-BfxY01xf.js +0 -1
  903. package/web-ui/build/static/t4-vb-BhsKKFhp.js +0 -1
  904. package/web-ui/build/static/taggerscript-Bkew95or.js +0 -1
  905. package/web-ui/build/static/tap-DHovcHbS.js +0 -1
  906. package/web-ui/build/static/tap-DPl9uPo4.js +0 -1
  907. package/web-ui/build/static/tcl-BeozHO-f.js +0 -1
  908. package/web-ui/build/static/tcl-Df_8ItQH.js +0 -1
  909. package/web-ui/build/static/textile-B3m_f58b.js +0 -1
  910. package/web-ui/build/static/thrift-D20n-HpW.js +0 -1
  911. package/web-ui/build/static/toml-C-fTAonK.js +0 -1
  912. package/web-ui/build/static/tp-hGbXe5Eo.js +0 -1
  913. package/web-ui/build/static/tremor-BaVOtRFz.js +0 -1
  914. package/web-ui/build/static/tsx-ChPInNl0.js +0 -1
  915. package/web-ui/build/static/tt2-DAIJ8cpz.js +0 -1
  916. package/web-ui/build/static/turtle-B7z_y-PK.js +0 -1
  917. package/web-ui/build/static/twig-TUEkve6W.js +0 -1
  918. package/web-ui/build/static/twig-stKDItz7.js +0 -1
  919. package/web-ui/build/static/typescript-BPdM-QOM.js +0 -1
  920. package/web-ui/build/static/typescript-DjSY4MvL.js +0 -1
  921. package/web-ui/build/static/typoscript-BQHgQtEL.js +0 -1
  922. package/web-ui/build/static/unrealscript-g8yNPQQ5.js +0 -1
  923. package/web-ui/build/static/uorazor-CnuMiQz9.js +0 -1
  924. package/web-ui/build/static/uri-CfioiemU.js +0 -1
  925. package/web-ui/build/static/v-B69Oau14.js +0 -1
  926. package/web-ui/build/static/vala-C0PjlK3l.js +0 -1
  927. package/web-ui/build/static/vala-COgjD3gU.js +0 -1
  928. package/web-ui/build/static/vbnet-CklOnyuR.js +0 -1
  929. package/web-ui/build/static/vbnet-MxHUC5Mz.js +0 -1
  930. package/web-ui/build/static/vbscript-BxQnA97w.js +0 -1
  931. package/web-ui/build/static/vbscript-html-DOtde7dD.js +0 -1
  932. package/web-ui/build/static/velocity-l8B9m66X.js +0 -1
  933. package/web-ui/build/static/verilog-DF6dF-Vp.js +0 -1
  934. package/web-ui/build/static/verilog-Dgb9SDRX.js +0 -1
  935. package/web-ui/build/static/vhdl-0GarU_AK.js +0 -1
  936. package/web-ui/build/static/vhdl-BfPQnOdI.js +0 -1
  937. package/web-ui/build/static/vim-Likg_-II.js +0 -1
  938. package/web-ui/build/static/vim-k53Sj7A3.js +0 -1
  939. package/web-ui/build/static/visual-basic-BNVZCzlV.js +0 -1
  940. package/web-ui/build/static/warpscript-BkLK5iuW.js +0 -1
  941. package/web-ui/build/static/wasm-CQhA1ece.js +0 -1
  942. package/web-ui/build/static/web-idl-DmNsI0kE.js +0 -1
  943. package/web-ui/build/static/wiki-B3z4pmra.js +0 -1
  944. package/web-ui/build/static/wolfram-Dsf21d_g.js +0 -1
  945. package/web-ui/build/static/wren-BZXZlzrL.js +0 -1
  946. package/web-ui/build/static/x86asm-DpWGZhJU.js +0 -1
  947. package/web-ui/build/static/xeora-8xPZN4DH.js +0 -1
  948. package/web-ui/build/static/xl-XkdWYMGl.js +0 -1
  949. package/web-ui/build/static/xml-BBdROEWt.js +0 -1
  950. package/web-ui/build/static/xml-doc-Cjs4OpTe.js +0 -1
  951. package/web-ui/build/static/xojo-nCen1FPx.js +0 -1
  952. package/web-ui/build/static/xquery-CBFkAxo1.js +0 -1
  953. package/web-ui/build/static/xquery-Dwsc1weX.js +0 -1
  954. package/web-ui/build/static/yaml-DzSAh6jl.js +0 -1
  955. package/web-ui/build/static/yaml-Lg8gnEUU.js +0 -1
  956. package/web-ui/build/static/yang-Bd-v2b0k.js +0 -1
  957. package/web-ui/build/static/zephir-wbJOizIa.js +0 -1
  958. package/web-ui/build/static/zig-Cz384XjE.js +0 -1
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Tests for the shared cipher primitives used by both
3
+ * `services/apiKeyManager.js` (api-keys.enc) and
4
+ * `services/authCacheStore.js` (auth-cache.enc).
5
+ *
6
+ * Covers:
7
+ * - key derivation: persistence across calls, identity vs different salts
8
+ * - round-trip: encrypt then decrypt returns the original
9
+ * - constants stability: KEY_DERIVATION_DOMAIN is part of the on-disk
10
+ * contract and must not change without a migration
11
+ */
12
+
13
+ import { describe, test, expect, beforeEach, afterEach } from '@jest/globals';
14
+ import { promises as fs } from 'fs';
15
+ import path from 'path';
16
+ import os from 'os';
17
+ import crypto from 'crypto';
18
+
19
+ import {
20
+ encrypt,
21
+ decrypt,
22
+ getOrCreateEncryptionKey,
23
+ KEY_DERIVATION_DOMAIN,
24
+ SALT_FILENAME,
25
+ SALT_LENGTH,
26
+ KEY_LENGTH,
27
+ } from '../secretsCipher.js';
28
+
29
+ const tmpDir = path.join(os.tmpdir(), 'secretsCipher-test-' + crypto.randomBytes(6).toString('hex'));
30
+
31
+ beforeEach(async () => { await fs.mkdir(tmpDir, { recursive: true }); });
32
+ afterEach(async () => { try { await fs.rm(tmpDir, { recursive: true, force: true }); } catch { /* ok */ } });
33
+
34
+ describe('secretsCipher', () => {
35
+ test('KEY_DERIVATION_DOMAIN is the documented value — changing this invalidates all stored credentials', () => {
36
+ // Tripwire: this constant is part of the on-disk contract.
37
+ // If you intentionally need to rotate it, also write a migration.
38
+ expect(KEY_DERIVATION_DOMAIN).toBe('loxia-api-key-encryption-v1');
39
+ });
40
+
41
+ test('getOrCreateEncryptionKey creates a salt file on first call', async () => {
42
+ await getOrCreateEncryptionKey(tmpDir, null);
43
+ const saltFile = path.join(tmpDir, SALT_FILENAME);
44
+ const buf = await fs.readFile(saltFile);
45
+ expect(buf.length).toBe(SALT_LENGTH);
46
+ });
47
+
48
+ test('getOrCreateEncryptionKey reuses the existing salt on subsequent calls', async () => {
49
+ const key1 = await getOrCreateEncryptionKey(tmpDir, null);
50
+ const key2 = await getOrCreateEncryptionKey(tmpDir, null);
51
+ expect(key1.equals(key2)).toBe(true);
52
+ expect(key1.length).toBe(KEY_LENGTH);
53
+ });
54
+
55
+ test('different salt directories yield different keys', async () => {
56
+ const dirA = path.join(tmpDir, 'a');
57
+ const dirB = path.join(tmpDir, 'b');
58
+ await fs.mkdir(dirA); await fs.mkdir(dirB);
59
+ const keyA = await getOrCreateEncryptionKey(dirA, null);
60
+ const keyB = await getOrCreateEncryptionKey(dirB, null);
61
+ expect(keyA.equals(keyB)).toBe(false);
62
+ });
63
+
64
+ test('encrypt then decrypt round-trips the plaintext', async () => {
65
+ const key = await getOrCreateEncryptionKey(tmpDir, null);
66
+ const plaintext = JSON.stringify({ jwt: 'eyJ.test.jwt', user: { id: 'u-1' } });
67
+ const ct = encrypt(plaintext, key);
68
+ expect(typeof ct).toBe('string');
69
+ expect(ct).not.toContain('eyJ'); // not plaintext
70
+ expect(decrypt(ct, key)).toBe(plaintext);
71
+ });
72
+
73
+ test('encrypt produces different ciphertext each call (random IV)', async () => {
74
+ const key = await getOrCreateEncryptionKey(tmpDir, null);
75
+ const ct1 = encrypt('same', key);
76
+ const ct2 = encrypt('same', key);
77
+ expect(ct1).not.toBe(ct2);
78
+ });
79
+
80
+ test('decrypt throws with a clear message when no key supplied', () => {
81
+ expect(() => decrypt('anything', null)).toThrow('Encryption key not initialized');
82
+ });
83
+
84
+ test('encrypt throws with a clear message when no key supplied', () => {
85
+ expect(() => encrypt('anything', null)).toThrow('Encryption key not initialized');
86
+ });
87
+
88
+ test('decrypt fails on tampered ciphertext (GCM authTag check)', async () => {
89
+ const key = await getOrCreateEncryptionKey(tmpDir, null);
90
+ const ct = encrypt('payload', key);
91
+ // Flip a byte in the middle of the buffer
92
+ const buf = Buffer.from(ct, 'base64');
93
+ buf[Math.floor(buf.length / 2)] ^= 0xff;
94
+ const tampered = buf.toString('base64');
95
+ expect(() => decrypt(tampered, key)).toThrow();
96
+ });
97
+ });
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Tests for src/utilities/updateNotifier.js — the CLI banner wrapper.
3
+ *
4
+ * The helper has four kill-switch paths and two normal paths. We
5
+ * test each so a regression doesn't either spam users or silently
6
+ * stop checking.
7
+ */
8
+
9
+ import { describe, test, expect, jest } from '@jest/globals';
10
+ import {
11
+ runUpdateCheck,
12
+ isUpdateCheckDisabled,
13
+ loadPackageJson,
14
+ } from '../updateNotifier.js';
15
+
16
+ describe('isUpdateCheckDisabled', () => {
17
+ test('returns false on an empty env', () => {
18
+ expect(isUpdateCheckDisabled({})).toBe(false);
19
+ });
20
+
21
+ test('honors LOXIA_DISABLE_UPDATE_CHECK', () => {
22
+ expect(isUpdateCheckDisabled({ LOXIA_DISABLE_UPDATE_CHECK: '1' })).toBe(true);
23
+ expect(isUpdateCheckDisabled({ LOXIA_DISABLE_UPDATE_CHECK: 'true' })).toBe(true);
24
+ });
25
+
26
+ test('honors NO_UPDATE_NOTIFIER (package convention)', () => {
27
+ expect(isUpdateCheckDisabled({ NO_UPDATE_NOTIFIER: '1' })).toBe(true);
28
+ });
29
+
30
+ test('honors CI=true (avoids banner in pipelines)', () => {
31
+ expect(isUpdateCheckDisabled({ CI: 'true' })).toBe(true);
32
+ });
33
+
34
+ test('treats "0" and "false" as not-disabled (escape hatch for misuse)', () => {
35
+ expect(isUpdateCheckDisabled({ LOXIA_DISABLE_UPDATE_CHECK: '0' })).toBe(false);
36
+ expect(isUpdateCheckDisabled({ LOXIA_DISABLE_UPDATE_CHECK: 'false' })).toBe(false);
37
+ });
38
+ });
39
+
40
+ describe('loadPackageJson', () => {
41
+ test('finds the CLI package.json by walking up from a starting dir', () => {
42
+ // The helper looks for a pkg.json with `bin` OR `@loxia-labs/` name —
43
+ // both true of this repo's root pkg.json.
44
+ const pkg = loadPackageJson();
45
+ expect(pkg).not.toBeNull();
46
+ expect(pkg.name).toMatch(/loxia/i);
47
+ expect(typeof pkg.version).toBe('string');
48
+ });
49
+
50
+ test('returns null when no qualifying package.json exists in the chain', () => {
51
+ // Inject a stub that always returns ENOENT.
52
+ const fs = {
53
+ readFileSync: () => { throw Object.assign(new Error('nope'), { code: 'ENOENT' }); },
54
+ };
55
+ expect(loadPackageJson({ startDir: '/tmp', fs })).toBeNull();
56
+ });
57
+ });
58
+
59
+ describe('runUpdateCheck — kill-switches', () => {
60
+ test('returns null when disabled by env', async () => {
61
+ const importImpl = jest.fn();
62
+ const r = await runUpdateCheck({
63
+ env: { LOXIA_DISABLE_UPDATE_CHECK: '1' },
64
+ pkg: { name: 'x', version: '1.0.0' },
65
+ importImpl,
66
+ });
67
+ expect(r).toBeNull();
68
+ expect(importImpl).not.toHaveBeenCalled();
69
+ });
70
+
71
+ test('returns null when pkg.json could not be loaded', async () => {
72
+ const importImpl = jest.fn();
73
+ const r = await runUpdateCheck({
74
+ env: {},
75
+ pkg: null,
76
+ importImpl,
77
+ });
78
+ expect(r).toBeNull();
79
+ expect(importImpl).not.toHaveBeenCalled();
80
+ });
81
+ });
82
+
83
+ describe('runUpdateCheck — dependency tolerance', () => {
84
+ test('returns null when update-notifier is not installed', async () => {
85
+ const importImpl = jest.fn().mockRejectedValue(new Error('Cannot find module'));
86
+ const r = await runUpdateCheck({
87
+ env: {},
88
+ pkg: { name: 'x', version: '1.0.0' },
89
+ importImpl,
90
+ });
91
+ expect(r).toBeNull();
92
+ });
93
+
94
+ test('returns null when the module exists but has the wrong shape', async () => {
95
+ const importImpl = jest.fn().mockResolvedValue({ /* no default, no callable */ });
96
+ const r = await runUpdateCheck({
97
+ env: {},
98
+ pkg: { name: 'x', version: '1.0.0' },
99
+ importImpl,
100
+ });
101
+ expect(r).toBeNull();
102
+ });
103
+ });
104
+
105
+ describe('runUpdateCheck — happy path', () => {
106
+ test('invokes update-notifier with the supplied pkg and calls notify()', async () => {
107
+ const notifyMock = jest.fn();
108
+ const updateNotifierFn = jest.fn().mockReturnValue({ notify: notifyMock });
109
+ const importImpl = jest.fn().mockResolvedValue({ default: updateNotifierFn });
110
+
111
+ const pkg = { name: '@loxia-labs/loxia-autopilot-one', version: '4.6.4' };
112
+ const result = await runUpdateCheck({ env: {}, pkg, importImpl });
113
+
114
+ expect(result).toEqual({ notify: notifyMock });
115
+ expect(updateNotifierFn).toHaveBeenCalledTimes(1);
116
+ const call = updateNotifierFn.mock.calls[0][0];
117
+ expect(call.pkg).toBe(pkg);
118
+ expect(typeof call.updateCheckInterval).toBe('number');
119
+ expect(notifyMock).toHaveBeenCalledTimes(1);
120
+
121
+ const notifyOpts = notifyMock.mock.calls[0][0];
122
+ expect(notifyOpts.isGlobal).toBe(true);
123
+ expect(notifyOpts.message).toContain('{packageName}');
124
+ });
125
+
126
+ test('a throwing notifier does not surface — returns null', async () => {
127
+ const updateNotifierFn = jest.fn().mockImplementation(() => { throw new Error('boom'); });
128
+ const importImpl = jest.fn().mockResolvedValue({ default: updateNotifierFn });
129
+ const logger = { debug: jest.fn() };
130
+ const r = await runUpdateCheck({
131
+ env: {},
132
+ pkg: { name: 'x', version: '1.0.0' },
133
+ importImpl,
134
+ logger,
135
+ });
136
+ expect(r).toBeNull();
137
+ expect(logger.debug).toHaveBeenCalled();
138
+ });
139
+ });
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Auth-result cache shape + transitions.
3
+ *
4
+ * The webServer caches the most recent auth event in `lastAuthResult` so
5
+ * a frontend that missed the WS broadcast (page reload, dropped
6
+ * connection, race) can recover via polling `/api/auth/status`. The
7
+ * cache shape and three state transitions live here so they're
8
+ * testable without standing up Express.
9
+ *
10
+ * Cache shape:
11
+ * { user, hasApiKey, jwt, timestamp }
12
+ *
13
+ * - user — { id, email, ... } or null
14
+ * - hasApiKey — bool
15
+ * - jwt — raw bearer token from OAuth, or null. Mandatory for
16
+ * marketplace publish/install/rate calls (the marketplace
17
+ * service verifies JWTs directly, not lx_* keys).
18
+ * - timestamp — ISO of when this cache row was written; used for
19
+ * staleness checks via `?since=` polling.
20
+ *
21
+ * Bug history this guards against:
22
+ * - 2026-05: marketplace publish 401 "Authentication required" because
23
+ * OAuth callback cached only {user, hasApiKey, timestamp} without
24
+ * the JWT, then a page reload triggered the polling fallback which
25
+ * returned the user but no JWT. The FE thought "I'm signed in" but
26
+ * localStorage.loxia-auth-token stayed empty → no Bearer header on
27
+ * marketplace calls → 401.
28
+ */
29
+
30
+ /**
31
+ * Build a cache row for a successful OAuth callback. The JWT is the
32
+ * critical field — without it, the polling fallback can't restore
33
+ * marketplace auth on a refresh.
34
+ *
35
+ * @param {Object} input
36
+ * @param {Object} input.user - User account object
37
+ * @param {string|null} input.jwt - Raw JWT from the OAuth callback
38
+ * @param {boolean} input.hasApiKey
39
+ * @param {string} [input.timestamp] - Override (for tests); defaults to now
40
+ * @returns {Object} cache row
41
+ */
42
+ export function recordOAuthResult({ user, jwt, hasApiKey, timestamp } = {}) {
43
+ return {
44
+ user: user || null,
45
+ hasApiKey: !!hasApiKey,
46
+ jwt: typeof jwt === 'string' && jwt.length > 0 ? jwt : null,
47
+ timestamp: timestamp || new Date().toISOString(),
48
+ };
49
+ }
50
+
51
+ /**
52
+ * Build a cache row when a user is resolved from an API key alone (no
53
+ * OAuth event, so no JWT minted in this flow). PRESERVES any JWT from
54
+ * a previous OAuth login — overwriting `lastAuthResult` with no `jwt`
55
+ * field would silently wipe marketplace auth for users who hit
56
+ * /auth/resolve after /auth/callback.
57
+ *
58
+ * @param {Object} input
59
+ * @param {Object} input.user
60
+ * @param {Object|null} input.prevCache - previous lastAuthResult
61
+ * @param {string} [input.timestamp]
62
+ * @returns {Object} cache row
63
+ */
64
+ export function recordResolvedUser({ user, prevCache, timestamp } = {}) {
65
+ const carriedJwt = prevCache && typeof prevCache.jwt === 'string' && prevCache.jwt.length > 0
66
+ ? prevCache.jwt
67
+ : null;
68
+ return {
69
+ user: user || null,
70
+ hasApiKey: true, // resolve path requires an API key
71
+ jwt: carriedJwt,
72
+ timestamp: timestamp || new Date().toISOString(),
73
+ };
74
+ }
75
+
76
+ /**
77
+ * Project a cache row into the JSON the `/api/auth/status` endpoint
78
+ * returns. Implements two pieces of business logic:
79
+ *
80
+ * 1. Staleness gate via `?since=`: if the caller is polling for an
81
+ * auth event AFTER a known timestamp, but the cache row predates
82
+ * that timestamp, the row is considered "not the auth we're
83
+ * waiting for" and the user is reported as null. Prevents a
84
+ * previously-cached login from masquerading as the in-flight one.
85
+ *
86
+ * 2. JWT only flows out when a fresh user is reported. When `user`
87
+ * is null (no cached row, or stale), `jwt` is also null — the
88
+ * pair is always coherent so the FE never sees user=null with
89
+ * jwt=<something>.
90
+ *
91
+ * @param {Object|null} cache - lastAuthResult value
92
+ * @param {Object} [options]
93
+ * @param {string} [options.since] - ISO timestamp from the caller
94
+ * @param {boolean} [options.hasApiKey] - hasApiKey value at request time
95
+ * (cache.hasApiKey is the value AT CACHE TIME — the live answer comes
96
+ * from the apiKeyManager). The route passes the live one in.
97
+ * @returns {{ success: true, authenticated: boolean, user: Object|null, jwt: string|null, timestamp: string|null }}
98
+ */
99
+ export function projectAuthStatus(cache, options = {}) {
100
+ const since = options.since;
101
+ const liveHasApiKey = options.hasApiKey === undefined ? !!cache?.hasApiKey : !!options.hasApiKey;
102
+
103
+ let user = cache?.user || null;
104
+ if (since && cache?.timestamp) {
105
+ if (new Date(cache.timestamp).getTime() <= new Date(since).getTime()) {
106
+ // Cache predates the login attempt the caller is polling for.
107
+ user = null;
108
+ }
109
+ }
110
+
111
+ // Pair invariant: jwt is null whenever user is null.
112
+ const jwt = user ? (cache?.jwt || null) : null;
113
+
114
+ return {
115
+ success: true,
116
+ authenticated: liveHasApiKey,
117
+ user,
118
+ jwt,
119
+ timestamp: cache?.timestamp || null,
120
+ };
121
+ }
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Shared encryption primitives for at-rest credential storage.
3
+ *
4
+ * Used by:
5
+ * - services/apiKeyManager.js (api-keys.enc)
6
+ * - services/authCacheStore.js (auth-cache.enc)
7
+ *
8
+ * Both stores derive the same machine-specific AES-256-GCM key from a
9
+ * persistent salt at `<userDataDir>/.key-salt` plus os-derived data.
10
+ * Sharing the cipher primitives keeps the byte layout consistent and
11
+ * means a single review covers credential-at-rest for the whole app.
12
+ *
13
+ * On-disk format (per ciphertext, base64-encoded):
14
+ * [ IV (16B) | authTag (16B) | ciphertext (variable) ]
15
+ *
16
+ * KEY_DERIVATION_DOMAIN must stay constant — changing it invalidates
17
+ * every existing `api-keys.enc` on every user's machine.
18
+ */
19
+
20
+ import crypto from 'crypto';
21
+ import os from 'os';
22
+ import path from 'path';
23
+ import { promises as fs } from 'fs';
24
+
25
+ export const ALGORITHM = 'aes-256-gcm';
26
+ export const KEY_LENGTH = 32; // 256 bits
27
+ export const IV_LENGTH = 16;
28
+ export const AUTH_TAG_LENGTH = 16;
29
+ export const SALT_LENGTH = 32;
30
+ export const PBKDF2_ITERATIONS = 100000;
31
+ export const SALT_FILENAME = '.key-salt';
32
+
33
+ /**
34
+ * Domain-separation string mixed into the key derivation input. Must
35
+ * not change without a migration — existing on-disk files would
36
+ * become undecryptable.
37
+ */
38
+ export const KEY_DERIVATION_DOMAIN = 'loxia-api-key-encryption-v1';
39
+
40
+ /**
41
+ * Read or create the per-machine salt and derive the AES key from it
42
+ * combined with stable machine identifiers.
43
+ *
44
+ * @param {string} settingsDir - directory holding `.key-salt`
45
+ * @param {Object} [logger]
46
+ * @returns {Promise<Buffer>} 32-byte AES key
47
+ */
48
+ export async function getOrCreateEncryptionKey(settingsDir, logger) {
49
+ const saltFile = path.join(settingsDir, SALT_FILENAME);
50
+ let salt;
51
+ try {
52
+ salt = await fs.readFile(saltFile);
53
+ } catch {
54
+ salt = crypto.randomBytes(SALT_LENGTH);
55
+ await fs.writeFile(saltFile, salt, { mode: 0o600 });
56
+ logger?.info?.('[secretsCipher] Generated new encryption salt');
57
+ }
58
+
59
+ const machineData = [
60
+ os.hostname(),
61
+ os.homedir(),
62
+ os.userInfo().username,
63
+ process.platform,
64
+ KEY_DERIVATION_DOMAIN,
65
+ ].join(':');
66
+
67
+ return crypto.pbkdf2Sync(machineData, salt, PBKDF2_ITERATIONS, KEY_LENGTH, 'sha256');
68
+ }
69
+
70
+ /**
71
+ * Encrypt a UTF-8 plaintext to a base64 string carrying IV+authTag.
72
+ *
73
+ * @param {string} plaintext
74
+ * @param {Buffer} encryptionKey
75
+ * @returns {string} base64
76
+ */
77
+ export function encrypt(plaintext, encryptionKey) {
78
+ if (!encryptionKey) throw new Error('Encryption key not initialized');
79
+
80
+ const iv = crypto.randomBytes(IV_LENGTH);
81
+ const cipher = crypto.createCipheriv(ALGORITHM, encryptionKey, iv);
82
+
83
+ let encrypted = cipher.update(plaintext, 'utf8', 'base64');
84
+ encrypted += cipher.final('base64');
85
+
86
+ const authTag = cipher.getAuthTag();
87
+ const combined = Buffer.concat([
88
+ iv,
89
+ authTag,
90
+ Buffer.from(encrypted, 'base64'),
91
+ ]);
92
+ return combined.toString('base64');
93
+ }
94
+
95
+ /**
96
+ * Decrypt a base64 IV+authTag+ciphertext blob back to UTF-8.
97
+ *
98
+ * @param {string} encryptedData base64
99
+ * @param {Buffer} encryptionKey
100
+ * @returns {string} plaintext
101
+ */
102
+ export function decrypt(encryptedData, encryptionKey) {
103
+ if (!encryptionKey) throw new Error('Encryption key not initialized');
104
+
105
+ const combined = Buffer.from(encryptedData, 'base64');
106
+ const iv = combined.subarray(0, IV_LENGTH);
107
+ const authTag = combined.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
108
+ const encrypted = combined.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
109
+
110
+ const decipher = crypto.createDecipheriv(ALGORITHM, encryptionKey, iv);
111
+ decipher.setAuthTag(authTag);
112
+
113
+ let decrypted = decipher.update(encrypted.toString('base64'), 'base64', 'utf8');
114
+ decrypted += decipher.final('utf8');
115
+ return decrypted;
116
+ }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * npm CLI update notifier — thin wrapper around `update-notifier`.
3
+ *
4
+ * Shows a non-blocking banner on CLI startup when a newer version of
5
+ * the published package is available on the npm registry. User stays
6
+ * in control: the CLI never auto-installs anything.
7
+ *
8
+ * Brand awareness:
9
+ * The CLI ships under two brand-specific package names
10
+ * (`@loxia-labs/loxia-autopilot-one`, `@loxia-labs/loxia-onbuzz`).
11
+ * `update-notifier` reads the package name from the runtime
12
+ * package.json so each brand's notifier checks the right registry
13
+ * entry automatically.
14
+ *
15
+ * Kill-switch:
16
+ * - LOXIA_DISABLE_UPDATE_CHECK=1 — our env var (preferred)
17
+ * - NO_UPDATE_NOTIFIER=1 — package's own opt-out
18
+ * - CI=true — most CIs set this; we honour it
19
+ *
20
+ * Dependency tolerance:
21
+ * `update-notifier` is dynamically imported. If the package isn't
22
+ * installed (e.g. dev tree without `npm install`), the function is
23
+ * a silent no-op — the CLI MUST still boot.
24
+ *
25
+ * Network tolerance:
26
+ * The check is a background fetch with cached result. We never await
27
+ * the network — `update-notifier` schedules a child-process fetch
28
+ * and writes the result to ~/.config/configstore for the NEXT run.
29
+ * That means: the FIRST time a user is offline, no banner. Subsequent
30
+ * runs use the cached version-comparison until the next check window.
31
+ */
32
+
33
+ import { readFileSync } from 'fs';
34
+ import { dirname, join } from 'path';
35
+ import { fileURLToPath } from 'url';
36
+
37
+ /**
38
+ * Env vars that disable the check. All are case-sensitive string
39
+ * comparisons against `'1'` / `'true'` to match common conventions.
40
+ */
41
+ const DISABLE_ENVS = Object.freeze([
42
+ 'LOXIA_DISABLE_UPDATE_CHECK',
43
+ 'NO_UPDATE_NOTIFIER',
44
+ 'CI', // standard CI marker
45
+ ]);
46
+
47
+ /** How often update-notifier should re-check the npm registry. */
48
+ const UPDATE_CHECK_INTERVAL_MS = 1000 * 60 * 60 * 24; // 24h
49
+
50
+ /**
51
+ * @returns {boolean} true if any kill-switch env is set truthy.
52
+ */
53
+ export function isUpdateCheckDisabled(env = process.env) {
54
+ for (const key of DISABLE_ENVS) {
55
+ const v = env[key];
56
+ if (v && v !== '0' && v.toLowerCase() !== 'false') return true;
57
+ }
58
+ return false;
59
+ }
60
+
61
+ /**
62
+ * Load the package.json this CLI is running from (the installed one,
63
+ * not the one in src/utilities of a dev tree). Returned object always
64
+ * has at least `name` and `version`.
65
+ *
66
+ * @returns {{ name: string, version: string } | null}
67
+ */
68
+ export function loadPackageJson({
69
+ startDir = dirname(fileURLToPath(import.meta.url)),
70
+ fs = { readFileSync },
71
+ } = {}) {
72
+ // Walk up from this file looking for package.json with a `bin`
73
+ // entry — that's the published CLI package, not a nested dep.
74
+ let dir = startDir;
75
+ const ROOT_LIMIT = 8;
76
+ for (let i = 0; i < ROOT_LIMIT; i++) {
77
+ try {
78
+ const raw = fs.readFileSync(join(dir, 'package.json'), 'utf8');
79
+ const pkg = JSON.parse(raw);
80
+ if (pkg.bin || pkg.name?.startsWith('@loxia-labs/')) {
81
+ return { name: pkg.name, version: pkg.version };
82
+ }
83
+ } catch { /* keep walking */ }
84
+ const parent = dirname(dir);
85
+ if (parent === dir) break;
86
+ dir = parent;
87
+ }
88
+ return null;
89
+ }
90
+
91
+ /**
92
+ * Run the update check and (if a newer version is on the registry)
93
+ * print a banner. Never throws. Never blocks. Safe to call exactly
94
+ * once at CLI entry.
95
+ *
96
+ * Returns the underlying notifier instance for tests, or null when
97
+ * disabled / package missing / pkg.json unreadable.
98
+ */
99
+ export async function runUpdateCheck({
100
+ env = process.env,
101
+ pkg = loadPackageJson(),
102
+ importImpl = (specifier) => import(specifier),
103
+ logger = console,
104
+ } = {}) {
105
+ if (isUpdateCheckDisabled(env)) return null;
106
+ if (!pkg) return null;
107
+
108
+ let mod;
109
+ try {
110
+ mod = await importImpl('update-notifier');
111
+ } catch {
112
+ // Package not installed in this tree. Silent no-op.
113
+ return null;
114
+ }
115
+
116
+ const updateNotifier = mod.default || mod;
117
+ if (typeof updateNotifier !== 'function') return null;
118
+
119
+ try {
120
+ const notifier = updateNotifier({
121
+ pkg,
122
+ updateCheckInterval: UPDATE_CHECK_INTERVAL_MS,
123
+ shouldNotifyInNpmScript: false,
124
+ });
125
+ // notify() is itself a no-op when there's no update; safe to call
126
+ // unconditionally.
127
+ notifier.notify?.({
128
+ defer: false, // print before the CLI does its work
129
+ isGlobal: true, // CLI ships as a global binary
130
+ message:
131
+ `Update available {currentVersion} → {latestVersion}\n` +
132
+ `Run \`npm i -g {packageName}\` to update.`,
133
+ });
134
+ return notifier;
135
+ } catch (err) {
136
+ // Any failure (network, configstore write, etc.) is non-fatal.
137
+ logger?.debug?.('[updateNotifier] check skipped:', err.message);
138
+ return null;
139
+ }
140
+ }
@@ -6,8 +6,8 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Loxia Autopilot One</title>
8
8
  <meta name="description" content="AI Agents System - No-code/vibe-code/companion-coder platform" />
9
- <script type="module" crossorigin src="/static/index-CLelJq9j.js"></script>
10
- <link rel="stylesheet" crossorigin href="/static/index-f5UnFSsY.css">
9
+ <script type="module" crossorigin src="/static/index-Be9WvMkI.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/static/index-Cr9q1fNq.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
@@ -0,0 +1 @@
1
+ import{g as f}from"./index-Be9WvMkI.js";import{r as s}from"./index-CuZ_erP9.js";function i(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const c=Object.getOwnPropertyDescriptor(e,r);c&&Object.defineProperty(t,r,c.get?c:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var a=s();const p=f(a),l=i({__proto__:null,default:p},[a]);export{l as _};
@@ -0,0 +1 @@
1
+ import{g as s,r as f}from"./index-Be9WvMkI.js";function c(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var p=f();const i=s(p),b=c({__proto__:null,default:i},[p]);export{b as a};
@@ -0,0 +1 @@
1
+ import{g as s}from"./index-Be9WvMkI.js";import{a as i}from"./index-CuZ_erP9.js";function c(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=i();const p=s(f),g=c({__proto__:null,default:p},[f]);export{g as a};
@@ -0,0 +1 @@
1
+ import{g as s,d as c}from"./index-Be9WvMkI.js";function i(t,a){for(var o=0;o<a.length;o++){const e=a[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const n=Object.getOwnPropertyDescriptor(e,r);n&&Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=c();const p=s(f),b=i({__proto__:null,default:p},[f]);export{b as a};
@@ -0,0 +1 @@
1
+ import{g as n}from"./index-Be9WvMkI.js";import{b as f}from"./index-CuZ_erP9.js";function g(t,c){for(var o=0;o<c.length;o++){const e=c[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const s=Object.getOwnPropertyDescriptor(e,r);s&&Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var a=f();const l=n(a),u=g({__proto__:null,default:l},[a]);export{u as a};
@@ -0,0 +1 @@
1
+ import{g as a,e as s}from"./index-Be9WvMkI.js";function p(r,i){for(var o=0;o<i.length;o++){const t=i[o];if(typeof t!="string"&&!Array.isArray(t)){for(const e in t)if(e!=="default"&&!(e in r)){const c=Object.getOwnPropertyDescriptor(t,e);c&&Object.defineProperty(r,e,c.get?c:{enumerable:!0,get:()=>t[e]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var n=s();const f=a(n),g=p({__proto__:null,default:f},[n]);export{g as a};
@@ -0,0 +1 @@
1
+ import{g as a}from"./index-Be9WvMkI.js";import{c as s}from"./index-CuZ_erP9.js";function p(r,i){for(var o=0;o<i.length;o++){const t=i[o];if(typeof t!="string"&&!Array.isArray(t)){for(const e in t)if(e!=="default"&&!(e in r)){const c=Object.getOwnPropertyDescriptor(t,e);c&&Object.defineProperty(r,e,c.get?c:{enumerable:!0,get:()=>t[e]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var n=s();const f=a(n),l=p({__proto__:null,default:f},[n]);export{l as a};
@@ -0,0 +1 @@
1
+ import{g as s,f as c}from"./index-Be9WvMkI.js";function i(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=c();const p=s(f),d=i({__proto__:null,default:p},[f]);export{d as a};
@@ -0,0 +1 @@
1
+ import{g as s}from"./index-Be9WvMkI.js";import{d as i}from"./index-CuZ_erP9.js";function c(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var f=i();const p=s(f),g=c({__proto__:null,default:p},[f]);export{g as a};
@@ -0,0 +1 @@
1
+ import{g as f,h as g}from"./index-Be9WvMkI.js";function c(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=g();const i=f(s),u=c({__proto__:null,default:i},[s]);export{u as a};
@@ -0,0 +1 @@
1
+ import{g as f,k as l}from"./index-Be9WvMkI.js";function c(t,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(e,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=l();const i=f(s),u=c({__proto__:null,default:i},[s]);export{u as a};
@@ -0,0 +1 @@
1
+ import{g as i}from"./index-Be9WvMkI.js";import{e as c}from"./index-CuZ_erP9.js";function p(t,a){for(var o=0;o<a.length;o++){const e=a[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const n=Object.getOwnPropertyDescriptor(e,r);n&&Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var s=c();const f=i(s),u=p({__proto__:null,default:f},[s]);export{u as a};
@@ -0,0 +1 @@
1
+ import{g as s,l as f}from"./index-Be9WvMkI.js";function c(t,a){for(var o=0;o<a.length;o++){const e=a[o];if(typeof e!="string"&&!Array.isArray(e)){for(const r in e)if(r!=="default"&&!(r in t)){const n=Object.getOwnPropertyDescriptor(e,r);n&&Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var l=f();const i=s(l),u=c({__proto__:null,default:i},[l]);export{u as a};