onbuzz 4.2.0 → 4.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.
- package/package.json +1 -1
- package/src/core/__tests__/agentScheduler.visualizer.test.js +258 -0
- package/src/core/__tests__/orchestrator.test.js +22 -6
- package/src/core/agentScheduler.js +7 -1
- package/src/core/orchestrator.js +13 -6
- package/src/index.js +8 -0
- package/src/interfaces/__tests__/galleryRoutes.test.js +158 -250
- package/src/interfaces/__tests__/schedulerRoutes.test.js +176 -0
- package/src/interfaces/__tests__/videoJobsRoutes.test.js +179 -0
- package/src/interfaces/schedulerRoutes.js +50 -0
- package/src/interfaces/webServer.js +235 -111
- package/src/modules/widget/__tests__/acceptance.test.js +267 -0
- package/src/modules/widget/__tests__/codeAnalyzer.test.js +340 -0
- package/src/modules/widget/__tests__/eventBus.test.js +169 -0
- package/src/modules/widget/__tests__/galleryActions.test.js +290 -0
- package/src/modules/widget/__tests__/galleryStore.test.js +269 -0
- package/src/modules/widget/__tests__/isDisabled.test.js +41 -0
- package/src/modules/widget/__tests__/phishingScanner.test.js +75 -0
- package/src/modules/widget/__tests__/routes.test.js +678 -0
- package/src/modules/widget/__tests__/runtime.test.js +401 -0
- package/src/modules/widget/__tests__/schema.test.js +155 -0
- package/src/modules/widget/__tests__/upgrade.test.js +257 -0
- package/src/modules/widget/__tests__/versioning.test.js +309 -0
- package/src/modules/widget/__tests__/webComponentRuntime.test.js +565 -0
- package/src/modules/widget/__tests__/widgetTool.test.js +316 -0
- package/src/modules/widget/codeAnalyzer.js +351 -0
- package/src/modules/widget/galleryStore.js +324 -0
- package/src/modules/widget/index.js +38 -0
- package/src/modules/widget/phishingScanner.js +47 -0
- package/src/modules/widget/routes.js +414 -0
- package/src/modules/widget/runtime/bundle.js +640 -0
- package/src/modules/widget/runtime/webComponentBundle.js +470 -0
- package/src/modules/widget/schema.js +133 -0
- package/src/modules/widget/widgetTool.js +1336 -0
- package/src/services/__tests__/aiService.stream.test.js +5 -1
- package/src/services/__tests__/channelFilter.test.js +4 -2
- package/src/services/__tests__/channelRelay.integration.test.js +1 -1
- package/src/services/__tests__/galleryService.test.js +225 -0
- package/src/services/__tests__/toolCallBridgeContract.test.js +3 -5
- package/src/services/galleryService.js +257 -0
- package/src/tools/__tests__/imageTool.sizeValidation.test.js +134 -0
- package/src/tools/__tests__/imageTool.validator.test.js +194 -0
- package/src/tools/__tests__/videoTool.jobs.test.js +147 -0
- package/src/tools/imageTool.js +282 -44
- package/src/tools/taskManagerTool.js +13 -2
- package/src/tools/videoTool.js +126 -0
- package/src/utilities/__tests__/logger.safeStringify.test.js +124 -0
- package/src/utilities/logger.js +51 -7
- package/src/utilities/userDataDir.js +3 -0
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/1c-DhNfWMWm.js +1 -0
- package/web-ui/build/static/abap-QOWHgSNA.js +1 -0
- package/web-ui/build/static/abnf-C9PFiETQ.js +1 -0
- package/web-ui/build/static/abnf-DEbBdEpP.js +1 -0
- package/web-ui/build/static/accesslog-DaKq5_Ts.js +1 -0
- package/web-ui/build/static/actionscript-BcY19SjW.js +1 -0
- package/web-ui/build/static/actionscript-CbLJrkm9.js +1 -0
- package/web-ui/build/static/ada-D1vjmumu.js +1 -0
- package/web-ui/build/static/ada-hAjtW1jL.js +1 -0
- package/web-ui/build/static/agda-Bhk3JFT9.js +1 -0
- package/web-ui/build/static/al-DYmeq5B0.js +1 -0
- package/web-ui/build/static/angelscript-BxCBNQXZ.js +1 -0
- package/web-ui/build/static/antlr4-CPmkdILF.js +1 -0
- package/web-ui/build/static/apache-CnwL2ZvW.js +1 -0
- package/web-ui/build/static/apacheconf-CfeBIh7R.js +1 -0
- package/web-ui/build/static/apex-C36kXZsT.js +1 -0
- package/web-ui/build/static/apl-CeT_l0YX.js +1 -0
- package/web-ui/build/static/applescript-BimsduDW.js +1 -0
- package/web-ui/build/static/applescript-CLBFEONC.js +1 -0
- package/web-ui/build/static/aql-DcXNMsw5.js +1 -0
- package/web-ui/build/static/arcade-CsONs-nh.js +1 -0
- package/web-ui/build/static/arduino-1XAf972o.js +1 -0
- package/web-ui/build/static/arduino-BkRulzgv.js +1 -0
- package/web-ui/build/static/arff-QhmkBHXy.js +1 -0
- package/web-ui/build/static/armasm-Cf34TCbg.js +1 -0
- package/web-ui/build/static/asciidoc-Dxk-KUUW.js +1 -0
- package/web-ui/build/static/asciidoc-mpuuiNok.js +1 -0
- package/web-ui/build/static/asm6502-0M2Se3gz.js +1 -0
- package/web-ui/build/static/asmatmel-DhFK-DLd.js +1 -0
- package/web-ui/build/static/aspectj-BKNOwBC8.js +1 -0
- package/web-ui/build/static/aspnet-BZ88RTxR.js +1 -0
- package/web-ui/build/static/autohotkey-DGmMm6oy.js +1 -0
- package/web-ui/build/static/autohotkey-HUDPuon_.js +1 -0
- package/web-ui/build/static/autoit-B-YW8YdA.js +1 -0
- package/web-ui/build/static/autoit-CvHRbbE-.js +1 -0
- package/web-ui/build/static/avisynth-C6iP20gR.js +1 -0
- package/web-ui/build/static/avrasm-AOIVGwnb.js +1 -0
- package/web-ui/build/static/avro-idl-CcPf6wBK.js +1 -0
- package/web-ui/build/static/awk-Dy8_cKla.js +1 -0
- package/web-ui/build/static/axapta-CexCCXgI.js +1 -0
- package/web-ui/build/static/bash-DKgFZb-B.js +1 -0
- package/web-ui/build/static/bash-DrUQRf4E.js +1 -0
- package/web-ui/build/static/basic-BXDUD6us.js +1 -0
- package/web-ui/build/static/basic-DlEL_-PG.js +1 -0
- package/web-ui/build/static/batch-HHuRbek7.js +1 -0
- package/web-ui/build/static/bbcode-D4lEyfHq.js +1 -0
- package/web-ui/build/static/bicep-Ca66VjcC.js +1 -0
- package/web-ui/build/static/birb-BWDnQG3-.js +1 -0
- package/web-ui/build/static/bison-DGEvuoCn.js +1 -0
- package/web-ui/build/static/bnf-DNrgnFxK.js +1 -0
- package/web-ui/build/static/bnf-DkGg9a6f.js +1 -0
- package/web-ui/build/static/brainfuck-BcC5WVuw.js +1 -0
- package/web-ui/build/static/brainfuck-Dzx6V6EF.js +1 -0
- package/web-ui/build/static/brightscript-26Asmy4_.js +1 -0
- package/web-ui/build/static/bro-CFV9ava2.js +1 -0
- package/web-ui/build/static/bsl-BHMAYVVg.js +1 -0
- package/web-ui/build/static/c-B7WGfC_g.js +1 -0
- package/web-ui/build/static/c-CUYmQ5h3.js +1 -0
- package/web-ui/build/static/c-like-BSddZquS.js +1 -0
- package/web-ui/build/static/cal-DQjwjuMG.js +1 -0
- package/web-ui/build/static/capnproto-CBnYJDMr.js +1 -0
- package/web-ui/build/static/ceylon-ce3L4vqX.js +1 -0
- package/web-ui/build/static/cfscript-CN8IKzxH.js +1 -0
- package/web-ui/build/static/chaiscript-DT-qasen.js +1 -0
- package/web-ui/build/static/cil-BPu0-6KT.js +1 -0
- package/web-ui/build/static/clean-BWcUgtLl.js +1 -0
- package/web-ui/build/static/clojure-CVLbUcEn.js +1 -0
- package/web-ui/build/static/clojure-mVJcgmKZ.js +1 -0
- package/web-ui/build/static/clojure-repl-B1bPQUgE.js +1 -0
- package/web-ui/build/static/cmake-ApAYr4_A.js +1 -0
- package/web-ui/build/static/cmake-oI81UP1F.js +1 -0
- package/web-ui/build/static/cobol-eZdxawKH.js +1 -0
- package/web-ui/build/static/coffeescript-BvFq14Nz.js +1 -0
- package/web-ui/build/static/coffeescript-CedrhcbC.js +1 -0
- package/web-ui/build/static/concurnas-8QctO6Q7.js +1 -0
- package/web-ui/build/static/coq-CaQMtKys.js +1 -0
- package/web-ui/build/static/coq-Di7lBRJy.js +1 -0
- package/web-ui/build/static/cos-3TjiDgk1.js +1 -0
- package/web-ui/build/static/cpp-BGwIhR_y.js +1 -0
- package/web-ui/build/static/cpp-CRXTx1YD.js +1 -0
- package/web-ui/build/static/crmsh-C67REd2u.js +1 -0
- package/web-ui/build/static/crystal-C8Rs5smk.js +1 -0
- package/web-ui/build/static/crystal-C8jnpN4t.js +1 -0
- package/web-ui/build/static/csharp-CqlFLWOu.js +1 -0
- package/web-ui/build/static/csharp-D1M9LcKj.js +1 -0
- package/web-ui/build/static/cshtml-BrYce3m1.js +1 -0
- package/web-ui/build/static/csp-DaMDae_q.js +1 -0
- package/web-ui/build/static/csp-DmoB74Pq.js +1 -0
- package/web-ui/build/static/css-Bm-MgPWM.js +1 -0
- package/web-ui/build/static/css-extras-T3f2IfaH.js +1 -0
- package/web-ui/build/static/csv-BgIvUIgl.js +1 -0
- package/web-ui/build/static/cypher-Bsq4PGhM.js +1 -0
- package/web-ui/build/static/d-Qt9QuUvk.js +1 -0
- package/web-ui/build/static/d-h4AYkhsS.js +1 -0
- package/web-ui/build/static/dart-DNDTBaSF.js +1 -0
- package/web-ui/build/static/dart-Dkg8Mtqj.js +1 -0
- package/web-ui/build/static/dataweave-XNvXnB4j.js +1 -0
- package/web-ui/build/static/dax-DAM3HOsu.js +1 -0
- package/web-ui/build/static/delphi-DTzj2E4U.js +1 -0
- package/web-ui/build/static/dhall-Brb1ufqF.js +1 -0
- package/web-ui/build/static/diff-3SMw9VwF.js +1 -0
- package/web-ui/build/static/diff-ssu7Mr2I.js +1 -0
- package/web-ui/build/static/django-CK_xvPUY.js +1 -0
- package/web-ui/build/static/django-D9a4uL_8.js +1 -0
- package/web-ui/build/static/dns-Uvea7PR7.js +1 -0
- package/web-ui/build/static/dns-zone-file-BvD_LLn3.js +1 -0
- package/web-ui/build/static/docker-CC3kvxlv.js +1 -0
- package/web-ui/build/static/dockerfile-BRFh_Hdm.js +1 -0
- package/web-ui/build/static/dos-C-I0-qWQ.js +1 -0
- package/web-ui/build/static/dot-BmS_Nrtr.js +1 -0
- package/web-ui/build/static/dsconfig-CBWgrIVa.js +1 -0
- package/web-ui/build/static/dts-B31mUIV6.js +1 -0
- package/web-ui/build/static/dust-BBtJv286.js +1 -0
- package/web-ui/build/static/ebnf-CCA0ITCE.js +1 -0
- package/web-ui/build/static/ebnf-CeVJpQny.js +1 -0
- package/web-ui/build/static/editorconfig-Nhj95Qci.js +1 -0
- package/web-ui/build/static/eiffel-E7QJBlEz.js +1 -0
- package/web-ui/build/static/ejs-B9gYRoXo.js +1 -0
- package/web-ui/build/static/elixir-CYG1GGGp.js +1 -0
- package/web-ui/build/static/elixir-fNfEypj7.js +1 -0
- package/web-ui/build/static/elm-Td6N7vMU.js +1 -0
- package/web-ui/build/static/elm-v0-mxxuQ.js +1 -0
- package/web-ui/build/static/erb-BO3LQtQx.js +1 -0
- package/web-ui/build/static/erb-ez_pDLEC.js +1 -0
- package/web-ui/build/static/erlang-ChOZ-mbI.js +1 -0
- package/web-ui/build/static/erlang-DCBIueE-.js +1 -0
- package/web-ui/build/static/erlang-repl-CL0-sGxn.js +1 -0
- package/web-ui/build/static/etlua-CQdh26X0.js +1 -0
- package/web-ui/build/static/excel-BbAj2wuJ.js +1 -0
- package/web-ui/build/static/excel-formula-qBXUIcjs.js +1 -0
- package/web-ui/build/static/factor-BPO68YSz.js +1 -0
- package/web-ui/build/static/false-sZ2iLGj-.js +1 -0
- package/web-ui/build/static/firestore-security-rules-BmYLiQGh.js +1 -0
- package/web-ui/build/static/fix-Co_Dnq0A.js +1 -0
- package/web-ui/build/static/flix-DlEWTbVq.js +1 -0
- package/web-ui/build/static/flow-DnsnnZca.js +1 -0
- package/web-ui/build/static/fortran-B4OMllck.js +1 -0
- package/web-ui/build/static/fortran-_8ltaoLA.js +1 -0
- package/web-ui/build/static/fsharp-CY0Ix1iB.js +1 -0
- package/web-ui/build/static/fsharp-y6HOJqAr.js +1 -0
- package/web-ui/build/static/ftl-DvbP9VWU.js +1 -0
- package/web-ui/build/static/gams-DF3rxJoc.js +1 -0
- package/web-ui/build/static/gap-BSje56C-.js +1 -0
- package/web-ui/build/static/gauss-BqYXtLWM.js +1 -0
- package/web-ui/build/static/gcode-CBl-mAWK.js +1 -0
- package/web-ui/build/static/gcode-idSM0RsM.js +1 -0
- package/web-ui/build/static/gdscript-CniY3oYY.js +1 -0
- package/web-ui/build/static/gedcom-C1dJ3jCP.js +1 -0
- package/web-ui/build/static/gherkin-4jaQr3Lt.js +1 -0
- package/web-ui/build/static/gherkin-BRsS35Ed.js +1 -0
- package/web-ui/build/static/git-2a7wzptj.js +1 -0
- package/web-ui/build/static/glsl-Ckv4lBKB.js +1 -0
- package/web-ui/build/static/glsl-CnGjBp6a.js +1 -0
- package/web-ui/build/static/gml-DG3KVI4z.js +1 -0
- package/web-ui/build/static/gml-DxKOOp--.js +1 -0
- package/web-ui/build/static/gn-DmUPMuZR.js +1 -0
- package/web-ui/build/static/go-D8tYdcYa.js +1 -0
- package/web-ui/build/static/go-DpIavxCs.js +1 -0
- package/web-ui/build/static/go-module-BktUPko9.js +1 -0
- package/web-ui/build/static/golo-Ao-diOpI.js +1 -0
- package/web-ui/build/static/gradle-DHJSdPoJ.js +1 -0
- package/web-ui/build/static/graphql-HpsdbKFp.js +1 -0
- package/web-ui/build/static/groovy-B4BrZYtV.js +1 -0
- package/web-ui/build/static/groovy-BCIRzoWJ.js +1 -0
- package/web-ui/build/static/haml-B8Mj6Hex.js +1 -0
- package/web-ui/build/static/haml-Fo-yynuy.js +1 -0
- package/web-ui/build/static/handlebars-BnFawcCU.js +1 -0
- package/web-ui/build/static/handlebars-YZn3MEyv.js +1 -0
- package/web-ui/build/static/haskell-DutAI7D9.js +1 -0
- package/web-ui/build/static/haskell-Dvl0Yw7z.js +1 -0
- package/web-ui/build/static/haxe-6S205Iem.js +1 -0
- package/web-ui/build/static/haxe-aKgbIDi5.js +1 -0
- package/web-ui/build/static/hcl-Dt_vNekv.js +1 -0
- package/web-ui/build/static/hlsl-CupXb_iv.js +1 -0
- package/web-ui/build/static/hoon-Dg19YEzw.js +1 -0
- package/web-ui/build/static/hpkp-DCF8Ff3o.js +1 -0
- package/web-ui/build/static/hsp-D90yiizY.js +1 -0
- package/web-ui/build/static/hsts-Cf63XX0s.js +1 -0
- package/web-ui/build/static/htmlbars-DMbRiSo_.js +1 -0
- package/web-ui/build/static/http-DklRfzP4.js +1 -0
- package/web-ui/build/static/http-U94aUtJB.js +1 -0
- package/web-ui/build/static/hy-B2ESVqxB.js +1 -0
- package/web-ui/build/static/ichigojam-DrVZWL_q.js +1 -0
- package/web-ui/build/static/icon-CMA5sxLF.js +1 -0
- package/web-ui/build/static/icu-message-format-DyfbEZSi.js +1 -0
- package/web-ui/build/static/idris-lCmRODnZ.js +1 -0
- package/web-ui/build/static/iecst-CgrrW0EE.js +1 -0
- package/web-ui/build/static/ignore-BmZ03AWS.js +1 -0
- package/web-ui/build/static/index-CLLrOcOY.js +1 -0
- package/web-ui/build/static/index-Ck0Dg4M1.js +13 -0
- package/web-ui/build/static/index-DOAQiM34.css +1 -0
- package/web-ui/build/static/index-DjtEf-qv.js +1029 -0
- package/web-ui/build/static/inform7-BfOnAvVe.js +1 -0
- package/web-ui/build/static/inform7-JJIIMXTB.js +1 -0
- package/web-ui/build/static/ini-CIKxMbKN.js +1 -0
- package/web-ui/build/static/ini-T3DdG5H-.js +1 -0
- package/web-ui/build/static/io-K9Gdeq6M.js +1 -0
- package/web-ui/build/static/irpf90-BYsCcwwg.js +1 -0
- package/web-ui/build/static/isbl-jcjEwPPP.js +1 -0
- package/web-ui/build/static/j-DSNUhn5G.js +1 -0
- package/web-ui/build/static/java-BKwYwPEk.js +1 -0
- package/web-ui/build/static/java-DuZuc1lQ.js +1 -0
- package/web-ui/build/static/javadoc-Bd8CYqmj.js +1 -0
- package/web-ui/build/static/javadoclike-BcPQURih.js +1 -0
- package/web-ui/build/static/javascript-C7B2Ty3f.js +1 -0
- package/web-ui/build/static/javastacktrace-BRZBpTgb.js +1 -0
- package/web-ui/build/static/jboss-cli-DaXYYeAA.js +1 -0
- package/web-ui/build/static/jexl-oN152m0J.js +1 -0
- package/web-ui/build/static/jolie-BUWtG9eQ.js +1 -0
- package/web-ui/build/static/jq-ooTdhdbC.js +1 -0
- package/web-ui/build/static/js-extras-BQJ_tqbC.js +1 -0
- package/web-ui/build/static/js-templates-xygrVmsG.js +1 -0
- package/web-ui/build/static/jsdoc-BPMuWUGw.js +1 -0
- package/web-ui/build/static/json-DbssHgO1.js +1 -0
- package/web-ui/build/static/json-iOY4SV10.js +1 -0
- package/web-ui/build/static/json5-C_-PZnKE.js +1 -0
- package/web-ui/build/static/jsonp-BQakabW1.js +1 -0
- package/web-ui/build/static/jsstacktrace-DyDuNLl8.js +1 -0
- package/web-ui/build/static/jsx-DCQITdOi.js +1 -0
- package/web-ui/build/static/julia-BF0mftpu.js +1 -0
- package/web-ui/build/static/julia-TT2Hy-Ob.js +1 -0
- package/web-ui/build/static/julia-repl-UBoVaQSD.js +1 -0
- package/web-ui/build/static/keepalived-yNkg9KNG.js +1 -0
- package/web-ui/build/static/keyman-7ModFC-k.js +1 -0
- package/web-ui/build/static/kotlin-BjJgl7UF.js +1 -0
- package/web-ui/build/static/kotlin-GEW2sNY3.js +1 -0
- package/web-ui/build/static/kumir-CeWMdLSX.js +1 -0
- package/web-ui/build/static/kusto-NufgjlVz.js +1 -0
- package/web-ui/build/static/lasso-eUS0tR3e.js +1 -0
- package/web-ui/build/static/latex-C7prlA6j.js +1 -0
- package/web-ui/build/static/latex-Hx35xemv.js +1 -0
- package/web-ui/build/static/latte-Da8RAWgh.js +1 -0
- package/web-ui/build/static/ldif-DZVoiKm3.js +1 -0
- package/web-ui/build/static/leaf-OEtu9dZj.js +1 -0
- package/web-ui/build/static/less-0VwiOSeL.js +1 -0
- package/web-ui/build/static/less-CciyvbHx.js +1 -0
- package/web-ui/build/static/lilypond-blLDi6bC.js +1 -0
- package/web-ui/build/static/liquid-C8_7pWOo.js +1 -0
- package/web-ui/build/static/lisp-Dd28CPVg.js +1 -0
- package/web-ui/build/static/lisp-hWkYuWd0.js +1 -0
- package/web-ui/build/static/livecodeserver-7_v3dVy3.js +1 -0
- package/web-ui/build/static/livescript-B8YdZ4uV.js +1 -0
- package/web-ui/build/static/livescript-dLNrctPK.js +1 -0
- package/web-ui/build/static/llvm-BfTyXy_G.js +1 -0
- package/web-ui/build/static/llvm-CLvUvWLu.js +1 -0
- package/web-ui/build/static/log-DbsxiU9k.js +1 -0
- package/web-ui/build/static/lolcode-CfacgPRH.js +1 -0
- package/web-ui/build/static/lsl-nJWe_8hA.js +1 -0
- package/web-ui/build/static/lua-BzXX-n4X.js +1 -0
- package/web-ui/build/static/lua-Ds6K-rhW.js +1 -0
- package/web-ui/build/static/magma-U4RmSh9f.js +1 -0
- package/web-ui/build/static/makefile-CSCW5rGm.js +1 -0
- package/web-ui/build/static/makefile-kzE_oEn3.js +1 -0
- package/web-ui/build/static/markdown-CalHH_DC.js +1 -0
- package/web-ui/build/static/markdown-Cqr_u0Ad.js +1 -0
- package/web-ui/build/static/markup-templating-BTOI73DQ.js +1 -0
- package/web-ui/build/static/mathematica-NX1KG9I0.js +1 -0
- package/web-ui/build/static/matlab-BAn1HwNV.js +1 -0
- package/web-ui/build/static/matlab-Bdg2LWPm.js +1 -0
- package/web-ui/build/static/maxima-DjRYVgK8.js +1 -0
- package/web-ui/build/static/maxscript-xwiWU5-Z.js +1 -0
- package/web-ui/build/static/mel-BgwB0sDS.js +1 -0
- package/web-ui/build/static/mel-CIouMI9e.js +1 -0
- package/web-ui/build/static/mercury-Do8hrPEb.js +1 -0
- package/web-ui/build/static/mermaid-BGEw9Ybx.js +1 -0
- package/web-ui/build/static/mipsasm-BDqQqoDE.js +1 -0
- package/web-ui/build/static/mizar-7lZfUsYd.js +1 -0
- package/web-ui/build/static/mizar-D7O18zEE.js +1 -0
- package/web-ui/build/static/mojolicious-DqmJjzUO.js +1 -0
- package/web-ui/build/static/mongodb-CXRl7RlT.js +1 -0
- package/web-ui/build/static/monkey-DE9L51qk.js +1 -0
- package/web-ui/build/static/monkey-DM9WNqkW.js +1 -0
- package/web-ui/build/static/moonscript-D8lRTdQE.js +1 -0
- package/web-ui/build/static/moonscript-DFEVxKjh.js +1 -0
- package/web-ui/build/static/n1ql-B3BB__pa.js +1 -0
- package/web-ui/build/static/n1ql-Br4OECGn.js +1 -0
- package/web-ui/build/static/n4js-BPNwKp4U.js +1 -0
- package/web-ui/build/static/nand2tetris-hdl-BrjXXFUn.js +1 -0
- package/web-ui/build/static/naniscript-COGKQbvR.js +1 -0
- package/web-ui/build/static/nasm-BHOt34Wi.js +1 -0
- package/web-ui/build/static/neon-CYjyYixT.js +1 -0
- package/web-ui/build/static/nevod-CILFZbPW.js +1 -0
- package/web-ui/build/static/nginx-B7B9La6b.js +1 -0
- package/web-ui/build/static/nginx-Dcs1btfu.js +1 -0
- package/web-ui/build/static/nim-B39Qq_sB.js +1 -0
- package/web-ui/build/static/nim-Cm0o-zEI.js +1 -0
- package/web-ui/build/static/nix-Bb4CX-fQ.js +1 -0
- package/web-ui/build/static/nix-C3bIutdy.js +1 -0
- package/web-ui/build/static/node-repl-BtbNtavi.js +1 -0
- package/web-ui/build/static/nsis-CJpMkpQy.js +1 -0
- package/web-ui/build/static/nsis-h39nQk_L.js +1 -0
- package/web-ui/build/static/objectivec-BIV3Kmu2.js +1 -0
- package/web-ui/build/static/objectivec-CNhpMYiK.js +1 -0
- package/web-ui/build/static/ocaml-Ld6KARDY.js +1 -0
- package/web-ui/build/static/ocaml-upCImTLO.js +1 -0
- package/web-ui/build/static/opencl-CfWJp1hT.js +1 -0
- package/web-ui/build/static/openqasm-i8xT4CAo.js +1 -0
- package/web-ui/build/static/openscad-CzWxpIx6.js +1 -0
- package/web-ui/build/static/oxygene-CCokKj_U.js +1 -0
- package/web-ui/build/static/oz-BBdHXCgw.js +1 -0
- package/web-ui/build/static/parigp-C6n5F4KO.js +1 -0
- package/web-ui/build/static/parser-C2RrTYYO.js +1 -0
- package/web-ui/build/static/parser3-BaAVXypg.js +1 -0
- package/web-ui/build/static/pascal-UeXMBbP2.js +1 -0
- package/web-ui/build/static/pascaligo-CYD4ZqHc.js +1 -0
- package/web-ui/build/static/pcaxis-CuN2yCzi.js +1 -0
- package/web-ui/build/static/peoplecode-H1Adh-ll.js +1 -0
- package/web-ui/build/static/perl-DCyTMUn2.js +1 -0
- package/web-ui/build/static/perl-V4mDd6YP.js +1 -0
- package/web-ui/build/static/pf-5iH6Mo1D.js +1 -0
- package/web-ui/build/static/pgsql-CrmNuytU.js +1 -0
- package/web-ui/build/static/php-AWteRwUZ.js +1 -0
- package/web-ui/build/static/php-B-dr82M2.js +1 -0
- package/web-ui/build/static/php-extras-CVQI7yIC.js +1 -0
- package/web-ui/build/static/php-template-BW_DclRa.js +1 -0
- package/web-ui/build/static/phpdoc-Cfv3EM5F.js +1 -0
- package/web-ui/build/static/plaintext-CyfmYRWM.js +1 -0
- package/web-ui/build/static/plsql-DIfiFLDw.js +1 -0
- package/web-ui/build/static/pony-DjBwB1l2.js +1 -0
- package/web-ui/build/static/powerquery-D80luSMu.js +1 -0
- package/web-ui/build/static/powershell-Cai1oPSE.js +1 -0
- package/web-ui/build/static/powershell-qk5MHehm.js +1 -0
- package/web-ui/build/static/processing-DGNtNe05.js +1 -0
- package/web-ui/build/static/processing-DHK3kwAe.js +1 -0
- package/web-ui/build/static/profile-D6MBLt-p.js +1 -0
- package/web-ui/build/static/prolog-CqKHjX9T.js +1 -0
- package/web-ui/build/static/prolog-CwAlj8yp.js +1 -0
- package/web-ui/build/static/promql-Cwo7B1q9.js +1 -0
- package/web-ui/build/static/properties-03DbKSuC.js +1 -0
- package/web-ui/build/static/properties-BlFjiqSF.js +1 -0
- package/web-ui/build/static/protobuf-DFZRRGno.js +1 -0
- package/web-ui/build/static/protobuf-D_GKOSo6.js +1 -0
- package/web-ui/build/static/psl-RSBmgd7b.js +1 -0
- package/web-ui/build/static/pug-DzBjT8h1.js +1 -0
- package/web-ui/build/static/puppet-BwyNySh7.js +1 -0
- package/web-ui/build/static/puppet-CHJRn6Na.js +1 -0
- package/web-ui/build/static/pure-XbBeN0U7.js +1 -0
- package/web-ui/build/static/purebasic-BeRgP1y5.js +1 -0
- package/web-ui/build/static/purebasic-XGD8k1X_.js +1 -0
- package/web-ui/build/static/purescript-DPej8C9k.js +1 -0
- package/web-ui/build/static/python-DK4CPbFS.js +1 -0
- package/web-ui/build/static/python-repl-BDrlZxhA.js +1 -0
- package/web-ui/build/static/python-sRExKvGw.js +1 -0
- package/web-ui/build/static/q-B8K1uEtE.js +1 -0
- package/web-ui/build/static/q-iptUl3TG.js +1 -0
- package/web-ui/build/static/qml-Ck-8E28D.js +1 -0
- package/web-ui/build/static/qml-DapR8Kud.js +1 -0
- package/web-ui/build/static/qore-Bq2u6ALt.js +1 -0
- package/web-ui/build/static/qsharp-C9FGwAhI.js +1 -0
- package/web-ui/build/static/r-B8PZ1lyW.js +1 -0
- package/web-ui/build/static/r-jsXxivRe.js +1 -0
- package/web-ui/build/static/racket-BW1YY6oG.js +1 -0
- package/web-ui/build/static/reason-CGrwEH7Y.js +1 -0
- package/web-ui/build/static/reasonml-D2S9u5tv.js +1 -0
- package/web-ui/build/static/regex-Bx_rkaF-.js +1 -0
- package/web-ui/build/static/rego-DYSQb1aU.js +1 -0
- package/web-ui/build/static/renpy-DoEOEpqT.js +1 -0
- package/web-ui/build/static/rest-6xfrLQ1u.js +1 -0
- package/web-ui/build/static/rib-BH2XAOdJ.js +1 -0
- package/web-ui/build/static/rip-BOcHDByA.js +1 -0
- package/web-ui/build/static/roboconf-8nB4fpob.js +1 -0
- package/web-ui/build/static/roboconf-BjKYzQ_Z.js +1 -0
- package/web-ui/build/static/robotframework-BIAT2wY6.js +1 -0
- package/web-ui/build/static/routeros-Bt6cTmB2.js +1 -0
- package/web-ui/build/static/rsl-XvWWVxz_.js +1 -0
- package/web-ui/build/static/ruby-CEfc9tVA.js +1 -0
- package/web-ui/build/static/ruby-CKNSKxB1.js +1 -0
- package/web-ui/build/static/ruleslanguage-tpn62qMj.js +1 -0
- package/web-ui/build/static/rust-Cb-H3ah6.js +1 -0
- package/web-ui/build/static/rust-CmAiRDXU.js +1 -0
- package/web-ui/build/static/sas-6JRKVKN4.js +1 -0
- package/web-ui/build/static/sas-BnSXGxyB.js +1 -0
- package/web-ui/build/static/sass-RPp8p1Ef.js +1 -0
- package/web-ui/build/static/scala-BjZ--04s.js +1 -0
- package/web-ui/build/static/scala-CbHbqC82.js +1 -0
- package/web-ui/build/static/scheme-51taSudc.js +1 -0
- package/web-ui/build/static/scheme-FF2J1d7z.js +1 -0
- package/web-ui/build/static/scilab-CSU1i7r7.js +1 -0
- package/web-ui/build/static/scss-Bf9-1Rwp.js +1 -0
- package/web-ui/build/static/scss-kWs2GBCV.js +1 -0
- package/web-ui/build/static/shell-B6aH0_VB.js +1 -0
- package/web-ui/build/static/shell-session-42tFBoqK.js +1 -0
- package/web-ui/build/static/smali-BTC2VGoh.js +1 -0
- package/web-ui/build/static/smali-CFCAUthF.js +1 -0
- package/web-ui/build/static/smalltalk-C4Z4p5Ld.js +1 -0
- package/web-ui/build/static/smalltalk-DS9teHSb.js +1 -0
- package/web-ui/build/static/smarty-9tLXgYFw.js +1 -0
- package/web-ui/build/static/sml-CvQCOzHl.js +1 -0
- package/web-ui/build/static/sml-D7VN7gLP.js +1 -0
- package/web-ui/build/static/solidity-C8mgaeFG.js +1 -0
- package/web-ui/build/static/solution-file-BW6eSi9-.js +1 -0
- package/web-ui/build/static/soy-iYu8WojY.js +1 -0
- package/web-ui/build/static/sparql-fr7u_sdF.js +1 -0
- package/web-ui/build/static/splunk-spl-C1ELr7BN.js +1 -0
- package/web-ui/build/static/sqf-8e9uVb30.js +1 -0
- package/web-ui/build/static/sqf-CWavw2F4.js +1 -0
- package/web-ui/build/static/sql-DC_QvrP2.js +1 -0
- package/web-ui/build/static/sql-yLctL19P.js +1 -0
- package/web-ui/build/static/sql_more-KfXMatfe.js +1 -0
- package/web-ui/build/static/squirrel-Bjd69daG.js +1 -0
- package/web-ui/build/static/stan-CaplZnB-.js +1 -0
- package/web-ui/build/static/stan-UYitmAjw.js +1 -0
- package/web-ui/build/static/stata-Beng42ZG.js +1 -0
- package/web-ui/build/static/step21-jqm1hcSr.js +1 -0
- package/web-ui/build/static/stylus-DB7RdP7s.js +1 -0
- package/web-ui/build/static/stylus-IFC9sMcH.js +1 -0
- package/web-ui/build/static/subunit-B75tNAV5.js +1 -0
- package/web-ui/build/static/swift-BRcicKMn.js +1 -0
- package/web-ui/build/static/swift-s8OoLWy_.js +1 -0
- package/web-ui/build/static/systemd-BC7VQvFw.js +1 -0
- package/web-ui/build/static/t4-cs-C6aVcIEq.js +1 -0
- package/web-ui/build/static/t4-templating-cVFAPDZQ.js +1 -0
- package/web-ui/build/static/t4-vb-DwpqTEJL.js +1 -0
- package/web-ui/build/static/taggerscript-GaB8ayWT.js +1 -0
- package/web-ui/build/static/tap-DN_-tQNk.js +1 -0
- package/web-ui/build/static/tap-XgwFSVSK.js +1 -0
- package/web-ui/build/static/tcl-D6eT7YQe.js +1 -0
- package/web-ui/build/static/tcl-DiEmh3pJ.js +1 -0
- package/web-ui/build/static/textile-cNMT-4v2.js +1 -0
- package/web-ui/build/static/thrift-DTgTgcBm.js +1 -0
- package/web-ui/build/static/toml-B8XPB_4B.js +1 -0
- package/web-ui/build/static/tp-NpmS9CLR.js +1 -0
- package/web-ui/build/static/tremor-OVZ172ee.js +1 -0
- package/web-ui/build/static/tsx-B1xtIV1E.js +1 -0
- package/web-ui/build/static/tt2-DITHT_e6.js +1 -0
- package/web-ui/build/static/turtle-D3IrO7qu.js +1 -0
- package/web-ui/build/static/twig-Bwmu1-US.js +1 -0
- package/web-ui/build/static/twig-CmWIdHrv.js +1 -0
- package/web-ui/build/static/typescript-BI4GgjOm.js +1 -0
- package/web-ui/build/static/typescript-D6hycyND.js +1 -0
- package/web-ui/build/static/typoscript-5S0Q3h4I.js +1 -0
- package/web-ui/build/static/unrealscript-CaROCOEp.js +1 -0
- package/web-ui/build/static/uorazor-VyIQ6lvW.js +1 -0
- package/web-ui/build/static/uri-DDdjLj4-.js +1 -0
- package/web-ui/build/static/v-CzPHqjdM.js +1 -0
- package/web-ui/build/static/vala-CRK3Oxn2.js +1 -0
- package/web-ui/build/static/vala-DTG5j_IY.js +1 -0
- package/web-ui/build/static/vbnet-C6z8S410.js +1 -0
- package/web-ui/build/static/vbnet-cWNTX8Og.js +1 -0
- package/web-ui/build/static/vbscript-CyA_PhGn.js +1 -0
- package/web-ui/build/static/vbscript-html-CidnweeC.js +1 -0
- package/web-ui/build/static/velocity-Dp6ZU1nS.js +1 -0
- package/web-ui/build/static/verilog-CilE-jD9.js +1 -0
- package/web-ui/build/static/verilog-RAde9Uda.js +1 -0
- package/web-ui/build/static/vhdl-CHS4lDo8.js +1 -0
- package/web-ui/build/static/vhdl-D5o9ErDa.js +1 -0
- package/web-ui/build/static/vim-B8jwaGJ6.js +1 -0
- package/web-ui/build/static/vim-BZrCpxwn.js +1 -0
- package/web-ui/build/static/visual-basic-By6WIP3n.js +1 -0
- package/web-ui/build/static/warpscript-BQF8R5WL.js +1 -0
- package/web-ui/build/static/wasm-DJyk23np.js +1 -0
- package/web-ui/build/static/web-idl-DezqVYtV.js +1 -0
- package/web-ui/build/static/wiki-CiJcHWqV.js +1 -0
- package/web-ui/build/static/wolfram-DjwPz6pa.js +1 -0
- package/web-ui/build/static/wren-lzb3aV3F.js +1 -0
- package/web-ui/build/static/x86asm-CCNfO4dU.js +1 -0
- package/web-ui/build/static/xeora-CRaNjAb0.js +1 -0
- package/web-ui/build/static/xl-CRqWPyuc.js +1 -0
- package/web-ui/build/static/xml-Uuta5J77.js +1 -0
- package/web-ui/build/static/xml-doc-Drc3ho9Y.js +1 -0
- package/web-ui/build/static/xojo-D2WT5Q0J.js +1 -0
- package/web-ui/build/static/xquery-CwB9Zxcf.js +1 -0
- package/web-ui/build/static/xquery-DA5NuZxN.js +1 -0
- package/web-ui/build/static/yaml-DJMpA9ia.js +1 -0
- package/web-ui/build/static/yaml-DxiY0s1_.js +1 -0
- package/web-ui/build/static/yang-DPrwGYlZ.js +1 -0
- package/web-ui/build/static/zephir-DOfPWp4I.js +1 -0
- package/web-ui/build/static/zig-BE1mX447.js +1 -0
- package/web-ui/build/static/1c-C_9olPfq.js +0 -1
- package/web-ui/build/static/abap--DeFI1OC.js +0 -1
- package/web-ui/build/static/abnf-5HzSmxRy.js +0 -1
- package/web-ui/build/static/abnf-IG-O3NHT.js +0 -1
- package/web-ui/build/static/accesslog-qO_3I5IJ.js +0 -1
- package/web-ui/build/static/actionscript-DbFc2Uxo.js +0 -1
- package/web-ui/build/static/actionscript-jU7xUh7w.js +0 -1
- package/web-ui/build/static/ada-DBOzyNDe.js +0 -1
- package/web-ui/build/static/ada-F0QwXh2e.js +0 -1
- package/web-ui/build/static/agda-Drhr_GYC.js +0 -1
- package/web-ui/build/static/al-bEatcrqU.js +0 -1
- package/web-ui/build/static/angelscript-Bp0mqasc.js +0 -1
- package/web-ui/build/static/antlr4-BCvixOqW.js +0 -1
- package/web-ui/build/static/apache-zSeWcGFf.js +0 -1
- package/web-ui/build/static/apacheconf-CEDX0qIZ.js +0 -1
- package/web-ui/build/static/apex-BHlvjPxZ.js +0 -1
- package/web-ui/build/static/apl-S86eLVnh.js +0 -1
- package/web-ui/build/static/applescript-D15JiHTt.js +0 -1
- package/web-ui/build/static/applescript-D6g2nIGs.js +0 -1
- package/web-ui/build/static/aql-C4SWmhk2.js +0 -1
- package/web-ui/build/static/arcade-DrwRCCCh.js +0 -1
- package/web-ui/build/static/arduino-Blsw4-hb.js +0 -1
- package/web-ui/build/static/arduino-s6CYn6L3.js +0 -1
- package/web-ui/build/static/arff-DnrfdsTx.js +0 -1
- package/web-ui/build/static/armasm-C2WK9q2y.js +0 -1
- package/web-ui/build/static/asciidoc-BiY2pDol.js +0 -1
- package/web-ui/build/static/asciidoc-DG128-Q1.js +0 -1
- package/web-ui/build/static/asm6502-BEAW0Cck.js +0 -1
- package/web-ui/build/static/asmatmel-C4v7boSu.js +0 -1
- package/web-ui/build/static/aspectj-Bfek529B.js +0 -1
- package/web-ui/build/static/aspnet-8K2PeLn2.js +0 -1
- package/web-ui/build/static/autohotkey-BHw78HYu.js +0 -1
- package/web-ui/build/static/autohotkey-C5DDQtDL.js +0 -1
- package/web-ui/build/static/autoit-CgsSmQkF.js +0 -1
- package/web-ui/build/static/autoit-DZ7IS_9i.js +0 -1
- package/web-ui/build/static/avisynth-B20WuEUg.js +0 -1
- package/web-ui/build/static/avrasm-C7TrcWBg.js +0 -1
- package/web-ui/build/static/avro-idl-CfDy8XWE.js +0 -1
- package/web-ui/build/static/awk-cjY-7p5o.js +0 -1
- package/web-ui/build/static/axapta-Bu9INQG2.js +0 -1
- package/web-ui/build/static/bash-B998wxy_.js +0 -1
- package/web-ui/build/static/bash-LE6roX2s.js +0 -1
- package/web-ui/build/static/basic-Cd6-vDdH.js +0 -1
- package/web-ui/build/static/basic-mfY-ovnp.js +0 -1
- package/web-ui/build/static/batch-DxVy2cwv.js +0 -1
- package/web-ui/build/static/bbcode-Ct3Yu8De.js +0 -1
- package/web-ui/build/static/bicep-CexPoMEW.js +0 -1
- package/web-ui/build/static/birb-CH1RMpPI.js +0 -1
- package/web-ui/build/static/bison-XQFuPB_Q.js +0 -1
- package/web-ui/build/static/bnf-CIDGmY3l.js +0 -1
- package/web-ui/build/static/bnf-DjN_FU2s.js +0 -1
- package/web-ui/build/static/brainfuck-Cu_hvayi.js +0 -1
- package/web-ui/build/static/brainfuck-eRbe4_qo.js +0 -1
- package/web-ui/build/static/brightscript-Cdq0ttTN.js +0 -1
- package/web-ui/build/static/bro-D3aio8LS.js +0 -1
- package/web-ui/build/static/bsl-DFEwVZ2J.js +0 -1
- package/web-ui/build/static/c-D6RK1vhn.js +0 -1
- package/web-ui/build/static/c-DUcBA02q.js +0 -1
- package/web-ui/build/static/c-like-BApJDFwD.js +0 -1
- package/web-ui/build/static/cal-Ckv8Qnpw.js +0 -1
- package/web-ui/build/static/capnproto-DCoblEyS.js +0 -1
- package/web-ui/build/static/ceylon-DM-zZDWY.js +0 -1
- package/web-ui/build/static/cfscript-CMoOAgUK.js +0 -1
- package/web-ui/build/static/chaiscript-B3Vl3wGb.js +0 -1
- package/web-ui/build/static/cil-ChEi_uFO.js +0 -1
- package/web-ui/build/static/clean-BtA08oDV.js +0 -1
- package/web-ui/build/static/clojure-CWMlf7lJ.js +0 -1
- package/web-ui/build/static/clojure-Vur8C4jr.js +0 -1
- package/web-ui/build/static/clojure-repl-BsfGHdYy.js +0 -1
- package/web-ui/build/static/cmake-Csgl_IVr.js +0 -1
- package/web-ui/build/static/cmake-DFMKvwxy.js +0 -1
- package/web-ui/build/static/cobol-XhlGrCrW.js +0 -1
- package/web-ui/build/static/coffeescript-DYldGW35.js +0 -1
- package/web-ui/build/static/coffeescript-DvbNKwrC.js +0 -1
- package/web-ui/build/static/concurnas-DjALqCYn.js +0 -1
- package/web-ui/build/static/coq-D9QGJI6g.js +0 -1
- package/web-ui/build/static/coq-fAZpoc7i.js +0 -1
- package/web-ui/build/static/cos-GgM7WWVZ.js +0 -1
- package/web-ui/build/static/cpp-Cgt5qqfd.js +0 -1
- package/web-ui/build/static/cpp-DxVcOuBe.js +0 -1
- package/web-ui/build/static/crmsh-BlZWnzbY.js +0 -1
- package/web-ui/build/static/crystal--H7HLAQf.js +0 -1
- package/web-ui/build/static/crystal-DWm0bbUT.js +0 -1
- package/web-ui/build/static/csharp-8dr-wktE.js +0 -1
- package/web-ui/build/static/csharp-DFuHLPFe.js +0 -1
- package/web-ui/build/static/cshtml-C-L4_dy2.js +0 -1
- package/web-ui/build/static/csp-CJ6qbecO.js +0 -1
- package/web-ui/build/static/csp-DswTy-5u.js +0 -1
- package/web-ui/build/static/css-DdRPdKXQ.js +0 -1
- package/web-ui/build/static/css-extras-DMwOZFrB.js +0 -1
- package/web-ui/build/static/csv-BiWlhIMC.js +0 -1
- package/web-ui/build/static/cypher-ByNaJKO8.js +0 -1
- package/web-ui/build/static/d-BR89VlK-.js +0 -1
- package/web-ui/build/static/d-KlWvBc4w.js +0 -1
- package/web-ui/build/static/dart-BIsk7m6o.js +0 -1
- package/web-ui/build/static/dart-BnyP1Rjp.js +0 -1
- package/web-ui/build/static/dataweave-CH_Q2gWX.js +0 -1
- package/web-ui/build/static/dax-wulX9uc-.js +0 -1
- package/web-ui/build/static/delphi-CFowdk_A.js +0 -1
- package/web-ui/build/static/dhall-BfCOemEp.js +0 -1
- package/web-ui/build/static/diff-DQD2zPaG.js +0 -1
- package/web-ui/build/static/diff-DZoEdrYM.js +0 -1
- package/web-ui/build/static/django-B0j973Kw.js +0 -1
- package/web-ui/build/static/django-CYScL320.js +0 -1
- package/web-ui/build/static/dns-DoECkAgz.js +0 -1
- package/web-ui/build/static/dns-zone-file-CuoIcXgj.js +0 -1
- package/web-ui/build/static/docker-C2nfXTBG.js +0 -1
- package/web-ui/build/static/dockerfile-DBalxIH7.js +0 -1
- package/web-ui/build/static/dos-GNL9IdmL.js +0 -1
- package/web-ui/build/static/dot-rKuRS-PS.js +0 -1
- package/web-ui/build/static/dsconfig-CKmenTFr.js +0 -1
- package/web-ui/build/static/dts-AxT2qjQU.js +0 -1
- package/web-ui/build/static/dust-DpqHWPC4.js +0 -1
- package/web-ui/build/static/ebnf-CONEMpLp.js +0 -1
- package/web-ui/build/static/ebnf-DRWcOs8R.js +0 -1
- package/web-ui/build/static/editorconfig-lmLHmECZ.js +0 -1
- package/web-ui/build/static/eiffel-B39e31fw.js +0 -1
- package/web-ui/build/static/ejs-DtJwpVdo.js +0 -1
- package/web-ui/build/static/elixir-BH4JTqa9.js +0 -1
- package/web-ui/build/static/elixir-aH1DLjYD.js +0 -1
- package/web-ui/build/static/elm-BcCGkSrW.js +0 -1
- package/web-ui/build/static/elm-CCrB1JbX.js +0 -1
- package/web-ui/build/static/erb-CcumI1K3.js +0 -1
- package/web-ui/build/static/erb-_HK77hx-.js +0 -1
- package/web-ui/build/static/erlang-B1qxMZZp.js +0 -1
- package/web-ui/build/static/erlang-CCM_ejO_.js +0 -1
- package/web-ui/build/static/erlang-repl-D1zC2Zf6.js +0 -1
- package/web-ui/build/static/etlua-HJMRx9x7.js +0 -1
- package/web-ui/build/static/excel-DqXCKUKa.js +0 -1
- package/web-ui/build/static/excel-formula-oNw1T5Gi.js +0 -1
- package/web-ui/build/static/factor-BrTp5FZH.js +0 -1
- package/web-ui/build/static/false-CAVqV3ok.js +0 -1
- package/web-ui/build/static/firestore-security-rules-CxTofGT0.js +0 -1
- package/web-ui/build/static/fix-BMooo7-3.js +0 -1
- package/web-ui/build/static/flix-DR5Pi_4n.js +0 -1
- package/web-ui/build/static/flow-BoCWpUCW.js +0 -1
- package/web-ui/build/static/fortran-B9JI5ahV.js +0 -1
- package/web-ui/build/static/fortran-LXg81aOn.js +0 -1
- package/web-ui/build/static/fsharp-BqcGG-SM.js +0 -1
- package/web-ui/build/static/fsharp-Dj5YVL_h.js +0 -1
- package/web-ui/build/static/ftl-kuY7uFR8.js +0 -1
- package/web-ui/build/static/gams-CzihHKqE.js +0 -1
- package/web-ui/build/static/gap-BbS0A-Wl.js +0 -1
- package/web-ui/build/static/gauss-BauwG_O4.js +0 -1
- package/web-ui/build/static/gcode-VY1OKBcC.js +0 -1
- package/web-ui/build/static/gcode-lapsLgV5.js +0 -1
- package/web-ui/build/static/gdscript-1UIYB8m0.js +0 -1
- package/web-ui/build/static/gedcom-Bhrxt1LM.js +0 -1
- package/web-ui/build/static/gherkin-BsUD3vJB.js +0 -1
- package/web-ui/build/static/gherkin-hj_asmFX.js +0 -1
- package/web-ui/build/static/git-DXIrRKzR.js +0 -1
- package/web-ui/build/static/glsl-Bww3i9-P.js +0 -1
- package/web-ui/build/static/glsl-tW4hvcaQ.js +0 -1
- package/web-ui/build/static/gml-BIqshajA.js +0 -1
- package/web-ui/build/static/gml-CQqc9F-B.js +0 -1
- package/web-ui/build/static/gn-CBgpy8B9.js +0 -1
- package/web-ui/build/static/go-CEUAUIgn.js +0 -1
- package/web-ui/build/static/go-DPEd33Yn.js +0 -1
- package/web-ui/build/static/go-module-BVPbZOg5.js +0 -1
- package/web-ui/build/static/golo-CqB3OATq.js +0 -1
- package/web-ui/build/static/gradle-Djj_6FTv.js +0 -1
- package/web-ui/build/static/graphql-ymSYYmmE.js +0 -1
- package/web-ui/build/static/groovy-BLoXi1Ew.js +0 -1
- package/web-ui/build/static/groovy-D8ua3DVO.js +0 -1
- package/web-ui/build/static/haml-DKlxHs26.js +0 -1
- package/web-ui/build/static/haml-S_iUNysn.js +0 -1
- package/web-ui/build/static/handlebars-B7tcAMGB.js +0 -1
- package/web-ui/build/static/handlebars-CV-zB05N.js +0 -1
- package/web-ui/build/static/haskell-CMxCwdZX.js +0 -1
- package/web-ui/build/static/haskell-Dis6rGJ5.js +0 -1
- package/web-ui/build/static/haxe-C76IK5YN.js +0 -1
- package/web-ui/build/static/haxe-hbmD2uei.js +0 -1
- package/web-ui/build/static/hcl-BPI_t80W.js +0 -1
- package/web-ui/build/static/hlsl-BmeH3MXM.js +0 -1
- package/web-ui/build/static/hoon-BYLX7KiR.js +0 -1
- package/web-ui/build/static/hpkp-CFV1lvIV.js +0 -1
- package/web-ui/build/static/hsp-_VXPtQPw.js +0 -1
- package/web-ui/build/static/hsts-DzmFog1b.js +0 -1
- package/web-ui/build/static/htmlbars-uX8JubPS.js +0 -1
- package/web-ui/build/static/http-BTDAHgkv.js +0 -1
- package/web-ui/build/static/http-Ba1gTHCW.js +0 -1
- package/web-ui/build/static/hy-G7MK4TLb.js +0 -1
- package/web-ui/build/static/ichigojam-BKKN56jZ.js +0 -1
- package/web-ui/build/static/icon-nrqdEYwB.js +0 -1
- package/web-ui/build/static/icu-message-format-Bjone7XH.js +0 -1
- package/web-ui/build/static/idris-CKkY_0op.js +0 -1
- package/web-ui/build/static/iecst-EV3ZvBDC.js +0 -1
- package/web-ui/build/static/ignore-LJIbInke.js +0 -1
- package/web-ui/build/static/index-C1x426Pt.js +0 -734
- package/web-ui/build/static/index-CTzeYMwr.js +0 -13
- package/web-ui/build/static/index-CUBjz1OL.css +0 -1
- package/web-ui/build/static/index-DnVIkRiR.js +0 -1
- package/web-ui/build/static/inform7-BiW6HbUl.js +0 -1
- package/web-ui/build/static/inform7-DT-x6SRD.js +0 -1
- package/web-ui/build/static/ini-BbnHjAtW.js +0 -1
- package/web-ui/build/static/ini-DuNY7Iqz.js +0 -1
- package/web-ui/build/static/io-BquAtlCB.js +0 -1
- package/web-ui/build/static/irpf90-CZELNeJl.js +0 -1
- package/web-ui/build/static/isbl-DhOgOzai.js +0 -1
- package/web-ui/build/static/j-r8D3BrBj.js +0 -1
- package/web-ui/build/static/java-MjQ5EBN5.js +0 -1
- package/web-ui/build/static/java-c3Jyc0B6.js +0 -1
- package/web-ui/build/static/javadoc-CfNFziRD.js +0 -1
- package/web-ui/build/static/javadoclike-BUcJZQAh.js +0 -1
- package/web-ui/build/static/javascript-CL_4g6j3.js +0 -1
- package/web-ui/build/static/javastacktrace-4P_J-58S.js +0 -1
- package/web-ui/build/static/jboss-cli-DUfK88hO.js +0 -1
- package/web-ui/build/static/jexl-DsSijmcs.js +0 -1
- package/web-ui/build/static/jolie-DjtNIZB4.js +0 -1
- package/web-ui/build/static/jq-BXdSm79y.js +0 -1
- package/web-ui/build/static/js-extras-B-C7ngCD.js +0 -1
- package/web-ui/build/static/js-templates-CmPAiwFC.js +0 -1
- package/web-ui/build/static/jsdoc-CkiXOOMV.js +0 -1
- package/web-ui/build/static/json-Bmvhezfj.js +0 -1
- package/web-ui/build/static/json-HPR8wBiw.js +0 -1
- package/web-ui/build/static/json5-Chcg9nnQ.js +0 -1
- package/web-ui/build/static/jsonp-C3KWcfzJ.js +0 -1
- package/web-ui/build/static/jsstacktrace-D1jRFy-S.js +0 -1
- package/web-ui/build/static/jsx-COtCqQ_9.js +0 -1
- package/web-ui/build/static/julia-BVvfw2TB.js +0 -1
- package/web-ui/build/static/julia-Ddalvdoa.js +0 -1
- package/web-ui/build/static/julia-repl-Bc-uwnIZ.js +0 -1
- package/web-ui/build/static/keepalived-CJ9ZYuQx.js +0 -1
- package/web-ui/build/static/keyman-BHea-dB6.js +0 -1
- package/web-ui/build/static/kotlin-DWOyCb_2.js +0 -1
- package/web-ui/build/static/kotlin-fvMiFIS3.js +0 -1
- package/web-ui/build/static/kumir-DaNls7gN.js +0 -1
- package/web-ui/build/static/kusto-DKweJuKl.js +0 -1
- package/web-ui/build/static/lasso-BB9dUrv_.js +0 -1
- package/web-ui/build/static/latex-C7U5RUQQ.js +0 -1
- package/web-ui/build/static/latex-CXM3EEy0.js +0 -1
- package/web-ui/build/static/latte-B4pEA635.js +0 -1
- package/web-ui/build/static/ldif-D3wYig10.js +0 -1
- package/web-ui/build/static/leaf-uFkjT9sR.js +0 -1
- package/web-ui/build/static/less-CbUH4jBX.js +0 -1
- package/web-ui/build/static/less-DEGyfeZn.js +0 -1
- package/web-ui/build/static/lilypond-UuoBjShK.js +0 -1
- package/web-ui/build/static/liquid-DB3a9n7S.js +0 -1
- package/web-ui/build/static/lisp-BDbj7Kd2.js +0 -1
- package/web-ui/build/static/lisp-D3T0YOb1.js +0 -1
- package/web-ui/build/static/livecodeserver-CkZMVLmr.js +0 -1
- package/web-ui/build/static/livescript-CJbtbTfA.js +0 -1
- package/web-ui/build/static/livescript-CdWg1xgf.js +0 -1
- package/web-ui/build/static/llvm-8hpjZ6qF.js +0 -1
- package/web-ui/build/static/llvm-DPpuma6i.js +0 -1
- package/web-ui/build/static/log-DwsLgecp.js +0 -1
- package/web-ui/build/static/lolcode-D3tkyiVB.js +0 -1
- package/web-ui/build/static/lsl-BBM4ZYza.js +0 -1
- package/web-ui/build/static/lua-DT0su8pZ.js +0 -1
- package/web-ui/build/static/lua-DqZXmUwn.js +0 -1
- package/web-ui/build/static/magma-DGW0-GCr.js +0 -1
- package/web-ui/build/static/makefile-C_K7AaVw.js +0 -1
- package/web-ui/build/static/makefile-CarddjPJ.js +0 -1
- package/web-ui/build/static/markdown-3dq-8I9T.js +0 -1
- package/web-ui/build/static/markdown-c4VYoNo2.js +0 -1
- package/web-ui/build/static/markup-templating-BBX0gWS5.js +0 -1
- package/web-ui/build/static/mathematica-n-aqoCbO.js +0 -1
- package/web-ui/build/static/matlab-B_kYC-A2.js +0 -1
- package/web-ui/build/static/matlab-CQP2D_0j.js +0 -1
- package/web-ui/build/static/maxima-piaAhCcP.js +0 -1
- package/web-ui/build/static/maxscript-CkxNZR1a.js +0 -1
- package/web-ui/build/static/mel-BXbrV0aU.js +0 -1
- package/web-ui/build/static/mel-CBSpVZcl.js +0 -1
- package/web-ui/build/static/mercury-CffeC87B.js +0 -1
- package/web-ui/build/static/mermaid-DAZcfksM.js +0 -1
- package/web-ui/build/static/mipsasm-DvOPoNgz.js +0 -1
- package/web-ui/build/static/mizar-C2ki99qc.js +0 -1
- package/web-ui/build/static/mizar-C5AXRrsD.js +0 -1
- package/web-ui/build/static/mojolicious-DklqV-uP.js +0 -1
- package/web-ui/build/static/mongodb-BbuSPlN0.js +0 -1
- package/web-ui/build/static/monkey-CJBb2-mV.js +0 -1
- package/web-ui/build/static/monkey-DgERCZQd.js +0 -1
- package/web-ui/build/static/moonscript-BovBU9jW.js +0 -1
- package/web-ui/build/static/moonscript-lPqbcjjy.js +0 -1
- package/web-ui/build/static/n1ql-CjVXW0Z0.js +0 -1
- package/web-ui/build/static/n1ql-DkfG2dTH.js +0 -1
- package/web-ui/build/static/n4js-6L9QW_kw.js +0 -1
- package/web-ui/build/static/nand2tetris-hdl-CqohGHfB.js +0 -1
- package/web-ui/build/static/naniscript-CIvQ6y1b.js +0 -1
- package/web-ui/build/static/nasm-CQbJbZZf.js +0 -1
- package/web-ui/build/static/neon-Cz41RJxQ.js +0 -1
- package/web-ui/build/static/nevod-WPRJ2Q9j.js +0 -1
- package/web-ui/build/static/nginx-BL2wPbD-.js +0 -1
- package/web-ui/build/static/nginx-DsqC_gQT.js +0 -1
- package/web-ui/build/static/nim-7qnwzYm_.js +0 -1
- package/web-ui/build/static/nim-D6iDo5H6.js +0 -1
- package/web-ui/build/static/nix-BQSsaH-G.js +0 -1
- package/web-ui/build/static/nix-DgwCtjpD.js +0 -1
- package/web-ui/build/static/node-repl-Cb4w8DbD.js +0 -1
- package/web-ui/build/static/nsis-CiXZWrqR.js +0 -1
- package/web-ui/build/static/nsis-CuwGI5px.js +0 -1
- package/web-ui/build/static/objectivec-DZXCqQ1J.js +0 -1
- package/web-ui/build/static/objectivec-GNGh-wiY.js +0 -1
- package/web-ui/build/static/ocaml-BPg_ANkr.js +0 -1
- package/web-ui/build/static/ocaml-DRUpaN8p.js +0 -1
- package/web-ui/build/static/opencl-CazTs_sf.js +0 -1
- package/web-ui/build/static/openqasm-DHuuXGjm.js +0 -1
- package/web-ui/build/static/openscad-YbvBFeLc.js +0 -1
- package/web-ui/build/static/oxygene-DDzgbCaQ.js +0 -1
- package/web-ui/build/static/oz-BRDBLIjx.js +0 -1
- package/web-ui/build/static/parigp-BbApdos7.js +0 -1
- package/web-ui/build/static/parser-CbVH4ySK.js +0 -1
- package/web-ui/build/static/parser3-BIkvuuuE.js +0 -1
- package/web-ui/build/static/pascal-oS7U_3sO.js +0 -1
- package/web-ui/build/static/pascaligo-57DdFj76.js +0 -1
- package/web-ui/build/static/pcaxis-V-Euf0DV.js +0 -1
- package/web-ui/build/static/peoplecode-DjyRW5V8.js +0 -1
- package/web-ui/build/static/perl-BEQWvjeP.js +0 -1
- package/web-ui/build/static/perl-CiDHRorC.js +0 -1
- package/web-ui/build/static/pf-S5x_U1LC.js +0 -1
- package/web-ui/build/static/pgsql-DwHZC-iy.js +0 -1
- package/web-ui/build/static/php-7enmlb-I.js +0 -1
- package/web-ui/build/static/php-extras-BhRDMlXE.js +0 -1
- package/web-ui/build/static/php-kIwfq-Jj.js +0 -1
- package/web-ui/build/static/php-template-M2RrZc1R.js +0 -1
- package/web-ui/build/static/phpdoc-HUeiWlkw.js +0 -1
- package/web-ui/build/static/plaintext-CPt25ow_.js +0 -1
- package/web-ui/build/static/plsql-BvoRAbdz.js +0 -1
- package/web-ui/build/static/pony-BVuhxk7D.js +0 -1
- package/web-ui/build/static/powerquery-rnRfiL3F.js +0 -1
- package/web-ui/build/static/powershell-BQR2-qjF.js +0 -1
- package/web-ui/build/static/powershell-S_XnLato.js +0 -1
- package/web-ui/build/static/processing-B-8pt1gx.js +0 -1
- package/web-ui/build/static/processing-ozS1KPr7.js +0 -1
- package/web-ui/build/static/profile-DOjTmxRs.js +0 -1
- package/web-ui/build/static/prolog-BaaxuI5L.js +0 -1
- package/web-ui/build/static/prolog-D90dFqfr.js +0 -1
- package/web-ui/build/static/promql-BuyoLqtl.js +0 -1
- package/web-ui/build/static/properties-C0pMastm.js +0 -1
- package/web-ui/build/static/properties-k7bXYQao.js +0 -1
- package/web-ui/build/static/protobuf-ChaO1q7B.js +0 -1
- package/web-ui/build/static/protobuf-DAGxv01T.js +0 -1
- package/web-ui/build/static/psl-BpYOLBqn.js +0 -1
- package/web-ui/build/static/pug-BUlJA4UD.js +0 -1
- package/web-ui/build/static/puppet-8l--PVpO.js +0 -1
- package/web-ui/build/static/puppet-BJDN84xr.js +0 -1
- package/web-ui/build/static/pure-DhqjQg1a.js +0 -1
- package/web-ui/build/static/purebasic-BHnSz9Yh.js +0 -1
- package/web-ui/build/static/purebasic-CeiLO2aV.js +0 -1
- package/web-ui/build/static/purescript-BaXXPnKS.js +0 -1
- package/web-ui/build/static/python-BXdJ4yqN.js +0 -1
- package/web-ui/build/static/python-Cef5Vfx2.js +0 -1
- package/web-ui/build/static/python-repl-CRpJP363.js +0 -1
- package/web-ui/build/static/q-C6Ov0g11.js +0 -1
- package/web-ui/build/static/q-D3tQMiHa.js +0 -1
- package/web-ui/build/static/qml-BYofTHXZ.js +0 -1
- package/web-ui/build/static/qml-DTxi8T37.js +0 -1
- package/web-ui/build/static/qore-Ny7MVtbP.js +0 -1
- package/web-ui/build/static/qsharp-Cy_rqHs2.js +0 -1
- package/web-ui/build/static/r-BtNaz7Jx.js +0 -1
- package/web-ui/build/static/r-DkF7wq0g.js +0 -1
- package/web-ui/build/static/racket-C5r8oFZa.js +0 -1
- package/web-ui/build/static/reason-BURRGL8T.js +0 -1
- package/web-ui/build/static/reasonml-ZPKVqo38.js +0 -1
- package/web-ui/build/static/regex-DgaaAttu.js +0 -1
- package/web-ui/build/static/rego-CtwYq-qp.js +0 -1
- package/web-ui/build/static/renpy-OueysuHf.js +0 -1
- package/web-ui/build/static/rest-Co13hzuk.js +0 -1
- package/web-ui/build/static/rib-CvGWooaO.js +0 -1
- package/web-ui/build/static/rip-5glwZfvx.js +0 -1
- package/web-ui/build/static/roboconf-B9R_ZXBj.js +0 -1
- package/web-ui/build/static/roboconf-Gf0nTNKt.js +0 -1
- package/web-ui/build/static/robotframework-C2axWAv1.js +0 -1
- package/web-ui/build/static/routeros-CE_Iedbm.js +0 -1
- package/web-ui/build/static/rsl-2QjczbcI.js +0 -1
- package/web-ui/build/static/ruby-5q7nApRB.js +0 -1
- package/web-ui/build/static/ruby-BUTeEeQo.js +0 -1
- package/web-ui/build/static/ruleslanguage-vxFl2T6e.js +0 -1
- package/web-ui/build/static/rust-BMuquF4q.js +0 -1
- package/web-ui/build/static/rust-CcZQo8qE.js +0 -1
- package/web-ui/build/static/sas-B3kZio_a.js +0 -1
- package/web-ui/build/static/sas-Bbv6Pcs_.js +0 -1
- package/web-ui/build/static/sass-C0q0q-U-.js +0 -1
- package/web-ui/build/static/scala-B5vW0oUX.js +0 -1
- package/web-ui/build/static/scala-CyVnVDED.js +0 -1
- package/web-ui/build/static/scheme-C9JOo4R_.js +0 -1
- package/web-ui/build/static/scheme-W2233tzx.js +0 -1
- package/web-ui/build/static/scilab-D2Bvw6Ov.js +0 -1
- package/web-ui/build/static/scss-CTlab4AI.js +0 -1
- package/web-ui/build/static/scss-DZ5g2Z9m.js +0 -1
- package/web-ui/build/static/shell-bYpiB--U.js +0 -1
- package/web-ui/build/static/shell-session-C4jzoNup.js +0 -1
- package/web-ui/build/static/smali-9ucoTzDl.js +0 -1
- package/web-ui/build/static/smali-BnluPxDD.js +0 -1
- package/web-ui/build/static/smalltalk-CAMGWItN.js +0 -1
- package/web-ui/build/static/smalltalk-DNxg0Og_.js +0 -1
- package/web-ui/build/static/smarty-YxNaCRZt.js +0 -1
- package/web-ui/build/static/sml-CZbvurr2.js +0 -1
- package/web-ui/build/static/sml-DGs_TRXx.js +0 -1
- package/web-ui/build/static/solidity-CEsviKxI.js +0 -1
- package/web-ui/build/static/solution-file-D0Yvaoet.js +0 -1
- package/web-ui/build/static/soy-BmVAPY7I.js +0 -1
- package/web-ui/build/static/sparql-D8d4i2J8.js +0 -1
- package/web-ui/build/static/splunk-spl-CcgWj5Im.js +0 -1
- package/web-ui/build/static/sqf-Cd4tBlXZ.js +0 -1
- package/web-ui/build/static/sqf-DC8e-wlP.js +0 -1
- package/web-ui/build/static/sql-D5KtfAwl.js +0 -1
- package/web-ui/build/static/sql-DX4iGc5J.js +0 -1
- package/web-ui/build/static/sql_more-9ztUFh5U.js +0 -1
- package/web-ui/build/static/squirrel-CiVV01fQ.js +0 -1
- package/web-ui/build/static/stan-DCrPYtdq.js +0 -1
- package/web-ui/build/static/stan-LL9ScTUT.js +0 -1
- package/web-ui/build/static/stata-n-r5-RvF.js +0 -1
- package/web-ui/build/static/step21-B2hxGG1E.js +0 -1
- package/web-ui/build/static/stylus-D-1wq2uN.js +0 -1
- package/web-ui/build/static/stylus-Dr-w1AjW.js +0 -1
- package/web-ui/build/static/subunit-DRCyiRHI.js +0 -1
- package/web-ui/build/static/swift-B2ZIuBjB.js +0 -1
- package/web-ui/build/static/swift-CnRpp8ao.js +0 -1
- package/web-ui/build/static/systemd-LPN-yj3b.js +0 -1
- package/web-ui/build/static/t4-cs-CXJSMlet.js +0 -1
- package/web-ui/build/static/t4-templating-Ciw3keAZ.js +0 -1
- package/web-ui/build/static/t4-vb-CXe99AWF.js +0 -1
- package/web-ui/build/static/taggerscript-Bm830ZwV.js +0 -1
- package/web-ui/build/static/tap-B0WwYGVt.js +0 -1
- package/web-ui/build/static/tap-Dw_cgj6K.js +0 -1
- package/web-ui/build/static/tcl-Di4JhH4s.js +0 -1
- package/web-ui/build/static/tcl-cIeBNf2V.js +0 -1
- package/web-ui/build/static/textile-DgMdCAz5.js +0 -1
- package/web-ui/build/static/thrift-zY2WxYMk.js +0 -1
- package/web-ui/build/static/toml-BtXdKizf.js +0 -1
- package/web-ui/build/static/tp-DxY0K8UF.js +0 -1
- package/web-ui/build/static/tremor-890wqxvH.js +0 -1
- package/web-ui/build/static/tsx-92ElsKxL.js +0 -1
- package/web-ui/build/static/tt2-DqcvjDKh.js +0 -1
- package/web-ui/build/static/turtle-BZikMsiD.js +0 -1
- package/web-ui/build/static/twig-BlxkEMdw.js +0 -1
- package/web-ui/build/static/twig-CfsoMGnv.js +0 -1
- package/web-ui/build/static/typescript-3xS8yDgH.js +0 -1
- package/web-ui/build/static/typescript-Dx0zHssr.js +0 -1
- package/web-ui/build/static/typoscript-BdFwMGCV.js +0 -1
- package/web-ui/build/static/unrealscript-DJzoqp3G.js +0 -1
- package/web-ui/build/static/uorazor-CQO8Ynpw.js +0 -1
- package/web-ui/build/static/uri-BUBBJdel.js +0 -1
- package/web-ui/build/static/v-XU798JEc.js +0 -1
- package/web-ui/build/static/vala-DsH-Nomr.js +0 -1
- package/web-ui/build/static/vala-gCVw4o0d.js +0 -1
- package/web-ui/build/static/vbnet-BHw8cZ4s.js +0 -1
- package/web-ui/build/static/vbnet-DPa2ddOk.js +0 -1
- package/web-ui/build/static/vbscript-html-CNADYJ1-.js +0 -1
- package/web-ui/build/static/vbscript-ztRmIppj.js +0 -1
- package/web-ui/build/static/velocity-DVfeN53w.js +0 -1
- package/web-ui/build/static/verilog-C9VDLRl9.js +0 -1
- package/web-ui/build/static/verilog-Dsmt_WJW.js +0 -1
- package/web-ui/build/static/vhdl-DbylNGny.js +0 -1
- package/web-ui/build/static/vhdl-wNJe3yKK.js +0 -1
- package/web-ui/build/static/vim-6PLlVaq_.js +0 -1
- package/web-ui/build/static/vim-BJpkTTe-.js +0 -1
- package/web-ui/build/static/visual-basic-GY3wXjJ3.js +0 -1
- package/web-ui/build/static/warpscript-DUb9z3yI.js +0 -1
- package/web-ui/build/static/wasm-Dey0RlHH.js +0 -1
- package/web-ui/build/static/web-idl-qAF1RqaI.js +0 -1
- package/web-ui/build/static/wiki-Dh3Vjtce.js +0 -1
- package/web-ui/build/static/wolfram-BrQcRMlt.js +0 -1
- package/web-ui/build/static/wren-Cu3Mzln6.js +0 -1
- package/web-ui/build/static/x86asm-DD5mhaEi.js +0 -1
- package/web-ui/build/static/xeora-DKRZ6hlr.js +0 -1
- package/web-ui/build/static/xl-BL8R8sAx.js +0 -1
- package/web-ui/build/static/xml-doc-BSpNJbEM.js +0 -1
- package/web-ui/build/static/xml-i5BJyEQ7.js +0 -1
- package/web-ui/build/static/xojo-r2ieNAyP.js +0 -1
- package/web-ui/build/static/xquery-BtAK8Dvl.js +0 -1
- package/web-ui/build/static/xquery-CM4Q_TX7.js +0 -1
- package/web-ui/build/static/yaml-Mm8ArZA3.js +0 -1
- package/web-ui/build/static/yaml-r-QeuY00.js +0 -1
- package/web-ui/build/static/yang-qcKR-Y23.js +0 -1
- package/web-ui/build/static/zephir-8ApHtH7c.js +0 -1
- package/web-ui/build/static/zig-BanqOd9_.js +0 -1
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web-Component runtime bundle — STRING, served to every webcomponent-mode iframe.
|
|
3
|
+
*
|
|
4
|
+
* Strictly smaller and simpler than the JSX bundle. Why this path exists:
|
|
5
|
+
* the JSX path keeps producing failures rooted in our custom runtime
|
|
6
|
+
* (htm parser quirks, hooks call-order, namespace whack-a-mole). Custom
|
|
7
|
+
* elements use only the platform — `class extends HTMLElement`,
|
|
8
|
+
* `customElements.define`, `connectedCallback` — APIs every modern
|
|
9
|
+
* browser ships and every LLM has thousands of training examples for.
|
|
10
|
+
*
|
|
11
|
+
* Ergonomic helper: `LoxiaElement` base class that absorbs the boilerplate
|
|
12
|
+
* (state, render, auto-binding for `data-bind` and `data-emit`). Agents
|
|
13
|
+
* who want raw `HTMLElement` can still use it; the runtime detects.
|
|
14
|
+
*
|
|
15
|
+
* The agent's code is expected to:
|
|
16
|
+
* 1. Define a class (extends LoxiaElement OR HTMLElement)
|
|
17
|
+
* 2. Call loxia.render(TheClass, initialProps)
|
|
18
|
+
*
|
|
19
|
+
* The runtime registers the class with a unique tag name, instantiates,
|
|
20
|
+
* mounts to #root, and wires the postMessage bridge.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export const WIDGET_WC_RUNTIME = `
|
|
24
|
+
/* ==== Loxia widget web-component runtime v1 ==== */
|
|
25
|
+
(function () {
|
|
26
|
+
'use strict';
|
|
27
|
+
|
|
28
|
+
let _rootInstance = null;
|
|
29
|
+
let _tagCounter = 0;
|
|
30
|
+
|
|
31
|
+
/* ---------- LoxiaElement base class ---------- */
|
|
32
|
+
// Optional ergonomic base. Inherits from HTMLElement, adds:
|
|
33
|
+
// - this.state — instance object, init in constructor or as a class field
|
|
34
|
+
// - this.setState(updater) — merges or replaces state, triggers re-render
|
|
35
|
+
// - this.template(state) → string — override; returned HTML is set on innerHTML
|
|
36
|
+
// - this.emit(type, payload) — sendEvent via postMessage to parent
|
|
37
|
+
// - data-bind="key" auto-binding — input/change events update state[key]
|
|
38
|
+
// - data-emit="name" auto-binding — clicks emit the named event
|
|
39
|
+
// - this.handleUpdate(props) — called when agent sends widget.update; default is setState(props)
|
|
40
|
+
//
|
|
41
|
+
// For raw HTMLElement subclasses (no LoxiaElement), widget.update sets
|
|
42
|
+
// attributes — agent's attributeChangedCallback handles re-render.
|
|
43
|
+
class LoxiaElement extends HTMLElement {
|
|
44
|
+
constructor() {
|
|
45
|
+
super();
|
|
46
|
+
// Attach a shadow root so:
|
|
47
|
+
// 1. \`this.shadowRoot\` is non-null — agents trained on web
|
|
48
|
+
// components heavily expect it (was the #2 reported failure)
|
|
49
|
+
// 2. CSS scopes don't bleed between widget and parent iframe
|
|
50
|
+
// 3. Selectors like this.shadowRoot.querySelector work
|
|
51
|
+
// CSS custom properties pierce shadow boundaries, so theme tokens
|
|
52
|
+
// (--gray-500, --loxia-600) still apply inside the widget.
|
|
53
|
+
try { this.attachShadow({ mode: 'open' }); }
|
|
54
|
+
catch (_) { /* already attached or environment doesn\'t support */ }
|
|
55
|
+
|
|
56
|
+
// Allow subclasses to declare \`state = { ... }\` as a class field.
|
|
57
|
+
// \`super()\` runs before field initializers, so we can't depend on
|
|
58
|
+
// them being set yet. Default to {} and merge later.
|
|
59
|
+
if (this.state === undefined) this.state = {};
|
|
60
|
+
}
|
|
61
|
+
/** The render target — shadowRoot when available, otherwise the element itself. */
|
|
62
|
+
get _root() { return this.shadowRoot || this; }
|
|
63
|
+
setState(updater) {
|
|
64
|
+
this.state = (typeof updater === 'function')
|
|
65
|
+
? updater(this.state)
|
|
66
|
+
: Object.assign({}, this.state, updater);
|
|
67
|
+
this.render();
|
|
68
|
+
}
|
|
69
|
+
connectedCallback() {
|
|
70
|
+
this.render();
|
|
71
|
+
try { if (this.onMount) this.onMount(); }
|
|
72
|
+
catch (err) { if (window.__loxiaReportError) window.__loxiaReportError(err, 'mount'); }
|
|
73
|
+
}
|
|
74
|
+
disconnectedCallback() {
|
|
75
|
+
try { if (this.onUnmount) this.onUnmount(); }
|
|
76
|
+
catch (err) { if (window.__loxiaReportError) window.__loxiaReportError(err, 'unmount'); }
|
|
77
|
+
}
|
|
78
|
+
render() {
|
|
79
|
+
let html = '';
|
|
80
|
+
try {
|
|
81
|
+
html = this.template ? this.template(this.state) : (this._root.innerHTML || '');
|
|
82
|
+
} catch (err) {
|
|
83
|
+
if (window.__loxiaReportError) window.__loxiaReportError(err, 'render');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this._root.innerHTML = html;
|
|
87
|
+
// Normalize footgun shapes BEFORE wiring so the rewritten
|
|
88
|
+
// attributes (data-bind-click → data-on-click, etc.) participate
|
|
89
|
+
// in the standard binding pass and the buttons actually work.
|
|
90
|
+
this._normalizeFootguns();
|
|
91
|
+
this._wireBindings();
|
|
92
|
+
// afterRender(root) — sanctioned hook for agents who need to attach
|
|
93
|
+
// listeners that the auto-wiring doesn't cover (intersection
|
|
94
|
+
// observer, complex pointer drag, focus-trap, ...). Called AFTER
|
|
95
|
+
// every render — listeners attached here survive setState because
|
|
96
|
+
// they're re-attached on the fresh DOM. Without this, agents who
|
|
97
|
+
// call addEventListener in onMount() see their listeners die on
|
|
98
|
+
// the first re-render (innerHTML wipe) — and there's no error.
|
|
99
|
+
try { if (typeof this.afterRender === 'function') this.afterRender(this._root); }
|
|
100
|
+
catch (err) { if (window.__loxiaReportError) window.__loxiaReportError(err, 'afterRender'); }
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Scan the freshly-rendered DOM for known typo shapes that LOOK like
|
|
104
|
+
* they should wire something up but DON'T. Reports each as a render
|
|
105
|
+
* error so agents see a clear message instead of "nothing happens".
|
|
106
|
+
*
|
|
107
|
+
* What's flagged:
|
|
108
|
+
* - data-bind-<anything> (data-bind-click, data-bind-input, ...)
|
|
109
|
+
* - data-action, data-handler, data-click, data-onclick
|
|
110
|
+
* - inline on*= attributes (onclick, onchange, onkeydown, ...)
|
|
111
|
+
*
|
|
112
|
+
* Each pattern includes a "did you mean ...?" hint pointing at the
|
|
113
|
+
* supported alternative. Reported once per attribute per render
|
|
114
|
+
* (de-duped via the global error infrastructure's "seen" map).
|
|
115
|
+
*/
|
|
116
|
+
/**
|
|
117
|
+
* Scan the freshly-rendered DOM for known typo shapes that LOOK like
|
|
118
|
+
* they should wire something up but don't. For each detected typo:
|
|
119
|
+
* 1. Emit a non-fatal warning (so the agent learns the right shape)
|
|
120
|
+
* 2. Rewrite the attribute IN PLACE to the canonical equivalent
|
|
121
|
+
* so the standard wiring pass picks it up — meaning the widget
|
|
122
|
+
* actually works on this render, not just "next time the agent
|
|
123
|
+
* ships a fix".
|
|
124
|
+
*
|
|
125
|
+
* Inline on*= attributes are warning-only — we can't safely transform
|
|
126
|
+
* a JS expression like onclick="this.foo()" into a method-name binding
|
|
127
|
+
* (we don't know the intent), so the agent has to fix those.
|
|
128
|
+
*/
|
|
129
|
+
_normalizeFootguns() {
|
|
130
|
+
const root = this._root;
|
|
131
|
+
// Footgun detection is a LINT, not a fatal error. The widget itself
|
|
132
|
+
// rendered fine; only specific click-handler bindings are dead. Route
|
|
133
|
+
// through the warning channel so the user still sees the widget
|
|
134
|
+
// (with a small "scripts have warnings" badge) instead of a red
|
|
135
|
+
// "widget failed to load" screen replacing the whole thing.
|
|
136
|
+
// Unified emit: warnings if the warning channel is available,
|
|
137
|
+
// otherwise fall back to error reporting. Always passes a STRING
|
|
138
|
+
// message — the warning channel takes a string; the error channel
|
|
139
|
+
// accepts a string too via its toString() path.
|
|
140
|
+
const emit = (msg) => {
|
|
141
|
+
if (window.__loxiaReportWarning) {
|
|
142
|
+
window.__loxiaReportWarning(msg, 'lint');
|
|
143
|
+
} else if (window.__loxiaReportError) {
|
|
144
|
+
window.__loxiaReportError(new Error(msg), 'lint');
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const FAKE_DATA_EXACT = {
|
|
148
|
+
'data-action': 'data-on-click="methodName"',
|
|
149
|
+
'data-handler': 'data-on-click="methodName"',
|
|
150
|
+
'data-click': 'data-on-click="methodName"',
|
|
151
|
+
'data-onclick': 'data-on-click="methodName"',
|
|
152
|
+
};
|
|
153
|
+
// Inline on*= attributes (onclick, onchange, ...) — these run in
|
|
154
|
+
// the iframe's GLOBAL scope, not bound to the LoxiaElement, so
|
|
155
|
+
// \`this.method()\` references silently miss the instance.
|
|
156
|
+
const INLINE_ON_RE = /^on[a-z]+$/;
|
|
157
|
+
|
|
158
|
+
// Rewrite an attribute on \`el\` from \`oldName\` to \`newName\`, keeping
|
|
159
|
+
// the value, but only if \`newName\` isn't already there (don't
|
|
160
|
+
// clobber a real binding the agent also wrote).
|
|
161
|
+
const rename = (el, oldName, newName) => {
|
|
162
|
+
const value = el.getAttribute(oldName);
|
|
163
|
+
el.removeAttribute(oldName);
|
|
164
|
+
if (!el.hasAttribute(newName)) el.setAttribute(newName, value);
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
root.querySelectorAll('*').forEach(function(el) {
|
|
168
|
+
if (!el.attributes) return;
|
|
169
|
+
// Iterate over a SNAPSHOT — we mutate attributes in this loop,
|
|
170
|
+
// and the live NamedNodeMap shifts indices when we removeAttribute.
|
|
171
|
+
const snapshot = [];
|
|
172
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
173
|
+
snapshot.push(el.attributes[i].name);
|
|
174
|
+
}
|
|
175
|
+
for (const name of snapshot) {
|
|
176
|
+
if (!name) continue;
|
|
177
|
+
|
|
178
|
+
// 1. data-bind-<x> → data-on-<x> (autofix)
|
|
179
|
+
if (name !== 'data-bind' && name.indexOf('data-bind-') === 0) {
|
|
180
|
+
const evt = name.slice('data-bind-'.length) || 'click';
|
|
181
|
+
const target = 'data-on-' + evt;
|
|
182
|
+
emit(
|
|
183
|
+
'Attribute "' + name + '" is NOT auto-wired — auto-rewrote to "' +
|
|
184
|
+
target + '". Update your template to use ' + target +
|
|
185
|
+
'="methodName" so this warning goes away. ' +
|
|
186
|
+
'(data-bind is for input→state binding; for event→method use data-on-<event>.)'
|
|
187
|
+
);
|
|
188
|
+
rename(el, name, target);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// 2. data-on:<x> → data-on-<x> (autofix)
|
|
193
|
+
if (name.indexOf('data-on:') === 0) {
|
|
194
|
+
const evt = name.slice('data-on:'.length) || 'click';
|
|
195
|
+
const target = 'data-on-' + evt;
|
|
196
|
+
emit(
|
|
197
|
+
'Attribute "' + name + '" uses ":" but the runtime expects "-" — ' +
|
|
198
|
+
'auto-rewrote to "' + target + '". Update your template.'
|
|
199
|
+
);
|
|
200
|
+
rename(el, name, target);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// 3. data-action / data-handler / data-click / data-onclick
|
|
205
|
+
// → data-on-click (autofix)
|
|
206
|
+
if (FAKE_DATA_EXACT[name]) {
|
|
207
|
+
emit(
|
|
208
|
+
'Attribute "' + name + '" is NOT auto-wired — auto-rewrote to "data-on-click". ' +
|
|
209
|
+
'Update your template to use ' + FAKE_DATA_EXACT[name] + '.'
|
|
210
|
+
);
|
|
211
|
+
rename(el, name, 'data-on-click');
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// 4. Inline on*= attributes — WARNING ONLY. We can't safely
|
|
216
|
+
// transform a JS expression like onclick="this.foo()" into
|
|
217
|
+
// a method-name binding (we don't know the agent's intent).
|
|
218
|
+
// The agent has to ship a fixed template. The widget still
|
|
219
|
+
// renders fine; only this specific handler is dead.
|
|
220
|
+
if (INLINE_ON_RE.test(name)) {
|
|
221
|
+
const evt = name.slice(2);
|
|
222
|
+
emit(
|
|
223
|
+
'Inline attribute "' + name + '" runs in the iframe global scope ' +
|
|
224
|
+
'— "this" inside it is the element, not your LoxiaElement instance, ' +
|
|
225
|
+
'so "this.method()" silently fails. Use data-on-' + evt +
|
|
226
|
+
'="methodName" instead. (Cannot auto-rewrite — the value is a JS ' +
|
|
227
|
+
'expression, not a method name.)'
|
|
228
|
+
);
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// 5. data-on / data-on- with no event name — agent forgot the
|
|
233
|
+
// suffix. Can't autofix (we don't know which event).
|
|
234
|
+
if (name === 'data-on-' || name === 'data-on') {
|
|
235
|
+
emit(
|
|
236
|
+
'Attribute "' + name + '" is missing the event name. ' +
|
|
237
|
+
'Use data-on-click="methodName", data-on-input="methodName", etc.'
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
_wireBindings() {
|
|
244
|
+
const self = this;
|
|
245
|
+
// data-bind="key" — input/change/textContent updates state[key].
|
|
246
|
+
// Query against shadowRoot if present (where the agent\'s template
|
|
247
|
+
// was actually rendered) so bindings work in both shadow + light DOM.
|
|
248
|
+
this._root.querySelectorAll('[data-bind]').forEach(function(el) {
|
|
249
|
+
const key = el.dataset.bind;
|
|
250
|
+
const handler = function(e) {
|
|
251
|
+
const t = e.target;
|
|
252
|
+
let value;
|
|
253
|
+
if (t.type === 'checkbox') value = t.checked;
|
|
254
|
+
else if (t.type === 'number' || t.type === 'range') value = t.value === '' ? '' : Number(t.value);
|
|
255
|
+
else value = t.value;
|
|
256
|
+
self.setState(Object.assign({}, self.state, { [key]: value }));
|
|
257
|
+
};
|
|
258
|
+
el.oninput = handler;
|
|
259
|
+
el.onchange = handler;
|
|
260
|
+
});
|
|
261
|
+
// data-emit="name" — click sends an event to the agent.
|
|
262
|
+
this._root.querySelectorAll('[data-emit]').forEach(function(el) {
|
|
263
|
+
el.onclick = function(e) {
|
|
264
|
+
// Optional data-payload="{...}" for custom payloads.
|
|
265
|
+
let extra = {};
|
|
266
|
+
try { if (el.dataset.payload) extra = JSON.parse(el.dataset.payload); } catch (_) {}
|
|
267
|
+
self.emit(el.dataset.emit, Object.assign({ state: self.state }, extra));
|
|
268
|
+
};
|
|
269
|
+
});
|
|
270
|
+
// data-on-<event>="methodName" — call a LOCAL instance method when
|
|
271
|
+
// the named DOM event fires on the element. \`this\` inside the
|
|
272
|
+
// method is bound to the LoxiaElement instance; the DOM event is
|
|
273
|
+
// passed as the first argument.
|
|
274
|
+
//
|
|
275
|
+
// GENERIC: any \`data-on-<anything>\` attribute is wired via
|
|
276
|
+
// addEventListener — browser-supported event names just work.
|
|
277
|
+
// Confirmed to fire for the obvious set (click, input, change,
|
|
278
|
+
// submit, focus, blur, keydown, keyup, mouseenter, mouseleave,
|
|
279
|
+
// mouseover, mouseout, mousedown, mouseup, mousemove, dblclick,
|
|
280
|
+
// contextmenu, wheel, pointerdown, pointerup, pointermove,
|
|
281
|
+
// pointerenter, pointerleave, touchstart, touchend, touchmove,
|
|
282
|
+
// dragstart, drag, dragend, dragenter, dragleave, dragover, drop,
|
|
283
|
+
// copy, cut, paste, scroll, transitionend, animationend, ...).
|
|
284
|
+
//
|
|
285
|
+
// Why generic rather than an allowlist: agents shouldn't have to
|
|
286
|
+
// guess "is keypress wired? what about pointerdown?" — anything
|
|
287
|
+
// addEventListener accepts works. addEventListener silently
|
|
288
|
+
// ignores nonexistent event names, so typos in the EVENT name
|
|
289
|
+
// can't blow up the page; typos in the METHOD name (the more
|
|
290
|
+
// common mistake) are caught explicitly below.
|
|
291
|
+
self._root.querySelectorAll('*').forEach(function(el) {
|
|
292
|
+
if (!el.attributes) return;
|
|
293
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
294
|
+
const attr = el.attributes[i];
|
|
295
|
+
if (!attr.name || attr.name.indexOf('data-on-') !== 0) continue;
|
|
296
|
+
const eventName = attr.name.slice('data-on-'.length);
|
|
297
|
+
if (!eventName) continue;
|
|
298
|
+
const methodName = attr.value;
|
|
299
|
+
const fn = self[methodName];
|
|
300
|
+
if (typeof fn !== 'function') {
|
|
301
|
+
// Surface the typo loudly so agents stop guessing attribute
|
|
302
|
+
// names. Without this, mistakes like data-bind-click silently
|
|
303
|
+
// do nothing — looks like a broken widget with no error.
|
|
304
|
+
//
|
|
305
|
+
// Routed through the WARNING channel: the rest of the widget
|
|
306
|
+
// mounted fine and we don't want to replace it with a red
|
|
307
|
+
// error screen because of one missing handler.
|
|
308
|
+
const warn = window.__loxiaReportWarning || window.__loxiaReportError;
|
|
309
|
+
if (warn) {
|
|
310
|
+
warn(
|
|
311
|
+
'data-on-' + eventName + '="' + methodName + '" but the class has no method named "' + methodName + '". Define it on your LoxiaElement subclass, or check the attribute spelling.',
|
|
312
|
+
'lint'
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
el.addEventListener(eventName, function(e) {
|
|
318
|
+
try { fn.call(self, e); }
|
|
319
|
+
catch (err) {
|
|
320
|
+
if (window.__loxiaReportError) window.__loxiaReportError(err, 'event-handler');
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
emit(type, payload) {
|
|
327
|
+
try {
|
|
328
|
+
window.parent.postMessage({
|
|
329
|
+
__loxia: true, type: 'event', widgetId: window.__loxiaWidgetId,
|
|
330
|
+
payload: Object.assign({ type: type }, payload || {})
|
|
331
|
+
}, '*');
|
|
332
|
+
} catch (_) {}
|
|
333
|
+
}
|
|
334
|
+
handleUpdate(newProps) {
|
|
335
|
+
// Default: merge into state. Subclasses can override for custom logic.
|
|
336
|
+
this.setState(newProps);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* ---------- auto-resize ---------- */
|
|
341
|
+
let _heightDebounce = null;
|
|
342
|
+
function scheduleHeight() {
|
|
343
|
+
if (_heightDebounce) clearTimeout(_heightDebounce);
|
|
344
|
+
_heightDebounce = setTimeout(function () {
|
|
345
|
+
try {
|
|
346
|
+
window.parent.postMessage({
|
|
347
|
+
__loxia: true, type: 'resize', widgetId: window.__loxiaWidgetId,
|
|
348
|
+
height: Math.ceil(document.body.scrollHeight)
|
|
349
|
+
}, '*');
|
|
350
|
+
} catch (_) {}
|
|
351
|
+
}, 50);
|
|
352
|
+
}
|
|
353
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
354
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
355
|
+
const ro = new ResizeObserver(scheduleHeight);
|
|
356
|
+
ro.observe(document.body);
|
|
357
|
+
});
|
|
358
|
+
} else {
|
|
359
|
+
document.addEventListener('DOMContentLoaded', function () { setTimeout(scheduleHeight, 50); });
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* ---------- prop updates from agent → instance ---------- */
|
|
363
|
+
window.addEventListener('message', function (e) {
|
|
364
|
+
if (!e.data || e.data.__loxia !== true) return;
|
|
365
|
+
if (e.source !== window.parent) return;
|
|
366
|
+
if (e.data.type === 'update' && e.data.props && _rootInstance) {
|
|
367
|
+
try {
|
|
368
|
+
if (typeof _rootInstance.handleUpdate === 'function') {
|
|
369
|
+
_rootInstance.handleUpdate(e.data.props);
|
|
370
|
+
} else if (typeof _rootInstance.setState === 'function') {
|
|
371
|
+
_rootInstance.setState(e.data.props);
|
|
372
|
+
} else {
|
|
373
|
+
// Plain HTMLElement — set attributes and let attributeChangedCallback fire.
|
|
374
|
+
for (const k in e.data.props) {
|
|
375
|
+
if (Object.prototype.hasOwnProperty.call(e.data.props, k)) {
|
|
376
|
+
_rootInstance.setAttribute(k, String(e.data.props[k]));
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
} catch (err) {
|
|
381
|
+
if (window.__loxiaReportError) window.__loxiaReportError(err, 'update');
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
/* ---------- public API ---------- */
|
|
387
|
+
window.LoxiaElement = LoxiaElement;
|
|
388
|
+
window.loxia = window.loxia || {};
|
|
389
|
+
|
|
390
|
+
function uniqueTagName() {
|
|
391
|
+
return 'loxia-w-' + (++_tagCounter) + '-' + Math.random().toString(36).slice(2, 8);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
Object.assign(window.loxia, {
|
|
395
|
+
LoxiaElement: LoxiaElement,
|
|
396
|
+
/**
|
|
397
|
+
* Register the class (with a fresh unique tag), create one instance,
|
|
398
|
+
* and mount it into #root. Agent calls this LAST. Don't call
|
|
399
|
+
* customElements.define yourself — this handles registration.
|
|
400
|
+
*/
|
|
401
|
+
render: function (ElementClass, initialProps) {
|
|
402
|
+
if (typeof ElementClass !== 'function') {
|
|
403
|
+
throw new Error(
|
|
404
|
+
'loxia.render expects a class (extends LoxiaElement or HTMLElement). ' +
|
|
405
|
+
'Got: ' + typeof ElementClass + '. ' +
|
|
406
|
+
'Define your class then call loxia.render(YourClass, initialProps).'
|
|
407
|
+
);
|
|
408
|
+
}
|
|
409
|
+
// Pre-flight: prototype-chain check. customElements.define is
|
|
410
|
+
// permissive in some implementations and accepts classes that
|
|
411
|
+
// aren't HTMLElement subclasses (jsdom). Catching it ourselves
|
|
412
|
+
// means the agent sees a NAMED, actionable error.
|
|
413
|
+
if (!(ElementClass.prototype instanceof HTMLElement) && ElementClass.prototype !== HTMLElement.prototype) {
|
|
414
|
+
throw new Error(
|
|
415
|
+
'loxia.render expects a class that extends HTMLElement (or LoxiaElement, which is an HTMLElement subclass). ' +
|
|
416
|
+
'Your class does NOT. Rewrite as: class YourWidget extends LoxiaElement { template(state) { ... } }.'
|
|
417
|
+
);
|
|
418
|
+
}
|
|
419
|
+
const tagName = uniqueTagName();
|
|
420
|
+
try {
|
|
421
|
+
customElements.define(tagName, ElementClass);
|
|
422
|
+
} catch (err) {
|
|
423
|
+
throw new Error(
|
|
424
|
+
'customElements.define failed: ' + err.message + '. ' +
|
|
425
|
+
'If your class already calls customElements.define(...) itself, remove that line — loxia.render handles registration.'
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
const instance = document.createElement(tagName);
|
|
429
|
+
// Seed initial state. For LoxiaElement: use setState (or assign so
|
|
430
|
+
// connectedCallback's render uses the seed). For raw HTMLElement:
|
|
431
|
+
// set as attributes (the standard web-component idiom).
|
|
432
|
+
const props = initialProps || {};
|
|
433
|
+
if (instance instanceof LoxiaElement) {
|
|
434
|
+
// Assign before connectedCallback fires so first render sees the seed.
|
|
435
|
+
instance.state = Object.assign({}, instance.state || {}, props);
|
|
436
|
+
} else {
|
|
437
|
+
for (const k in props) {
|
|
438
|
+
if (Object.prototype.hasOwnProperty.call(props, k)) {
|
|
439
|
+
instance.setAttribute(k, String(props[k]));
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
const root = document.getElementById('root') || document.body;
|
|
444
|
+
root.innerHTML = '';
|
|
445
|
+
root.appendChild(instance);
|
|
446
|
+
_rootInstance = instance;
|
|
447
|
+
return instance;
|
|
448
|
+
},
|
|
449
|
+
sendEvent: function (evt) {
|
|
450
|
+
try {
|
|
451
|
+
window.parent.postMessage({
|
|
452
|
+
__loxia: true, type: 'event', widgetId: window.__loxiaWidgetId, payload: evt
|
|
453
|
+
}, '*');
|
|
454
|
+
} catch (_) {}
|
|
455
|
+
},
|
|
456
|
+
requestHeight: function (px) {
|
|
457
|
+
try {
|
|
458
|
+
window.parent.postMessage({
|
|
459
|
+
__loxia: true, type: 'resize', widgetId: window.__loxiaWidgetId, height: px
|
|
460
|
+
}, '*');
|
|
461
|
+
} catch (_) {}
|
|
462
|
+
},
|
|
463
|
+
// onUpdate is intentionally NOT mirrored from the JSX runtime —
|
|
464
|
+
// in webcomponent mode, the instance's handleUpdate(props) method
|
|
465
|
+
// is the right hook (instance has its own setState, etc.).
|
|
466
|
+
});
|
|
467
|
+
})();
|
|
468
|
+
`;
|
|
469
|
+
|
|
470
|
+
export default WIDGET_WC_RUNTIME;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Widget schema + validation.
|
|
3
|
+
*
|
|
4
|
+
* Tool actions:
|
|
5
|
+
* render → { widgetId?, kind, content, props? } (creates or replaces)
|
|
6
|
+
* update → { widgetId, props } (replaces props on an existing widget)
|
|
7
|
+
* destroy → { widgetId }
|
|
8
|
+
* list → { }
|
|
9
|
+
*
|
|
10
|
+
* Kinds:
|
|
11
|
+
* 'html' — static HTML+CSS, sandbox="" (no scripts, no forms, no same-origin)
|
|
12
|
+
* 'jsx' — Preact+htm render function, sandbox="allow-scripts" (scripts only)
|
|
13
|
+
*
|
|
14
|
+
* Size limits are deliberately generous for MVP but finite — agents should
|
|
15
|
+
* not be pushing multi-megabyte iframes into the chat feed.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export const WIDGET_LIMITS = {
|
|
19
|
+
MAX_CONTENT_BYTES: 50 * 1024, // 50 KB per widget payload
|
|
20
|
+
MAX_WIDGET_ID_LEN: 128,
|
|
21
|
+
MAX_WIDGETS_PER_AGENT: 50, // LRU-evicted beyond this
|
|
22
|
+
MAX_VERSIONS_PER_WIDGET: 20, // history ring; older versions evicted
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Three kinds:
|
|
26
|
+
// 'html' — static HTML, sandbox="" (no scripts)
|
|
27
|
+
// 'jsx' — Preact + htm runtime; hooks, h(), html``
|
|
28
|
+
// 'webcomponent' — class extends LoxiaElement / HTMLElement; standard
|
|
29
|
+
// web platform APIs only (no JSX, no hooks, no
|
|
30
|
+
// namespace imports). Recommended for interactive
|
|
31
|
+
// widgets — eliminates an entire class of failures
|
|
32
|
+
// rooted in custom-runtime quirks. The JSX path
|
|
33
|
+
// stays for agents that prefer hooks.
|
|
34
|
+
export const WIDGET_KINDS = Object.freeze(['html', 'jsx', 'webcomponent']);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Validate a `render` payload.
|
|
38
|
+
* Returns { valid: true } or { valid: false, error: string }.
|
|
39
|
+
*/
|
|
40
|
+
export function validateRenderParams(params) {
|
|
41
|
+
if (!params || typeof params !== 'object') return { valid: false, error: 'params must be an object' };
|
|
42
|
+
const { kind, content, widgetId, props } = params;
|
|
43
|
+
|
|
44
|
+
if (!WIDGET_KINDS.includes(kind)) {
|
|
45
|
+
return { valid: false, error: `kind must be one of: ${WIDGET_KINDS.join(', ')}` };
|
|
46
|
+
}
|
|
47
|
+
if (typeof content !== 'string' || !content.trim()) {
|
|
48
|
+
return { valid: false, error: 'content (string) is required' };
|
|
49
|
+
}
|
|
50
|
+
if (Buffer.byteLength(content, 'utf8') > WIDGET_LIMITS.MAX_CONTENT_BYTES) {
|
|
51
|
+
return {
|
|
52
|
+
valid: false,
|
|
53
|
+
error: `content exceeds ${WIDGET_LIMITS.MAX_CONTENT_BYTES} bytes — trim or split`,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// kind:'html' is sandbox="" — scripts won't run. Catch this here with a
|
|
57
|
+
// clear named error so the agent doesn't ship a static widget that
|
|
58
|
+
// silently loses its interactivity (browser only logs "Blocked script
|
|
59
|
+
// execution in about:srcdoc … allow-scripts not set" to the iframe
|
|
60
|
+
// console, which the agent never sees).
|
|
61
|
+
if (kind === 'html' && /<script\b/i.test(content)) {
|
|
62
|
+
return {
|
|
63
|
+
valid: false,
|
|
64
|
+
error:
|
|
65
|
+
"kind:'html' is a static-only mode (sandbox=\"\" — scripts are blocked). " +
|
|
66
|
+
"Your content contains a <script> tag, which will not execute. " +
|
|
67
|
+
"Switch to kind:'webcomponent' (recommended) or kind:'jsx' for interactive widgets. " +
|
|
68
|
+
"If you only need styling and layout, remove the <script> tag.",
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (widgetId != null) {
|
|
72
|
+
if (typeof widgetId !== 'string' || widgetId.length === 0 || widgetId.length > WIDGET_LIMITS.MAX_WIDGET_ID_LEN) {
|
|
73
|
+
return { valid: false, error: `widgetId must be a 1..${WIDGET_LIMITS.MAX_WIDGET_ID_LEN}-char string` };
|
|
74
|
+
}
|
|
75
|
+
// Conservative charset: agent-pickable ids, filesystem-safe, URL-safe.
|
|
76
|
+
if (!/^[a-zA-Z0-9._-]+$/.test(widgetId)) {
|
|
77
|
+
return { valid: false, error: 'widgetId may only contain [a-zA-Z0-9._-]' };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (props != null && (typeof props !== 'object' || Array.isArray(props))) {
|
|
81
|
+
return { valid: false, error: 'props, if provided, must be a plain object' };
|
|
82
|
+
}
|
|
83
|
+
return { valid: true };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function validateUpdateParams(params) {
|
|
87
|
+
if (!params || typeof params !== 'object') return { valid: false, error: 'params must be an object' };
|
|
88
|
+
const { widgetId, props } = params;
|
|
89
|
+
if (typeof widgetId !== 'string' || !widgetId) {
|
|
90
|
+
return { valid: false, error: 'widgetId is required' };
|
|
91
|
+
}
|
|
92
|
+
if (props == null || typeof props !== 'object' || Array.isArray(props)) {
|
|
93
|
+
return { valid: false, error: 'props (object) is required' };
|
|
94
|
+
}
|
|
95
|
+
return { valid: true };
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function validateDestroyParams(params) {
|
|
99
|
+
if (!params || typeof params !== 'object') return { valid: false, error: 'params must be an object' };
|
|
100
|
+
if (typeof params.widgetId !== 'string' || !params.widgetId) {
|
|
101
|
+
return { valid: false, error: 'widgetId is required' };
|
|
102
|
+
}
|
|
103
|
+
return { valid: true };
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Validate `list-versions` and `get-version` payloads. Both take a widgetId;
|
|
108
|
+
* `get-version` additionally requires a versionId.
|
|
109
|
+
*/
|
|
110
|
+
export function validateListVersionsParams(params) {
|
|
111
|
+
if (!params || typeof params !== 'object') return { valid: false, error: 'params must be an object' };
|
|
112
|
+
if (typeof params.widgetId !== 'string' || !params.widgetId) {
|
|
113
|
+
return { valid: false, error: 'widgetId is required' };
|
|
114
|
+
}
|
|
115
|
+
return { valid: true };
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function validateGetVersionParams(params) {
|
|
119
|
+
const base = validateListVersionsParams(params);
|
|
120
|
+
if (!base.valid) return base;
|
|
121
|
+
if (typeof params.versionId !== 'string' || !params.versionId) {
|
|
122
|
+
return { valid: false, error: 'versionId is required' };
|
|
123
|
+
}
|
|
124
|
+
return { valid: true };
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* `set-main { widgetId, versionId }` — promote a specific version to be the
|
|
129
|
+
* one rendered when the artifact is opened.
|
|
130
|
+
*/
|
|
131
|
+
export function validateSetMainParams(params) {
|
|
132
|
+
return validateGetVersionParams(params);
|
|
133
|
+
}
|