@cryptiklemur/lattice 5.5.0 → 5.6.1
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/dist/client/assets/{angular-html-Bmjy4gNc.js → angular-html-C161H-h4.js} +1 -1
- package/dist/client/assets/{angular-ts-10l13C4C.js → angular-ts-UejdQitf.js} +1 -1
- package/dist/client/assets/{apl--Bn7yH0T.js → apl-D2krRhBG.js} +1 -1
- package/dist/client/assets/{astro-C8P9TQkP.js → astro-DVKZfvzE.js} +1 -1
- package/dist/client/assets/{blade-DQiHYnIS.js → blade-Dmjp9O4d.js} +1 -1
- package/dist/client/assets/{c-BFny-WnE.js → c-BZ6IuiPf.js} +1 -1
- package/dist/client/assets/{cobol-hGEexMYH.js → cobol-BF2qiDD7.js} +1 -1
- package/dist/client/assets/{coffee-j3W4ZALV.js → coffee-DNKdKLDa.js} +1 -1
- package/dist/client/assets/{cpp-DquWJNps.js → cpp-D4I7nho0.js} +1 -1
- package/dist/client/assets/{crystal-CWL31dIV.js → crystal-DvbJGa3F.js} +1 -1
- package/dist/client/assets/{css-Di4GSq8V.js → css-k5EbtGj0.js} +1 -1
- package/dist/client/assets/{dist-CaJdL3Va.js → dist-J-paO_Ua.js} +2 -2
- package/dist/client/assets/{edge-rK4d050l.js → edge-DaXUGhsZ.js} +1 -1
- package/dist/client/assets/{elixir-BMFKKu5z.js → elixir-D0XiwLVl.js} +1 -1
- package/dist/client/assets/{elm-B0QVlW3-.js → elm-3fMSNcgt.js} +1 -1
- package/dist/client/assets/{erb-C9w9QbhL.js → erb-D2Fp4TPk.js} +1 -1
- package/dist/client/assets/{git-rebase-FaylS7Vl.js → git-rebase-BH552817.js} +1 -1
- package/dist/client/assets/{glimmer-js-Bi2XnbHi.js → glimmer-js-CqOUOgp8.js} +1 -1
- package/dist/client/assets/{glimmer-ts-DOdxK6E6.js → glimmer-ts-D68GJgFk.js} +1 -1
- package/dist/client/assets/{glsl-BiGDIGbZ.js → glsl-Cknt_egz.js} +1 -1
- package/dist/client/assets/{graphql-CZJB8KIP.js → graphql-Cb9Y6gmd.js} +1 -1
- package/dist/client/assets/{hack-CNGYBFqH.js → hack-BFrZLTBg.js} +1 -1
- package/dist/client/assets/{haml-pf3Zh5MH.js → haml-p0cxTqbc.js} +1 -1
- package/dist/client/assets/{handlebars-BsQwsvPC.js → handlebars-CpjLDdsz.js} +1 -1
- package/dist/client/assets/{html-Dj4Hvv69.js → html-CCYH7wc6.js} +1 -1
- package/dist/client/assets/{html-derivative-CE7dQ_mI.js → html-derivative-DEphIJN1.js} +1 -1
- package/dist/client/assets/{http-DjOuMI1u.js → http-2GQCPOno.js} +1 -1
- package/dist/client/assets/{hurl-BH_MQrQo.js → hurl-C5thponb.js} +1 -1
- package/dist/client/assets/{index-DA8ZBSYW.js → index-E1WCz9rn.js} +107 -106
- package/dist/client/assets/{java-CnpykAva.js → java-aCAp8IF1.js} +1 -1
- package/dist/client/assets/{javascript-BbqQ1sQM.js → javascript-CL_Iy9n4.js} +1 -1
- package/dist/client/assets/{jinja-DddpvWwk.js → jinja-Py1l-RL7.js} +1 -1
- package/dist/client/assets/{jison-Bd3G2n4x.js → jison-DH8vzrgr.js} +1 -1
- package/dist/client/assets/{json-F0eTFQKP.js → json-B3-MRuLs.js} +1 -1
- package/dist/client/assets/{jsx-B-wB5nUs.js → jsx-A_kWOEh1.js} +1 -1
- package/dist/client/assets/{julia-9Lfz4b5s.js → julia-D1qOHioL.js} +1 -1
- package/dist/client/assets/{just-BVE1sBJx.js → just-Cp2rqK4b.js} +1 -1
- package/dist/client/assets/{latex-SF3xMSWG.js → latex-BtOQEyF3.js} +1 -1
- package/dist/client/assets/{liquid-CLkbZ0ZV.js → liquid-DJbfjPLK.js} +1 -1
- package/dist/client/assets/{lua-DNph6TL8.js → lua-GmcXPR1B.js} +1 -1
- package/dist/client/assets/{marko-CGqdEtbF.js → marko-_792ZFlg.js} +1 -1
- package/dist/client/assets/{mdc-BLpzcq82.js → mdc-CD8aKOmr.js} +1 -1
- package/dist/client/assets/{nginx-s7ciyZD1.js → nginx-CbcVooTf.js} +1 -1
- package/dist/client/assets/{nim-C4FeZI3R.js → nim-C_9nhkxr.js} +1 -1
- package/dist/client/assets/{perl-GDfD5AIi.js → perl-BCX7fFX1.js} +1 -1
- package/dist/client/assets/{php-CusAuy6y.js → php-DD4kvY2Z.js} +1 -1
- package/dist/client/assets/{pug-DCKuXO7x.js → pug-Cm2QOZay.js} +1 -1
- package/dist/client/assets/{qml-rp1ZHoeo.js → qml-OUZ1t0j7.js} +1 -1
- package/dist/client/assets/{r-CwNbYaVb.js → r-DFfZp_OL.js} +1 -1
- package/dist/client/assets/{razor-CinY5yf4.js → razor-BuydI9-z.js} +1 -1
- package/dist/client/assets/{regexp-CxVI4rKV.js → regexp-BqwfzS-e.js} +1 -1
- package/dist/client/assets/{rst-BrBmBgUr.js → rst-CUEfE6pZ.js} +1 -1
- package/dist/client/assets/{ruby-BzNCpRio.js → ruby-8x8dx_pO.js} +1 -1
- package/dist/client/assets/{sas-B4IAap7m.js → sas-BSAoQexz.js} +1 -1
- package/dist/client/assets/{scss-eNAsUEA1.js → scss-Dixbfurt.js} +1 -1
- package/dist/client/assets/{shellscript-BwH0aChW.js → shellscript-DMo0DXSS.js} +1 -1
- package/dist/client/assets/{shellsession-B5ibJBbh.js → shellsession-BqlA3Xqy.js} +1 -1
- package/dist/client/assets/{soy-BrqReQP3.js → soy-1CvxH5kF.js} +1 -1
- package/dist/client/assets/{sql-KIDgTieS.js → sql-DwXIPc_O.js} +1 -1
- package/dist/client/assets/{stata-D6yim7Rr.js → stata-Cx86EID2.js} +1 -1
- package/dist/client/assets/{surrealql-C51iMPEA.js → surrealql-Cw-uWD-Y.js} +1 -1
- package/dist/client/assets/{svelte-DYs5QSVt.js → svelte-sEvqGFi5.js} +1 -1
- package/dist/client/assets/{templ-CLDdaEXl.js → templ-Bz8ry2Df.js} +1 -1
- package/dist/client/assets/{tex-D16HBCoj.js → tex-0h5ZXQmm.js} +1 -1
- package/dist/client/assets/{ts-tags-DTcB2bBd.js → ts-tags-DtGMDbRm.js} +1 -1
- package/dist/client/assets/{tsx-BxGfVt8a.js → tsx-CYAi0Kbl.js} +1 -1
- package/dist/client/assets/{twig-BUC08jwe.js → twig-DXmk5qdI.js} +1 -1
- package/dist/client/assets/{typescript-CuPGT2MR.js → typescript-Dxx5i3xN.js} +1 -1
- package/dist/client/assets/{vue-_ip8-SIk.js → vue-BOO_0xW-.js} +1 -1
- package/dist/client/assets/{vue-html-D-I9-U-x.js → vue-html-DzIwXjLx.js} +1 -1
- package/dist/client/assets/{vue-vine-7AONB1tt.js → vue-vine-BQ-DHKIR.js} +1 -1
- package/dist/client/assets/{xml-D2ZUDsPU.js → xml-DvKkhtkD.js} +1 -1
- package/dist/client/assets/{xsl-GlFKKlLy.js → xsl-DmziSW-K.js} +1 -1
- package/dist/client/assets/{yaml-BnuTxWck.js → yaml-ClkG7vzs.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/sw.js +1 -1
- package/dist/server/daemon.js +60 -27
- package/dist/server/handlers/attachment.js +66 -29
- package/dist/server/handlers/fs.js +58 -72
- package/dist/server/handlers/memory.js +37 -52
- package/dist/server/handlers/mesh.js +4 -1
- package/dist/server/handlers/session.js +38 -57
- package/dist/server/mesh/connector.js +85 -1
- package/dist/server/project/file-browser.js +14 -14
- package/dist/server/project/session.js +7 -4
- package/dist/server/ws/broadcast.js +60 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./index-
|
|
1
|
+
import{l as e}from"./index-E1WCz9rn.js";import{t}from"./java-aCAp8IF1.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"-->","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}`)),i=[...t,r];export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./xml-
|
|
1
|
+
import{t as e}from"./xml-DvKkhtkD.js";var t=Object.freeze(JSON.parse(`{"displayName":"XSL","name":"xsl","patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-0-9A-Z_a-z]+)((:)))?([-A-Za-z]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}},"scopeName":"text.xml.xsl","embeddedLangs":["xml"]}`)),n=[...e,t];export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./index-DA8ZBSYW.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
|
|
1
|
+
import{l as e}from"./index-E1WCz9rn.js";var t=e({default:()=>n}),n=[Object.freeze(JSON.parse(`{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&'*,:>?@\\\\[\`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"''","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}`))];export{t as n,n as t};
|
package/dist/client/index.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
14
14
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
15
15
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet" />
|
|
16
|
-
<script type="module" crossorigin src="/assets/index-
|
|
16
|
+
<script type="module" crossorigin src="/assets/index-E1WCz9rn.js"></script>
|
|
17
17
|
<link rel="stylesheet" crossorigin href="/assets/index-DcwXjiH0.css">
|
|
18
18
|
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
|
|
19
19
|
<body>
|
package/dist/client/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let s,l={};const e=(e,r)=>(e=new URL(e+".js",r).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(l[n])return;let u={};const a=s=>e(s,n),t={module:{uri:n},exports:u,require:a};l[n]=Promise.all(r.map(s=>t[s]||a(s))).then(s=>(i(...s),u))}}define(["./workbox-b51dd497"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"sw-push.js",revision:"93d6795fc272b3320188e15e9f4d23aa"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"4c3197441e6eca39b1d0e1d16d4a54a7"},{url:"favicon.svg",revision:"abe2d9941c25fa1f4db33186105e23f0"},{url:"icons/icon-512.svg",revision:"566480514fd76a4e370c4c50969f0754"},{url:"icons/icon-192.svg",revision:"9fadf634affbcb9c42c643b60504b4e6"},{url:"assets/zig-BlD2NI35.js",revision:null},{url:"assets/zenscript-x7PXwj2_.js",revision:null},{url:"assets/yaml-BnuTxWck.js",revision:null},{url:"assets/xsl-GlFKKlLy.js",revision:null},{url:"assets/xml-D2ZUDsPU.js",revision:null},{url:"assets/wolfram-DMhXlmnL.js",revision:null},{url:"assets/wit-Dk1fPIaK.js",revision:null},{url:"assets/wikitext-Axug2vPC.js",revision:null},{url:"assets/wgsl-BmWpQFqb.js",revision:null},{url:"assets/wenyan-GlRgAbTB.js",revision:null},{url:"assets/wasm-DiIFv9DE.js",revision:null},{url:"assets/wasm-CoVafRYN.js",revision:null},{url:"assets/vyper-D08CaD4o.js",revision:null},{url:"assets/vue-vine-7AONB1tt.js",revision:null},{url:"assets/vue-html-D-I9-U-x.js",revision:null},{url:"assets/vue-_ip8-SIk.js",revision:null},{url:"assets/vitesse-light-ThZGgLQK.js",revision:null},{url:"assets/vitesse-dark-COrLBgkv.js",revision:null},{url:"assets/vitesse-black-CUBzmgJa.js",revision:null},{url:"assets/viml-C8vROCgw.js",revision:null},{url:"assets/vhdl-DBoxxi7I.js",revision:null},{url:"assets/vesper-BDlBlJR-.js",revision:null},{url:"assets/verilog-BxybH_AY.js",revision:null},{url:"assets/vb-DUBgqZ02.js",revision:null},{url:"assets/vala-DYqHmNOK.js",revision:null},{url:"assets/v-CfOPGXPl.js",revision:null},{url:"assets/typst-C0VS9TQm.js",revision:null},{url:"assets/typespec-CHOxKRtr.js",revision:null},{url:"assets/typescript-CuPGT2MR.js",revision:null},{url:"assets/twig-BUC08jwe.js",revision:null},{url:"assets/turtle-DdFFvP5J.js",revision:null},{url:"assets/tsx-BxGfVt8a.js",revision:null},{url:"assets/tsv-DYxH1-vL.js",revision:null},{url:"assets/ts-tags-DTcB2bBd.js",revision:null},{url:"assets/toml-CpHBCfVl.js",revision:null},{url:"assets/tokyo-night-BZt2NwCl.js",revision:null},{url:"assets/tex-D16HBCoj.js",revision:null},{url:"assets/terraform-BgPqtSWN.js",revision:null},{url:"assets/templ-CLDdaEXl.js",revision:null},{url:"assets/tcl-CQgtyMkG.js",revision:null},{url:"assets/tasl-BzcMwPTS.js",revision:null},{url:"assets/talonscript-l0qUQn2r.js",revision:null},{url:"assets/systemd-BBVr_qxh.js",revision:null},{url:"assets/system-verilog-BnyrpGlO.js",revision:null},{url:"assets/synthwave-84-ybvkLGau.js",revision:null},{url:"assets/swift-BXoR6L-y.js",revision:null},{url:"assets/svelte-DYs5QSVt.js",revision:null},{url:"assets/surrealql-C51iMPEA.js",revision:null},{url:"assets/stylus-mNYBrtqL.js",revision:null},{url:"assets/stata-D6yim7Rr.js",revision:null},{url:"assets/ssh-config-DqmSAS3N.js",revision:null},{url:"assets/sql-KIDgTieS.js",revision:null},{url:"assets/splunk-mpBjmHRA.js",revision:null},{url:"assets/sparql-nVt1Q8sD.js",revision:null},{url:"assets/soy-BrqReQP3.js",revision:null},{url:"assets/solidity-CaEDdWYR.js",revision:null},{url:"assets/solarized-light-wzNWfjF2.js",revision:null},{url:"assets/solarized-dark--ZJpQY8O.js",revision:null},{url:"assets/snazzy-light-C9Bzvwcg.js",revision:null},{url:"assets/smalltalk-C1k1DVft.js",revision:null},{url:"assets/slack-ochin-DaA1aBiy.js",revision:null},{url:"assets/slack-dark-BeQrlvP4.js",revision:null},{url:"assets/shellsession-B5ibJBbh.js",revision:null},{url:"assets/shellscript-BwH0aChW.js",revision:null},{url:"assets/shaderlab-C5utLNvK.js",revision:null},{url:"assets/sdbl-TUdAkzzL.js",revision:null},{url:"assets/scss-eNAsUEA1.js",revision:null},{url:"assets/scheme-Bv8vdcS_.js",revision:null},{url:"assets/scala-BADlfUbE.js",revision:null},{url:"assets/sass-CKkv3rB4.js",revision:null},{url:"assets/sas-B4IAap7m.js",revision:null},{url:"assets/rust-CAON_J-7.js",revision:null},{url:"assets/ruby-BzNCpRio.js",revision:null},{url:"assets/rst-BrBmBgUr.js",revision:null},{url:"assets/rosmsg-Bie95NPX.js",revision:null},{url:"assets/rose-pine-moon-CQrvtQEF.js",revision:null},{url:"assets/rose-pine-dawn-CeS_2jlO.js",revision:null},{url:"assets/rose-pine-Dd0RAvir.js",revision:null},{url:"assets/ron-D5BrJbC5.js",revision:null},{url:"assets/riscv-xyAKa3qa.js",revision:null},{url:"assets/rel-SUS6CYTF.js",revision:null},{url:"assets/regexp-CxVI4rKV.js",revision:null},{url:"assets/reg-CHsE82Pk.js",revision:null},{url:"assets/red-Cj1vpJ_n.js",revision:null},{url:"assets/razor-CinY5yf4.js",revision:null},{url:"assets/raku-D9dEetfn.js",revision:null},{url:"assets/racket-CA2oKVL1.js",revision:null},{url:"assets/r-CwNbYaVb.js",revision:null},{url:"assets/qss-CvW7b9vz.js",revision:null},{url:"assets/qmldir-CDe6ORFD.js",revision:null},{url:"assets/qml-rp1ZHoeo.js",revision:null},{url:"assets/python-xLLWlBd0.js",revision:null},{url:"assets/purescript-B_tjgp5s.js",revision:null},{url:"assets/puppet-BLvi8DVC.js",revision:null},{url:"assets/pug-DCKuXO7x.js",revision:null},{url:"assets/proto-BqsNb_Ru.js",revision:null},{url:"assets/prolog-DcNkIfZZ.js",revision:null},{url:"assets/prisma-C4wKi9Xs.js",revision:null},{url:"assets/powershell-CeNh_gMu.js",revision:null},{url:"assets/powerquery-BNMZnWRc.js",revision:null},{url:"assets/postcss-BgFCg0uM.js",revision:null},{url:"assets/polar-DcGwqI2v.js",revision:null},{url:"assets/poimandres-DdZFFINT.js",revision:null},{url:"assets/po-BNFx8QMG.js",revision:null},{url:"assets/plsql-CgEVu7mV.js",revision:null},{url:"assets/plastic-Dd1-4HJb.js",revision:null},{url:"assets/pkl-DtSDxyR8.js",revision:null},{url:"assets/php-CusAuy6y.js",revision:null},{url:"assets/perl-GDfD5AIi.js",revision:null},{url:"assets/pascal-BvJwb9Ca.js",revision:null},{url:"assets/openscad-C-XxCD_t.js",revision:null},{url:"assets/one-light-27sfjFDM.js",revision:null},{url:"assets/one-dark-pro-CLMO01es.js",revision:null},{url:"assets/odin-BUZTfc03.js",revision:null},{url:"assets/ocaml-Ddt3E4VO.js",revision:null},{url:"assets/objective-cpp-D96wcRis.js",revision:null},{url:"assets/objective-c-mc6rHp-y.js",revision:null},{url:"assets/nushell-BBFYNdNE.js",revision:null},{url:"assets/nord-CbYaE7ZY.js",revision:null},{url:"assets/nix-DE1Q2B1F.js",revision:null},{url:"assets/nim-C4FeZI3R.js",revision:null},{url:"assets/night-owl-light-gVSh6ltn.js",revision:null},{url:"assets/night-owl-DnKT96OJ.js",revision:null},{url:"assets/nginx-s7ciyZD1.js",revision:null},{url:"assets/nextflow-groovy-CUrXbMOF.js",revision:null},{url:"assets/nextflow-DXxhyYjQ.js",revision:null},{url:"assets/narrat-Bn_PlXDl.js",revision:null},{url:"assets/move--lg8RSZu.js",revision:null},{url:"assets/moonbit-c7XV1V8w.js",revision:null},{url:"assets/monokai-DZSWSdmN.js",revision:null},{url:"assets/mojo-D3ai4ATt.js",revision:null},{url:"assets/mipsasm-D3Vr1VJI.js",revision:null},{url:"assets/min-light-lr1QiEOE.js",revision:null},{url:"assets/min-dark-DK6uq44k.js",revision:null},{url:"assets/mermaid-Bk1sayFm.js",revision:null},{url:"assets/mdx-Crds6sJw.js",revision:null},{url:"assets/mdc-BLpzcq82.js",revision:null},{url:"assets/matlab-Cz4xBfaA.js",revision:null},{url:"assets/material-theme-palenight-W0qbGyud.js",revision:null},{url:"assets/material-theme-ocean-BnNk1wNQ.js",revision:null},{url:"assets/material-theme-lighter-L4j3qddN.js",revision:null},{url:"assets/material-theme-kX26WiJU.js",revision:null},{url:"assets/material-theme-darker-yvetTWEr.js",revision:null},{url:"assets/marko-CGqdEtbF.js",revision:null},{url:"assets/markdown-hfQzyr6v.js",revision:null},{url:"assets/make-DLuqI3Sa.js",revision:null},{url:"assets/luau-D9oeBRnv.js",revision:null},{url:"assets/lua-DNph6TL8.js",revision:null},{url:"assets/logo-BsxZM_eb.js",revision:null},{url:"assets/log-JKbKuM4J.js",revision:null},{url:"assets/llvm-DtrwjsAs.js",revision:null},{url:"assets/liquid-CLkbZ0ZV.js",revision:null},{url:"assets/light-plus-Ch1Usv7R.js",revision:null},{url:"assets/less-B9RQiV1N.js",revision:null},{url:"assets/lean-CvyEisyW.js",revision:null},{url:"assets/latex-SF3xMSWG.js",revision:null},{url:"assets/laserwave-Bbquw0Nf.js",revision:null},{url:"assets/kusto-Cpu9Tdho.js",revision:null},{url:"assets/kotlin-d6oenWPH.js",revision:null},{url:"assets/kdl-BQl-X5Uf.js",revision:null},{url:"assets/kanagawa-wave-DFO_g5Mb.js",revision:null},{url:"assets/kanagawa-lotus-qAvw6eOU.js",revision:null},{url:"assets/kanagawa-dragon-DLDXA4f2.js",revision:null},{url:"assets/just-BVE1sBJx.js",revision:null},{url:"assets/julia-9Lfz4b5s.js",revision:null},{url:"assets/jsx-B-wB5nUs.js",revision:null},{url:"assets/jssm-CBV9_O8o.js",revision:null},{url:"assets/jsonnet-DH4UkOBo.js",revision:null},{url:"assets/jsonl-DkF3QjsY.js",revision:null},{url:"assets/jsonc-C9b23pMf.js",revision:null},{url:"assets/json5-Dl8gAgq4.js",revision:null},{url:"assets/json-F0eTFQKP.js",revision:null},{url:"assets/jison-Bd3G2n4x.js",revision:null},{url:"assets/jinja-DddpvWwk.js",revision:null},{url:"assets/javascript-BbqQ1sQM.js",revision:null},{url:"assets/java-CnpykAva.js",revision:null},{url:"assets/ini-2Ew1Qzj6.js",revision:null},{url:"assets/index-DcwXjiH0.css",revision:null},{url:"assets/index-DA8ZBSYW.js",revision:null},{url:"assets/imba-CPCwfD-G.js",revision:null},{url:"assets/hy-uAHU8420.js",revision:null},{url:"assets/hxml-Bdi_kWeE.js",revision:null},{url:"assets/hurl-BH_MQrQo.js",revision:null},{url:"assets/http-DjOuMI1u.js",revision:null},{url:"assets/html-derivative-CE7dQ_mI.js",revision:null},{url:"assets/html-Dj4Hvv69.js",revision:null},{url:"assets/houston-DSlR9wH9.js",revision:null},{url:"assets/horizon-bright-CPVackS9.js",revision:null},{url:"assets/horizon-DMOEeSnA.js",revision:null},{url:"assets/hlsl-JhqkHhML.js",revision:null},{url:"assets/hjson-B4b85MZo.js",revision:null},{url:"assets/hcl-C1fs3gTM.js",revision:null},{url:"assets/haxe-wLDEcRoz.js",revision:null},{url:"assets/haskell-DzEtL6Zk.js",revision:null},{url:"assets/handlebars-BsQwsvPC.js",revision:null},{url:"assets/haml-pf3Zh5MH.js",revision:null},{url:"assets/hack-CNGYBFqH.js",revision:null},{url:"assets/gruvbox-light-soft-CVIZMKFx.js",revision:null},{url:"assets/gruvbox-light-medium-Ba-VIg48.js",revision:null},{url:"assets/gruvbox-light-hard-DV9RwKs4.js",revision:null},{url:"assets/gruvbox-dark-soft-DUyKWd02.js",revision:null},{url:"assets/gruvbox-dark-medium-Dn18r-Yz.js",revision:null},{url:"assets/gruvbox-dark-hard-CBFL_VqK.js",revision:null},{url:"assets/groovy-bfrzFpSZ.js",revision:null},{url:"assets/graphql-CZJB8KIP.js",revision:null},{url:"assets/go-TqNfhUhh.js",revision:null},{url:"assets/gnuplot-CcsFlqcz.js",revision:null},{url:"assets/gn-EcrZPIZo.js",revision:null},{url:"assets/glsl-BiGDIGbZ.js",revision:null},{url:"assets/glimmer-ts-DOdxK6E6.js",revision:null},{url:"assets/glimmer-js-Bi2XnbHi.js",revision:null},{url:"assets/gleam-7UVjplRF.js",revision:null},{url:"assets/github-light-high-contrast-Cvzq8ZXJ.js",revision:null},{url:"assets/github-light-default-dl7biQ4g.js",revision:null},{url:"assets/github-light-BRTmX4Ht.js",revision:null},{url:"assets/github-dark-high-contrast-CM0RRMCj.js",revision:null},{url:"assets/github-dark-dimmed-D8UZ8uTL.js",revision:null},{url:"assets/github-dark-default-BroO-mT3.js",revision:null},{url:"assets/github-dark-DQp1Qkx5.js",revision:null},{url:"assets/git-rebase-FaylS7Vl.js",revision:null},{url:"assets/git-commit-a3TktZ3A.js",revision:null},{url:"assets/gherkin-CPELKal0.js",revision:null},{url:"assets/genie-khT2hrp-.js",revision:null},{url:"assets/gdshader-DkUeC1ld.js",revision:null},{url:"assets/gdscript-DDro0rs8.js",revision:null},{url:"assets/gdresource-DkI-mZL2.js",revision:null},{url:"assets/fsharp-uxIU8dwY.js",revision:null},{url:"assets/fortran-free-form-Bw_JZ1tj.js",revision:null},{url:"assets/fortran-fixed-form-BXvkHMbK.js",revision:null},{url:"assets/fluent-B_In4uB6.js",revision:null},{url:"assets/fish-D2X4h_sR.js",revision:null},{url:"assets/fennel-CH1ohGYX.js",revision:null},{url:"assets/everforest-light-CpIbZ9aT.js",revision:null},{url:"assets/everforest-dark-BhFNrp2k.js",revision:null},{url:"assets/erlang-LvhGhZI3.js",revision:null},{url:"assets/erb-C9w9QbhL.js",revision:null},{url:"assets/emacs-lisp-DFyMFAZA.js",revision:null},{url:"assets/elm-B0QVlW3-.js",revision:null},{url:"assets/elixir-BMFKKu5z.js",revision:null},{url:"assets/edge-rK4d050l.js",revision:null},{url:"assets/dream-maker-D6UB367x.js",revision:null},{url:"assets/dracula-soft-CuGBZj_h.js",revision:null},{url:"assets/dracula-CBD4ckb0.js",revision:null},{url:"assets/dotenv-C0epktMv.js",revision:null},{url:"assets/docker-9Zbx0dQX.js",revision:null},{url:"assets/dist-CaJdL3Va.js",revision:null},{url:"assets/diff-B7rhrwA5.js",revision:null},{url:"assets/desktop-BEul_kAS.js",revision:null},{url:"assets/dax-BvrCypuS.js",revision:null},{url:"assets/dart-DxXbDeKR.js",revision:null},{url:"assets/dark-plus-BMwvn5lx.js",revision:null},{url:"assets/d-BvLF4qGs.js",revision:null},{url:"assets/cypher-CJUzJAhQ.js",revision:null},{url:"assets/cue-CMabdDG0.js",revision:null},{url:"assets/csv-DGwgERVJ.js",revision:null},{url:"assets/css-Di4GSq8V.js",revision:null},{url:"assets/csharp-Kzd7Ey2d.js",revision:null},{url:"assets/crystal-CWL31dIV.js",revision:null},{url:"assets/cpp-DquWJNps.js",revision:null},{url:"assets/coq-Ddo7YIsR.js",revision:null},{url:"assets/common-lisp-BCx4dVK8.js",revision:null},{url:"assets/coffee-j3W4ZALV.js",revision:null},{url:"assets/codeql-CjS8Tp16.js",revision:null},{url:"assets/codeowners-CBvEPOlS.js",revision:null},{url:"assets/cobol-hGEexMYH.js",revision:null},{url:"assets/cmake-DM0FE-T9.js",revision:null},{url:"assets/clojure-Bcw7lCta.js",revision:null},{url:"assets/clarity-BbUNTPrg.js",revision:null},{url:"assets/catppuccin-mocha-5vkMJ1Mb.js",revision:null},{url:"assets/catppuccin-macchiato-D8VB2qi4.js",revision:null},{url:"assets/catppuccin-latte-B_oiWZka.js",revision:null},{url:"assets/catppuccin-frappe-DQrU04q0.js",revision:null},{url:"assets/cairo-CaIu88t6.js",revision:null},{url:"assets/cadence-CCTSwj3w.js",revision:null},{url:"assets/c3-Dx2gByXW.js",revision:null},{url:"assets/c-BFny-WnE.js",revision:null},{url:"assets/bsl-BRmzGEWg.js",revision:null},{url:"assets/blade-DQiHYnIS.js",revision:null},{url:"assets/bird2-mieRHotO.js",revision:null},{url:"assets/bicep-CugTE5CQ.js",revision:null},{url:"assets/bibtex-Hs7VvQaV.js",revision:null},{url:"assets/berry-B29XeKK4.js",revision:null},{url:"assets/beancount-D84pBacF.js",revision:null},{url:"assets/bat-cyb3gF8B.js",revision:null},{url:"assets/ballerina-H14_EqPr.js",revision:null},{url:"assets/ayu-mirage-Dji5RWiH.js",revision:null},{url:"assets/ayu-light-lHqf0ddo.js",revision:null},{url:"assets/ayu-dark-DpNcORnA.js",revision:null},{url:"assets/awk-D1ZOsISX.js",revision:null},{url:"assets/aurora-x-DTcNXZIS.js",revision:null},{url:"assets/astro-C8P9TQkP.js",revision:null},{url:"assets/asm-ClIKbvsu.js",revision:null},{url:"assets/asciidoc-BkmPq932.js",revision:null},{url:"assets/ara-DMoCP0pJ.js",revision:null},{url:"assets/applescript-D4zGaScB.js",revision:null},{url:"assets/apl--Bn7yH0T.js",revision:null},{url:"assets/apex-DOfNfL0V.js",revision:null},{url:"assets/apache-CE7PmWoU.js",revision:null},{url:"assets/angular-ts-10l13C4C.js",revision:null},{url:"assets/angular-html-Bmjy4gNc.js",revision:null},{url:"assets/andromeeda-LdzAHaKR.js",revision:null},{url:"assets/ada-C6m8O36S.js",revision:null},{url:"assets/actionscript-3-D_b0n2Ff.js",revision:null},{url:"assets/abap-DOv5zRgd.js",revision:null},{url:"icons/icon-192.svg",revision:"9fadf634affbcb9c42c643b60504b4e6"},{url:"icons/icon-512.svg",revision:"566480514fd76a4e370c4c50969f0754"},{url:"manifest.webmanifest",revision:"fe5dde98414290ad728b4906404e7fbf"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/ws/,/^\/api/]})),s.registerRoute(/^https?:\/\/.*\.(?:js|css|woff2)$/,new s.NetworkFirst({cacheName:"static-assets",networkTimeoutSeconds:3,plugins:[new s.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800})]}),"GET"),s.registerRoute(/^https?:\/\/.*\.(?:svg|png|jpg|jpeg|gif|webp)$/,new s.NetworkFirst({cacheName:"images",networkTimeoutSeconds:3,plugins:[new s.ExpirationPlugin({maxEntries:50,maxAgeSeconds:604800})]}),"GET")});
|
|
1
|
+
if(!self.define){let s,l={};const e=(e,r)=>(e=new URL(e+".js",r).href,l[e]||new Promise(l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()}).then(()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s}));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(l[n])return;let u={};const a=s=>e(s,n),t={module:{uri:n},exports:u,require:a};l[n]=Promise.all(r.map(s=>t[s]||a(s))).then(s=>(i(...s),u))}}define(["./workbox-b51dd497"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"sw-push.js",revision:"93d6795fc272b3320188e15e9f4d23aa"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"5f5641e3d9b44e666c256569c04a5416"},{url:"favicon.svg",revision:"abe2d9941c25fa1f4db33186105e23f0"},{url:"icons/icon-512.svg",revision:"566480514fd76a4e370c4c50969f0754"},{url:"icons/icon-192.svg",revision:"9fadf634affbcb9c42c643b60504b4e6"},{url:"assets/zig-BlD2NI35.js",revision:null},{url:"assets/zenscript-x7PXwj2_.js",revision:null},{url:"assets/yaml-ClkG7vzs.js",revision:null},{url:"assets/xsl-DmziSW-K.js",revision:null},{url:"assets/xml-DvKkhtkD.js",revision:null},{url:"assets/wolfram-DMhXlmnL.js",revision:null},{url:"assets/wit-Dk1fPIaK.js",revision:null},{url:"assets/wikitext-Axug2vPC.js",revision:null},{url:"assets/wgsl-BmWpQFqb.js",revision:null},{url:"assets/wenyan-GlRgAbTB.js",revision:null},{url:"assets/wasm-DiIFv9DE.js",revision:null},{url:"assets/wasm-CoVafRYN.js",revision:null},{url:"assets/vyper-D08CaD4o.js",revision:null},{url:"assets/vue-vine-BQ-DHKIR.js",revision:null},{url:"assets/vue-html-DzIwXjLx.js",revision:null},{url:"assets/vue-BOO_0xW-.js",revision:null},{url:"assets/vitesse-light-ThZGgLQK.js",revision:null},{url:"assets/vitesse-dark-COrLBgkv.js",revision:null},{url:"assets/vitesse-black-CUBzmgJa.js",revision:null},{url:"assets/viml-C8vROCgw.js",revision:null},{url:"assets/vhdl-DBoxxi7I.js",revision:null},{url:"assets/vesper-BDlBlJR-.js",revision:null},{url:"assets/verilog-BxybH_AY.js",revision:null},{url:"assets/vb-DUBgqZ02.js",revision:null},{url:"assets/vala-DYqHmNOK.js",revision:null},{url:"assets/v-CfOPGXPl.js",revision:null},{url:"assets/typst-C0VS9TQm.js",revision:null},{url:"assets/typespec-CHOxKRtr.js",revision:null},{url:"assets/typescript-Dxx5i3xN.js",revision:null},{url:"assets/twig-DXmk5qdI.js",revision:null},{url:"assets/turtle-DdFFvP5J.js",revision:null},{url:"assets/tsx-CYAi0Kbl.js",revision:null},{url:"assets/tsv-DYxH1-vL.js",revision:null},{url:"assets/ts-tags-DtGMDbRm.js",revision:null},{url:"assets/toml-CpHBCfVl.js",revision:null},{url:"assets/tokyo-night-BZt2NwCl.js",revision:null},{url:"assets/tex-0h5ZXQmm.js",revision:null},{url:"assets/terraform-BgPqtSWN.js",revision:null},{url:"assets/templ-Bz8ry2Df.js",revision:null},{url:"assets/tcl-CQgtyMkG.js",revision:null},{url:"assets/tasl-BzcMwPTS.js",revision:null},{url:"assets/talonscript-l0qUQn2r.js",revision:null},{url:"assets/systemd-BBVr_qxh.js",revision:null},{url:"assets/system-verilog-BnyrpGlO.js",revision:null},{url:"assets/synthwave-84-ybvkLGau.js",revision:null},{url:"assets/swift-BXoR6L-y.js",revision:null},{url:"assets/svelte-sEvqGFi5.js",revision:null},{url:"assets/surrealql-Cw-uWD-Y.js",revision:null},{url:"assets/stylus-mNYBrtqL.js",revision:null},{url:"assets/stata-Cx86EID2.js",revision:null},{url:"assets/ssh-config-DqmSAS3N.js",revision:null},{url:"assets/sql-DwXIPc_O.js",revision:null},{url:"assets/splunk-mpBjmHRA.js",revision:null},{url:"assets/sparql-nVt1Q8sD.js",revision:null},{url:"assets/soy-1CvxH5kF.js",revision:null},{url:"assets/solidity-CaEDdWYR.js",revision:null},{url:"assets/solarized-light-wzNWfjF2.js",revision:null},{url:"assets/solarized-dark--ZJpQY8O.js",revision:null},{url:"assets/snazzy-light-C9Bzvwcg.js",revision:null},{url:"assets/smalltalk-C1k1DVft.js",revision:null},{url:"assets/slack-ochin-DaA1aBiy.js",revision:null},{url:"assets/slack-dark-BeQrlvP4.js",revision:null},{url:"assets/shellsession-BqlA3Xqy.js",revision:null},{url:"assets/shellscript-DMo0DXSS.js",revision:null},{url:"assets/shaderlab-C5utLNvK.js",revision:null},{url:"assets/sdbl-TUdAkzzL.js",revision:null},{url:"assets/scss-Dixbfurt.js",revision:null},{url:"assets/scheme-Bv8vdcS_.js",revision:null},{url:"assets/scala-BADlfUbE.js",revision:null},{url:"assets/sass-CKkv3rB4.js",revision:null},{url:"assets/sas-BSAoQexz.js",revision:null},{url:"assets/rust-CAON_J-7.js",revision:null},{url:"assets/ruby-8x8dx_pO.js",revision:null},{url:"assets/rst-CUEfE6pZ.js",revision:null},{url:"assets/rosmsg-Bie95NPX.js",revision:null},{url:"assets/rose-pine-moon-CQrvtQEF.js",revision:null},{url:"assets/rose-pine-dawn-CeS_2jlO.js",revision:null},{url:"assets/rose-pine-Dd0RAvir.js",revision:null},{url:"assets/ron-D5BrJbC5.js",revision:null},{url:"assets/riscv-xyAKa3qa.js",revision:null},{url:"assets/rel-SUS6CYTF.js",revision:null},{url:"assets/regexp-BqwfzS-e.js",revision:null},{url:"assets/reg-CHsE82Pk.js",revision:null},{url:"assets/red-Cj1vpJ_n.js",revision:null},{url:"assets/razor-BuydI9-z.js",revision:null},{url:"assets/raku-D9dEetfn.js",revision:null},{url:"assets/racket-CA2oKVL1.js",revision:null},{url:"assets/r-DFfZp_OL.js",revision:null},{url:"assets/qss-CvW7b9vz.js",revision:null},{url:"assets/qmldir-CDe6ORFD.js",revision:null},{url:"assets/qml-OUZ1t0j7.js",revision:null},{url:"assets/python-xLLWlBd0.js",revision:null},{url:"assets/purescript-B_tjgp5s.js",revision:null},{url:"assets/puppet-BLvi8DVC.js",revision:null},{url:"assets/pug-Cm2QOZay.js",revision:null},{url:"assets/proto-BqsNb_Ru.js",revision:null},{url:"assets/prolog-DcNkIfZZ.js",revision:null},{url:"assets/prisma-C4wKi9Xs.js",revision:null},{url:"assets/powershell-CeNh_gMu.js",revision:null},{url:"assets/powerquery-BNMZnWRc.js",revision:null},{url:"assets/postcss-BgFCg0uM.js",revision:null},{url:"assets/polar-DcGwqI2v.js",revision:null},{url:"assets/poimandres-DdZFFINT.js",revision:null},{url:"assets/po-BNFx8QMG.js",revision:null},{url:"assets/plsql-CgEVu7mV.js",revision:null},{url:"assets/plastic-Dd1-4HJb.js",revision:null},{url:"assets/pkl-DtSDxyR8.js",revision:null},{url:"assets/php-DD4kvY2Z.js",revision:null},{url:"assets/perl-BCX7fFX1.js",revision:null},{url:"assets/pascal-BvJwb9Ca.js",revision:null},{url:"assets/openscad-C-XxCD_t.js",revision:null},{url:"assets/one-light-27sfjFDM.js",revision:null},{url:"assets/one-dark-pro-CLMO01es.js",revision:null},{url:"assets/odin-BUZTfc03.js",revision:null},{url:"assets/ocaml-Ddt3E4VO.js",revision:null},{url:"assets/objective-cpp-D96wcRis.js",revision:null},{url:"assets/objective-c-mc6rHp-y.js",revision:null},{url:"assets/nushell-BBFYNdNE.js",revision:null},{url:"assets/nord-CbYaE7ZY.js",revision:null},{url:"assets/nix-DE1Q2B1F.js",revision:null},{url:"assets/nim-C_9nhkxr.js",revision:null},{url:"assets/night-owl-light-gVSh6ltn.js",revision:null},{url:"assets/night-owl-DnKT96OJ.js",revision:null},{url:"assets/nginx-CbcVooTf.js",revision:null},{url:"assets/nextflow-groovy-CUrXbMOF.js",revision:null},{url:"assets/nextflow-DXxhyYjQ.js",revision:null},{url:"assets/narrat-Bn_PlXDl.js",revision:null},{url:"assets/move--lg8RSZu.js",revision:null},{url:"assets/moonbit-c7XV1V8w.js",revision:null},{url:"assets/monokai-DZSWSdmN.js",revision:null},{url:"assets/mojo-D3ai4ATt.js",revision:null},{url:"assets/mipsasm-D3Vr1VJI.js",revision:null},{url:"assets/min-light-lr1QiEOE.js",revision:null},{url:"assets/min-dark-DK6uq44k.js",revision:null},{url:"assets/mermaid-Bk1sayFm.js",revision:null},{url:"assets/mdx-Crds6sJw.js",revision:null},{url:"assets/mdc-CD8aKOmr.js",revision:null},{url:"assets/matlab-Cz4xBfaA.js",revision:null},{url:"assets/material-theme-palenight-W0qbGyud.js",revision:null},{url:"assets/material-theme-ocean-BnNk1wNQ.js",revision:null},{url:"assets/material-theme-lighter-L4j3qddN.js",revision:null},{url:"assets/material-theme-kX26WiJU.js",revision:null},{url:"assets/material-theme-darker-yvetTWEr.js",revision:null},{url:"assets/marko-_792ZFlg.js",revision:null},{url:"assets/markdown-hfQzyr6v.js",revision:null},{url:"assets/make-DLuqI3Sa.js",revision:null},{url:"assets/luau-D9oeBRnv.js",revision:null},{url:"assets/lua-GmcXPR1B.js",revision:null},{url:"assets/logo-BsxZM_eb.js",revision:null},{url:"assets/log-JKbKuM4J.js",revision:null},{url:"assets/llvm-DtrwjsAs.js",revision:null},{url:"assets/liquid-DJbfjPLK.js",revision:null},{url:"assets/light-plus-Ch1Usv7R.js",revision:null},{url:"assets/less-B9RQiV1N.js",revision:null},{url:"assets/lean-CvyEisyW.js",revision:null},{url:"assets/latex-BtOQEyF3.js",revision:null},{url:"assets/laserwave-Bbquw0Nf.js",revision:null},{url:"assets/kusto-Cpu9Tdho.js",revision:null},{url:"assets/kotlin-d6oenWPH.js",revision:null},{url:"assets/kdl-BQl-X5Uf.js",revision:null},{url:"assets/kanagawa-wave-DFO_g5Mb.js",revision:null},{url:"assets/kanagawa-lotus-qAvw6eOU.js",revision:null},{url:"assets/kanagawa-dragon-DLDXA4f2.js",revision:null},{url:"assets/just-Cp2rqK4b.js",revision:null},{url:"assets/julia-D1qOHioL.js",revision:null},{url:"assets/jsx-A_kWOEh1.js",revision:null},{url:"assets/jssm-CBV9_O8o.js",revision:null},{url:"assets/jsonnet-DH4UkOBo.js",revision:null},{url:"assets/jsonl-DkF3QjsY.js",revision:null},{url:"assets/jsonc-C9b23pMf.js",revision:null},{url:"assets/json5-Dl8gAgq4.js",revision:null},{url:"assets/json-B3-MRuLs.js",revision:null},{url:"assets/jison-DH8vzrgr.js",revision:null},{url:"assets/jinja-Py1l-RL7.js",revision:null},{url:"assets/javascript-CL_Iy9n4.js",revision:null},{url:"assets/java-aCAp8IF1.js",revision:null},{url:"assets/ini-2Ew1Qzj6.js",revision:null},{url:"assets/index-E1WCz9rn.js",revision:null},{url:"assets/index-DcwXjiH0.css",revision:null},{url:"assets/imba-CPCwfD-G.js",revision:null},{url:"assets/hy-uAHU8420.js",revision:null},{url:"assets/hxml-Bdi_kWeE.js",revision:null},{url:"assets/hurl-C5thponb.js",revision:null},{url:"assets/http-2GQCPOno.js",revision:null},{url:"assets/html-derivative-DEphIJN1.js",revision:null},{url:"assets/html-CCYH7wc6.js",revision:null},{url:"assets/houston-DSlR9wH9.js",revision:null},{url:"assets/horizon-bright-CPVackS9.js",revision:null},{url:"assets/horizon-DMOEeSnA.js",revision:null},{url:"assets/hlsl-JhqkHhML.js",revision:null},{url:"assets/hjson-B4b85MZo.js",revision:null},{url:"assets/hcl-C1fs3gTM.js",revision:null},{url:"assets/haxe-wLDEcRoz.js",revision:null},{url:"assets/haskell-DzEtL6Zk.js",revision:null},{url:"assets/handlebars-CpjLDdsz.js",revision:null},{url:"assets/haml-p0cxTqbc.js",revision:null},{url:"assets/hack-BFrZLTBg.js",revision:null},{url:"assets/gruvbox-light-soft-CVIZMKFx.js",revision:null},{url:"assets/gruvbox-light-medium-Ba-VIg48.js",revision:null},{url:"assets/gruvbox-light-hard-DV9RwKs4.js",revision:null},{url:"assets/gruvbox-dark-soft-DUyKWd02.js",revision:null},{url:"assets/gruvbox-dark-medium-Dn18r-Yz.js",revision:null},{url:"assets/gruvbox-dark-hard-CBFL_VqK.js",revision:null},{url:"assets/groovy-bfrzFpSZ.js",revision:null},{url:"assets/graphql-Cb9Y6gmd.js",revision:null},{url:"assets/go-TqNfhUhh.js",revision:null},{url:"assets/gnuplot-CcsFlqcz.js",revision:null},{url:"assets/gn-EcrZPIZo.js",revision:null},{url:"assets/glsl-Cknt_egz.js",revision:null},{url:"assets/glimmer-ts-D68GJgFk.js",revision:null},{url:"assets/glimmer-js-CqOUOgp8.js",revision:null},{url:"assets/gleam-7UVjplRF.js",revision:null},{url:"assets/github-light-high-contrast-Cvzq8ZXJ.js",revision:null},{url:"assets/github-light-default-dl7biQ4g.js",revision:null},{url:"assets/github-light-BRTmX4Ht.js",revision:null},{url:"assets/github-dark-high-contrast-CM0RRMCj.js",revision:null},{url:"assets/github-dark-dimmed-D8UZ8uTL.js",revision:null},{url:"assets/github-dark-default-BroO-mT3.js",revision:null},{url:"assets/github-dark-DQp1Qkx5.js",revision:null},{url:"assets/git-rebase-BH552817.js",revision:null},{url:"assets/git-commit-a3TktZ3A.js",revision:null},{url:"assets/gherkin-CPELKal0.js",revision:null},{url:"assets/genie-khT2hrp-.js",revision:null},{url:"assets/gdshader-DkUeC1ld.js",revision:null},{url:"assets/gdscript-DDro0rs8.js",revision:null},{url:"assets/gdresource-DkI-mZL2.js",revision:null},{url:"assets/fsharp-uxIU8dwY.js",revision:null},{url:"assets/fortran-free-form-Bw_JZ1tj.js",revision:null},{url:"assets/fortran-fixed-form-BXvkHMbK.js",revision:null},{url:"assets/fluent-B_In4uB6.js",revision:null},{url:"assets/fish-D2X4h_sR.js",revision:null},{url:"assets/fennel-CH1ohGYX.js",revision:null},{url:"assets/everforest-light-CpIbZ9aT.js",revision:null},{url:"assets/everforest-dark-BhFNrp2k.js",revision:null},{url:"assets/erlang-LvhGhZI3.js",revision:null},{url:"assets/erb-D2Fp4TPk.js",revision:null},{url:"assets/emacs-lisp-DFyMFAZA.js",revision:null},{url:"assets/elm-3fMSNcgt.js",revision:null},{url:"assets/elixir-D0XiwLVl.js",revision:null},{url:"assets/edge-DaXUGhsZ.js",revision:null},{url:"assets/dream-maker-D6UB367x.js",revision:null},{url:"assets/dracula-soft-CuGBZj_h.js",revision:null},{url:"assets/dracula-CBD4ckb0.js",revision:null},{url:"assets/dotenv-C0epktMv.js",revision:null},{url:"assets/docker-9Zbx0dQX.js",revision:null},{url:"assets/dist-J-paO_Ua.js",revision:null},{url:"assets/diff-B7rhrwA5.js",revision:null},{url:"assets/desktop-BEul_kAS.js",revision:null},{url:"assets/dax-BvrCypuS.js",revision:null},{url:"assets/dart-DxXbDeKR.js",revision:null},{url:"assets/dark-plus-BMwvn5lx.js",revision:null},{url:"assets/d-BvLF4qGs.js",revision:null},{url:"assets/cypher-CJUzJAhQ.js",revision:null},{url:"assets/cue-CMabdDG0.js",revision:null},{url:"assets/csv-DGwgERVJ.js",revision:null},{url:"assets/css-k5EbtGj0.js",revision:null},{url:"assets/csharp-Kzd7Ey2d.js",revision:null},{url:"assets/crystal-DvbJGa3F.js",revision:null},{url:"assets/cpp-D4I7nho0.js",revision:null},{url:"assets/coq-Ddo7YIsR.js",revision:null},{url:"assets/common-lisp-BCx4dVK8.js",revision:null},{url:"assets/coffee-DNKdKLDa.js",revision:null},{url:"assets/codeql-CjS8Tp16.js",revision:null},{url:"assets/codeowners-CBvEPOlS.js",revision:null},{url:"assets/cobol-BF2qiDD7.js",revision:null},{url:"assets/cmake-DM0FE-T9.js",revision:null},{url:"assets/clojure-Bcw7lCta.js",revision:null},{url:"assets/clarity-BbUNTPrg.js",revision:null},{url:"assets/catppuccin-mocha-5vkMJ1Mb.js",revision:null},{url:"assets/catppuccin-macchiato-D8VB2qi4.js",revision:null},{url:"assets/catppuccin-latte-B_oiWZka.js",revision:null},{url:"assets/catppuccin-frappe-DQrU04q0.js",revision:null},{url:"assets/cairo-CaIu88t6.js",revision:null},{url:"assets/cadence-CCTSwj3w.js",revision:null},{url:"assets/c3-Dx2gByXW.js",revision:null},{url:"assets/c-BZ6IuiPf.js",revision:null},{url:"assets/bsl-BRmzGEWg.js",revision:null},{url:"assets/blade-Dmjp9O4d.js",revision:null},{url:"assets/bird2-mieRHotO.js",revision:null},{url:"assets/bicep-CugTE5CQ.js",revision:null},{url:"assets/bibtex-Hs7VvQaV.js",revision:null},{url:"assets/berry-B29XeKK4.js",revision:null},{url:"assets/beancount-D84pBacF.js",revision:null},{url:"assets/bat-cyb3gF8B.js",revision:null},{url:"assets/ballerina-H14_EqPr.js",revision:null},{url:"assets/ayu-mirage-Dji5RWiH.js",revision:null},{url:"assets/ayu-light-lHqf0ddo.js",revision:null},{url:"assets/ayu-dark-DpNcORnA.js",revision:null},{url:"assets/awk-D1ZOsISX.js",revision:null},{url:"assets/aurora-x-DTcNXZIS.js",revision:null},{url:"assets/astro-DVKZfvzE.js",revision:null},{url:"assets/asm-ClIKbvsu.js",revision:null},{url:"assets/asciidoc-BkmPq932.js",revision:null},{url:"assets/ara-DMoCP0pJ.js",revision:null},{url:"assets/applescript-D4zGaScB.js",revision:null},{url:"assets/apl-D2krRhBG.js",revision:null},{url:"assets/apex-DOfNfL0V.js",revision:null},{url:"assets/apache-CE7PmWoU.js",revision:null},{url:"assets/angular-ts-UejdQitf.js",revision:null},{url:"assets/angular-html-C161H-h4.js",revision:null},{url:"assets/andromeeda-LdzAHaKR.js",revision:null},{url:"assets/ada-C6m8O36S.js",revision:null},{url:"assets/actionscript-3-D_b0n2Ff.js",revision:null},{url:"assets/abap-DOv5zRgd.js",revision:null},{url:"icons/icon-192.svg",revision:"9fadf634affbcb9c42c643b60504b4e6"},{url:"icons/icon-512.svg",revision:"566480514fd76a4e370c4c50969f0754"},{url:"manifest.webmanifest",revision:"fe5dde98414290ad728b4906404e7fbf"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{denylist:[/^\/ws/,/^\/api/]})),s.registerRoute(/^https?:\/\/.*\.(?:js|css|woff2)$/,new s.NetworkFirst({cacheName:"static-assets",networkTimeoutSeconds:3,plugins:[new s.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800})]}),"GET"),s.registerRoute(/^https?:\/\/.*\.(?:svg|png|jpg|jpeg|gif|webp)$/,new s.NetworkFirst({cacheName:"images",networkTimeoutSeconds:3,plugins:[new s.ExpirationPlugin({maxEntries:50,maxAgeSeconds:604800})]}),"GET")});
|
package/dist/server/daemon.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { join, resolve } from "node:path";
|
|
2
2
|
import { createServer as createHttpServer } from "node:http";
|
|
3
3
|
import { createServer as createHttpsServer } from "node:https";
|
|
4
|
-
import { readFileSync, existsSync, createReadStream
|
|
4
|
+
import { readFileSync, existsSync, createReadStream } from "node:fs";
|
|
5
|
+
import { stat as fsStat } from "node:fs/promises";
|
|
5
6
|
import express from "express";
|
|
6
7
|
import { WebSocketServer } from "ws";
|
|
7
8
|
import { getClientDir } from "./assets.js";
|
|
8
9
|
import { getLatticeHome, loadConfig } from "./config.js";
|
|
9
10
|
import { loadOrCreateIdentity } from "./identity.js";
|
|
10
11
|
import { addClient, removeClient, routeMessage } from "./ws/server.js";
|
|
11
|
-
import { broadcast, sendTo } from "./ws/broadcast.js";
|
|
12
|
+
import { broadcast, sendTo, markClientAlive, startHeartbeat, subscribeClientToProject } from "./ws/broadcast.js";
|
|
12
13
|
import { buildNodesMessage } from "./handlers/mesh.js";
|
|
13
14
|
import { startDiscovery } from "./mesh/discovery.js";
|
|
14
15
|
import { startMeshConnections, onPeerConnected, onPeerDisconnected, onPeerMessage, getAllRemoteProjects } from "./mesh/connector.js";
|
|
@@ -258,6 +259,7 @@ function handleWsOpen(ws, clientId) {
|
|
|
258
259
|
}
|
|
259
260
|
for (var pi = 0; pi < connectConfig.projects.length; pi++) {
|
|
260
261
|
var proj = connectConfig.projects[pi];
|
|
262
|
+
subscribeClientToProject(clientId, proj.slug);
|
|
261
263
|
void listSessions(proj.slug, { limit: 40 }).then(function (result) {
|
|
262
264
|
sendTo(clientId, {
|
|
263
265
|
type: "session:list",
|
|
@@ -266,7 +268,9 @@ function handleWsOpen(ws, clientId) {
|
|
|
266
268
|
totalCount: result.totalCount,
|
|
267
269
|
offset: 0,
|
|
268
270
|
});
|
|
269
|
-
}).catch(function () {
|
|
271
|
+
}).catch(function (err) {
|
|
272
|
+
log.session("Failed to pre-populate sessions for %s: %O", proj.slug, err);
|
|
273
|
+
});
|
|
270
274
|
}
|
|
271
275
|
}
|
|
272
276
|
function handleWsMessage(ws, data) {
|
|
@@ -371,7 +375,7 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
371
375
|
res.status(400).json({ ok: false });
|
|
372
376
|
}
|
|
373
377
|
});
|
|
374
|
-
app.get("/api/file", function (req, res) {
|
|
378
|
+
app.get("/api/file", async function (req, res) {
|
|
375
379
|
var reqFilePath = req.query.path;
|
|
376
380
|
if (!reqFilePath) {
|
|
377
381
|
res.status(400).send("Missing path parameter");
|
|
@@ -390,9 +394,9 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
390
394
|
res.status(404).send("File not found");
|
|
391
395
|
return;
|
|
392
396
|
}
|
|
393
|
-
var
|
|
397
|
+
var fileStat = await fsStat(resolved);
|
|
394
398
|
res.setHeader("Content-Type", getMimeType(resolved));
|
|
395
|
-
res.setHeader("Content-Length",
|
|
399
|
+
res.setHeader("Content-Length", fileStat.size);
|
|
396
400
|
createReadStream(resolved).pipe(res);
|
|
397
401
|
});
|
|
398
402
|
var tlsOptions;
|
|
@@ -480,7 +484,13 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
480
484
|
}
|
|
481
485
|
});
|
|
482
486
|
}
|
|
483
|
-
var wss = new WebSocketServer({
|
|
487
|
+
var wss = new WebSocketServer({
|
|
488
|
+
noServer: true,
|
|
489
|
+
perMessageDeflate: {
|
|
490
|
+
zlibDeflateOptions: { level: 1 },
|
|
491
|
+
threshold: 128,
|
|
492
|
+
},
|
|
493
|
+
});
|
|
484
494
|
httpServer.on("upgrade", function (req, socket, head) {
|
|
485
495
|
var url = new URL(req.url || "/", "http://localhost");
|
|
486
496
|
if (url.pathname !== "/ws") {
|
|
@@ -493,6 +503,7 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
493
503
|
wss.handleUpgrade(req, socket, head, function (ws) {
|
|
494
504
|
var clientId = crypto.randomUUID();
|
|
495
505
|
handleWsOpen(ws, clientId);
|
|
506
|
+
ws.on("pong", function () { markClientAlive(clientId); });
|
|
496
507
|
ws.on("message", function (data) { handleWsMessage(ws, data); });
|
|
497
508
|
ws.on("close", function () { handleWsClose(ws); });
|
|
498
509
|
});
|
|
@@ -522,6 +533,18 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
522
533
|
}
|
|
523
534
|
}
|
|
524
535
|
log.server("Listening on %s://0.0.0.0:%d", protocol, effectivePort);
|
|
536
|
+
startHeartbeat(function (deadClientId) {
|
|
537
|
+
clearActiveSession(deadClientId);
|
|
538
|
+
clearActiveProject(deadClientId);
|
|
539
|
+
clearClientRemoteNode(deadClientId);
|
|
540
|
+
removeClient(deadClientId);
|
|
541
|
+
cleanupClientTerminals(deadClientId);
|
|
542
|
+
cleanupClientAttachments(deadClientId);
|
|
543
|
+
cleanupClientPermissions(deadClientId);
|
|
544
|
+
cleanupClientElicitations(deadClientId);
|
|
545
|
+
clientRateLimits.delete(deadClientId);
|
|
546
|
+
log.ws("Client removed via heartbeat: %s", deadClientId);
|
|
547
|
+
});
|
|
525
548
|
startDiscovery(identity.id, config.name, effectivePort);
|
|
526
549
|
startMeshConnections();
|
|
527
550
|
startScheduler();
|
|
@@ -535,10 +558,16 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
535
558
|
if (firstProject) {
|
|
536
559
|
void runWarmup(firstProject.path);
|
|
537
560
|
}
|
|
561
|
+
var meshDirty = true;
|
|
562
|
+
var lastNodesJson = "";
|
|
563
|
+
var lastProjectsJson = "";
|
|
564
|
+
var broadcastTick = 0;
|
|
538
565
|
onPeerConnected(function (nodeId) {
|
|
566
|
+
meshDirty = true;
|
|
539
567
|
broadcast({ type: "mesh:node_online", nodeId: nodeId });
|
|
540
568
|
});
|
|
541
569
|
onPeerDisconnected(function (nodeId) {
|
|
570
|
+
meshDirty = true;
|
|
542
571
|
broadcast({ type: "mesh:node_offline", nodeId: nodeId });
|
|
543
572
|
});
|
|
544
573
|
onPeerMessage(function (nodeId, msg) {
|
|
@@ -551,14 +580,16 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
551
580
|
return;
|
|
552
581
|
}
|
|
553
582
|
});
|
|
554
|
-
var lastNodesHash = "";
|
|
555
|
-
var lastProjectsHash = "";
|
|
556
583
|
setInterval(function () {
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
584
|
+
broadcastTick++;
|
|
585
|
+
if (meshDirty) {
|
|
586
|
+
var nodesPayload = buildNodesMessage();
|
|
587
|
+
var nodesJson = JSON.stringify(nodesPayload);
|
|
588
|
+
if (nodesJson !== lastNodesJson) {
|
|
589
|
+
lastNodesJson = nodesJson;
|
|
590
|
+
broadcast({ type: "mesh:nodes", nodes: nodesPayload });
|
|
591
|
+
}
|
|
592
|
+
meshDirty = false;
|
|
562
593
|
}
|
|
563
594
|
var currentConfig = loadConfig();
|
|
564
595
|
var currentIdentity = loadOrCreateIdentity();
|
|
@@ -567,21 +598,23 @@ export async function startDaemon(portOverride, tlsOverride) {
|
|
|
567
598
|
});
|
|
568
599
|
var remoteProjects = getAllRemoteProjects(currentIdentity.id);
|
|
569
600
|
var allProjects = localProjects.concat(remoteProjects);
|
|
570
|
-
var
|
|
571
|
-
if (
|
|
572
|
-
|
|
601
|
+
var projectsJson = JSON.stringify(allProjects);
|
|
602
|
+
if (projectsJson !== lastProjectsJson) {
|
|
603
|
+
lastProjectsJson = projectsJson;
|
|
573
604
|
broadcast({ type: "projects:list", projects: allProjects });
|
|
574
605
|
}
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
606
|
+
if (broadcastTick % 3 === 0) {
|
|
607
|
+
var updateInfo = getCachedUpdateInfo();
|
|
608
|
+
if (updateInfo && updateInfo.updateAvailable) {
|
|
609
|
+
broadcast({
|
|
610
|
+
type: "update:status",
|
|
611
|
+
currentVersion: updateInfo.currentVersion,
|
|
612
|
+
latestVersion: updateInfo.latestVersion,
|
|
613
|
+
updateAvailable: updateInfo.updateAvailable,
|
|
614
|
+
releaseUrl: updateInfo.releaseUrl,
|
|
615
|
+
installMode: updateInfo.installMode,
|
|
616
|
+
});
|
|
617
|
+
}
|
|
585
618
|
}
|
|
586
619
|
}, 10000);
|
|
587
620
|
}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { createWriteStream, createReadStream } from "node:fs";
|
|
2
|
+
import { unlink, mkdtemp } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
1
5
|
import { registerHandler } from "../ws/router.js";
|
|
2
6
|
import { sendTo } from "../ws/broadcast.js";
|
|
7
|
+
import { log } from "../logger.js";
|
|
3
8
|
var MAX_ATTACHMENT_SIZE = 10 * 1024 * 1024;
|
|
4
9
|
var stores = new Map();
|
|
5
10
|
var completed = new Map();
|
|
@@ -21,22 +26,35 @@ function getClientCompleted(clientId) {
|
|
|
21
26
|
}
|
|
22
27
|
return store;
|
|
23
28
|
}
|
|
24
|
-
|
|
29
|
+
async function cleanupPending(pending) {
|
|
30
|
+
try {
|
|
31
|
+
pending.writeStream.destroy();
|
|
32
|
+
await unlink(pending.tempPath).catch(function () { });
|
|
33
|
+
await unlink(pending.tempDir).catch(function () { });
|
|
34
|
+
}
|
|
35
|
+
catch { }
|
|
36
|
+
}
|
|
37
|
+
registerHandler("attachment", async function (clientId, message) {
|
|
25
38
|
if (message.type === "attachment:chunk") {
|
|
26
39
|
var msg = message;
|
|
27
40
|
var store = getClientStore(clientId);
|
|
28
41
|
var pending = store.get(msg.attachmentId);
|
|
29
42
|
if (!pending) {
|
|
43
|
+
var tempDir = await mkdtemp(join(tmpdir(), "lattice-attach-"));
|
|
44
|
+
var tempPath = join(tempDir, "data.bin");
|
|
30
45
|
pending = {
|
|
31
|
-
|
|
46
|
+
tempDir: tempDir,
|
|
47
|
+
tempPath: tempPath,
|
|
48
|
+
writeStream: createWriteStream(tempPath),
|
|
32
49
|
totalChunks: msg.totalChunks,
|
|
33
50
|
receivedCount: 0,
|
|
34
51
|
totalBytes: 0,
|
|
35
52
|
createdAt: Date.now(),
|
|
53
|
+
chunksSeen: new Set(),
|
|
36
54
|
};
|
|
37
55
|
store.set(msg.attachmentId, pending);
|
|
38
56
|
}
|
|
39
|
-
if (pending.
|
|
57
|
+
if (pending.chunksSeen.has(msg.chunkIndex)) {
|
|
40
58
|
sendTo(clientId, {
|
|
41
59
|
type: "attachment:error",
|
|
42
60
|
attachmentId: msg.attachmentId,
|
|
@@ -46,6 +64,7 @@ registerHandler("attachment", function (clientId, message) {
|
|
|
46
64
|
}
|
|
47
65
|
var chunkBuffer = Buffer.from(msg.data, "base64");
|
|
48
66
|
if (pending.totalBytes + chunkBuffer.length > MAX_ATTACHMENT_SIZE) {
|
|
67
|
+
await cleanupPending(pending);
|
|
49
68
|
store.delete(msg.attachmentId);
|
|
50
69
|
sendTo(clientId, {
|
|
51
70
|
type: "attachment:error",
|
|
@@ -54,7 +73,8 @@ registerHandler("attachment", function (clientId, message) {
|
|
|
54
73
|
});
|
|
55
74
|
return;
|
|
56
75
|
}
|
|
57
|
-
pending.
|
|
76
|
+
pending.writeStream.write(chunkBuffer);
|
|
77
|
+
pending.chunksSeen.add(msg.chunkIndex);
|
|
58
78
|
pending.receivedCount++;
|
|
59
79
|
pending.totalBytes += chunkBuffer.length;
|
|
60
80
|
sendTo(clientId, {
|
|
@@ -85,36 +105,46 @@ registerHandler("attachment", function (clientId, message) {
|
|
|
85
105
|
});
|
|
86
106
|
return;
|
|
87
107
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
108
|
+
await new Promise(function (resolve) {
|
|
109
|
+
completePending.writeStream.end(function () { resolve(); });
|
|
110
|
+
});
|
|
111
|
+
try {
|
|
112
|
+
var assembled = await readTempFile(completePending.tempPath);
|
|
113
|
+
var isText = completeMsg.attachmentType === "paste" || isTextMimeType(completeMsg.mimeType);
|
|
114
|
+
var content = isText ? assembled.toString("utf-8") : assembled.toString("base64");
|
|
115
|
+
var attachment = {
|
|
116
|
+
type: completeMsg.attachmentType,
|
|
117
|
+
name: completeMsg.name,
|
|
118
|
+
content,
|
|
119
|
+
mimeType: completeMsg.mimeType,
|
|
120
|
+
size: completeMsg.size,
|
|
121
|
+
lineCount: completeMsg.lineCount,
|
|
122
|
+
};
|
|
123
|
+
var finishedStore = getClientCompleted(clientId);
|
|
124
|
+
finishedStore.set(completeMsg.attachmentId, attachment);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
log.ws("Failed to read assembled attachment: %O", err);
|
|
128
|
+
sendTo(clientId, {
|
|
129
|
+
type: "attachment:error",
|
|
130
|
+
attachmentId: completeMsg.attachmentId,
|
|
131
|
+
error: "Failed to assemble attachment",
|
|
132
|
+
});
|
|
100
133
|
}
|
|
101
|
-
|
|
102
|
-
var isText = completeMsg.attachmentType === "paste" || isTextMimeType(completeMsg.mimeType);
|
|
103
|
-
var content = isText ? assembled.toString("utf-8") : assembled.toString("base64");
|
|
104
|
-
var attachment = {
|
|
105
|
-
type: completeMsg.attachmentType,
|
|
106
|
-
name: completeMsg.name,
|
|
107
|
-
content,
|
|
108
|
-
mimeType: completeMsg.mimeType,
|
|
109
|
-
size: completeMsg.size,
|
|
110
|
-
lineCount: completeMsg.lineCount,
|
|
111
|
-
};
|
|
112
|
-
var finishedStore = getClientCompleted(clientId);
|
|
113
|
-
finishedStore.set(completeMsg.attachmentId, attachment);
|
|
134
|
+
await cleanupPending(completePending);
|
|
114
135
|
completeStore.delete(completeMsg.attachmentId);
|
|
115
136
|
return;
|
|
116
137
|
}
|
|
117
138
|
});
|
|
139
|
+
function readTempFile(path) {
|
|
140
|
+
return new Promise(function (resolve, reject) {
|
|
141
|
+
var chunks = [];
|
|
142
|
+
var stream = createReadStream(path);
|
|
143
|
+
stream.on("data", function (chunk) { chunks.push(chunk); });
|
|
144
|
+
stream.on("end", function () { resolve(Buffer.concat(chunks)); });
|
|
145
|
+
stream.on("error", reject);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
118
148
|
function isTextMimeType(mime) {
|
|
119
149
|
if (mime.startsWith("text/"))
|
|
120
150
|
return true;
|
|
@@ -142,6 +172,12 @@ export function getAttachments(clientId, ids) {
|
|
|
142
172
|
return result;
|
|
143
173
|
}
|
|
144
174
|
export function cleanupClient(clientId) {
|
|
175
|
+
var clientStore = stores.get(clientId);
|
|
176
|
+
if (clientStore) {
|
|
177
|
+
for (var [, pending] of clientStore) {
|
|
178
|
+
void cleanupPending(pending);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
145
181
|
stores.delete(clientId);
|
|
146
182
|
completed.delete(clientId);
|
|
147
183
|
}
|
|
@@ -150,6 +186,7 @@ var ttlCleanupInterval = setInterval(function () {
|
|
|
150
186
|
stores.forEach(function (store) {
|
|
151
187
|
store.forEach(function (pending, id) {
|
|
152
188
|
if (now - pending.createdAt > TTL_MS) {
|
|
189
|
+
void cleanupPending(pending);
|
|
153
190
|
store.delete(id);
|
|
154
191
|
}
|
|
155
192
|
});
|