nomadexapp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +224 -0
  3. package/bin/nomadex.mjs +1026 -0
  4. package/dist/assets/apl-Dgw9L7wA.js +1 -0
  5. package/dist/assets/asciiarmor-B3T-Ib7X.js +1 -0
  6. package/dist/assets/asn1-C0KgO0Wt.js +1 -0
  7. package/dist/assets/asterisk-D7tOY-Ef.js +1 -0
  8. package/dist/assets/brainfuck-Dr6WXxS2.js +1 -0
  9. package/dist/assets/clike-DQfG49Bz.js +1 -0
  10. package/dist/assets/clojure-DsDsbt3V.js +1 -0
  11. package/dist/assets/cmake-CaoY67QC.js +1 -0
  12. package/dist/assets/cobol-ng5WMKOY.js +1 -0
  13. package/dist/assets/coffeescript-L66efR1O.js +1 -0
  14. package/dist/assets/commonlisp-rk__8_Ow.js +1 -0
  15. package/dist/assets/crystal-C1BeQSjD.js +1 -0
  16. package/dist/assets/css-zrdFFahf.js +1 -0
  17. package/dist/assets/cypher-DTKBhe_T.js +1 -0
  18. package/dist/assets/d-CDf89RKe.js +1 -0
  19. package/dist/assets/diff-BY4_GICG.js +1 -0
  20. package/dist/assets/dist--QplBylv.js +6 -0
  21. package/dist/assets/dist-BOz4jprC.js +1 -0
  22. package/dist/assets/dist-BSpuB3dZ.js +1 -0
  23. package/dist/assets/dist-BVTS1puf.js +1 -0
  24. package/dist/assets/dist-BvjF9csH.js +1 -0
  25. package/dist/assets/dist-ByyB_57-.js +11 -0
  26. package/dist/assets/dist-C5sjJwrm.js +1 -0
  27. package/dist/assets/dist-C6S96i9v.js +1 -0
  28. package/dist/assets/dist-CUQQ4au1.js +1 -0
  29. package/dist/assets/dist-C_ZftsU-.js +1 -0
  30. package/dist/assets/dist-Cc03jTPl.js +1 -0
  31. package/dist/assets/dist-CftiQ_Tf.js +1 -0
  32. package/dist/assets/dist-ChuUwcd4.js +2 -0
  33. package/dist/assets/dist-Cuva2wRW.js +1 -0
  34. package/dist/assets/dist-CyFWfPpu.js +9 -0
  35. package/dist/assets/dist-D6kXrcQY.js +1 -0
  36. package/dist/assets/dist-DH3Q_V27.js +23 -0
  37. package/dist/assets/dist-DIQDx3Dq.js +1 -0
  38. package/dist/assets/dist-DO7LTg3a.js +1 -0
  39. package/dist/assets/dist-DYBvJnrG.js +1 -0
  40. package/dist/assets/dist-DhhFPaYP.js +13 -0
  41. package/dist/assets/dist-elfU6IUT.js +1 -0
  42. package/dist/assets/dist-mCTXNkQ9.js +1 -0
  43. package/dist/assets/dockerfile-BBRxgo6-.js +1 -0
  44. package/dist/assets/dtd-BOpcurKR.js +1 -0
  45. package/dist/assets/dylan-DrmRAfMX.js +1 -0
  46. package/dist/assets/ebnf-DgECi_W8.js +1 -0
  47. package/dist/assets/ecl-CWDhUBvl.js +1 -0
  48. package/dist/assets/eiffel-DBpGy7gs.js +1 -0
  49. package/dist/assets/elm-Dj_ZNWRH.js +1 -0
  50. package/dist/assets/erlang-Br4TQPB7.js +1 -0
  51. package/dist/assets/factor-bi5FmZTz.js +1 -0
  52. package/dist/assets/fcl-Dh6ibuJG.js +1 -0
  53. package/dist/assets/forth-fmpuPpMA.js +1 -0
  54. package/dist/assets/fortran-CZwiXuJZ.js +1 -0
  55. package/dist/assets/gas-DotCoURX.js +1 -0
  56. package/dist/assets/gherkin-Bw4mmeRF.js +1 -0
  57. package/dist/assets/groovy-D7xek06K.js +1 -0
  58. package/dist/assets/haskell-D5bv2Ijt.js +1 -0
  59. package/dist/assets/haxe-UA0z6FgT.js +1 -0
  60. package/dist/assets/http-DAkDDIPY.js +1 -0
  61. package/dist/assets/idl-DYj57TA2.js +1 -0
  62. package/dist/assets/index-BpFNmvYv.js +214 -0
  63. package/dist/assets/index-De1iEP2f.css +1 -0
  64. package/dist/assets/javascript-B9Zm1tmO.js +1 -0
  65. package/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  66. package/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  67. package/dist/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff +0 -0
  68. package/dist/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
  69. package/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  70. package/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  71. package/dist/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
  72. package/dist/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff +0 -0
  73. package/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  74. package/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  75. package/dist/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  76. package/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  77. package/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  78. package/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  79. package/dist/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
  80. package/dist/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff +0 -0
  81. package/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  82. package/dist/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff +0 -0
  83. package/dist/assets/julia-CpHdnx_N.js +1 -0
  84. package/dist/assets/livescript-DcEJKRZ4.js +1 -0
  85. package/dist/assets/lua-s-LPZohT.js +1 -0
  86. package/dist/assets/mathematica-c8TKcpav.js +1 -0
  87. package/dist/assets/mbox-CUr7-CiI.js +1 -0
  88. package/dist/assets/mirc-pTdL1Ym3.js +1 -0
  89. package/dist/assets/mllike-DsgO-njf.js +1 -0
  90. package/dist/assets/modelica-PhVkZonB.js +1 -0
  91. package/dist/assets/mscgen-ByD0zE8S.js +1 -0
  92. package/dist/assets/mumps-DhD4kjw9.js +1 -0
  93. package/dist/assets/nginx-CJc6p_yt.js +1 -0
  94. package/dist/assets/nsis-BHchP6IS.js +1 -0
  95. package/dist/assets/ntriples-D1v3iWDa.js +1 -0
  96. package/dist/assets/octave-D_WvWxqk.js +1 -0
  97. package/dist/assets/oz-CmdX4m3g.js +1 -0
  98. package/dist/assets/pascal-hNOkBp6J.js +1 -0
  99. package/dist/assets/perl-NQdG1b_r.js +1 -0
  100. package/dist/assets/pig-CXzedlZV.js +1 -0
  101. package/dist/assets/powershell-RXDVpFWf.js +1 -0
  102. package/dist/assets/properties-BTvtucqR.js +1 -0
  103. package/dist/assets/protobuf-zHRYyuba.js +1 -0
  104. package/dist/assets/pug-C39WZDG2.js +1 -0
  105. package/dist/assets/puppet-CMNLsBcD.js +1 -0
  106. package/dist/assets/python-_LoDBjEZ.js +1 -0
  107. package/dist/assets/q-SLmsw_60.js +1 -0
  108. package/dist/assets/r-CocOMjw8.js +1 -0
  109. package/dist/assets/rpm-WgkTpiCm.js +1 -0
  110. package/dist/assets/ruby-DquNeiGE.js +1 -0
  111. package/dist/assets/sas-sJxciv6G.js +1 -0
  112. package/dist/assets/scheme-DEjJDX5Z.js +1 -0
  113. package/dist/assets/shell-DhAwSAum.js +1 -0
  114. package/dist/assets/sieve-CcW8-k2R.js +1 -0
  115. package/dist/assets/simple-mode-BwNcRC8_.js +1 -0
  116. package/dist/assets/smalltalk-nXkQ5zwM.js +1 -0
  117. package/dist/assets/solr-DO54nYOg.js +1 -0
  118. package/dist/assets/sora-latin-400-normal-CRt88UEn.woff2 +0 -0
  119. package/dist/assets/sora-latin-400-normal-OW7qkl5a.woff +0 -0
  120. package/dist/assets/sora-latin-600-normal-1_7fyUAY.woff +0 -0
  121. package/dist/assets/sora-latin-600-normal-Cdg4DaK0.woff2 +0 -0
  122. package/dist/assets/sora-latin-700-normal-9waGdLWo.woff2 +0 -0
  123. package/dist/assets/sora-latin-700-normal-BKPfQAnC.woff +0 -0
  124. package/dist/assets/sora-latin-ext-400-normal-BmhJC382.woff +0 -0
  125. package/dist/assets/sora-latin-ext-400-normal-Twk1CgKs.woff2 +0 -0
  126. package/dist/assets/sora-latin-ext-600-normal-Cue1zdhl.woff2 +0 -0
  127. package/dist/assets/sora-latin-ext-600-normal-DLOJK0Ta.woff +0 -0
  128. package/dist/assets/sora-latin-ext-700-normal-DM0oy5s8.woff2 +0 -0
  129. package/dist/assets/sora-latin-ext-700-normal-Oc7uZIYt.woff +0 -0
  130. package/dist/assets/sparql-CxAS_pwk.js +1 -0
  131. package/dist/assets/spreadsheet-DWzAMKF2.js +1 -0
  132. package/dist/assets/sql-C_mHN2XB.js +1 -0
  133. package/dist/assets/stex-BmuQ0Xsx.js +1 -0
  134. package/dist/assets/stylus-CQ8h_EBd.js +1 -0
  135. package/dist/assets/swift-D0Eq5raO.js +1 -0
  136. package/dist/assets/tcl-D7utka2n.js +1 -0
  137. package/dist/assets/textile-XEeoev-k.js +1 -0
  138. package/dist/assets/tiddlywiki-CecErCuV.js +1 -0
  139. package/dist/assets/tiki-BlL-kki4.js +1 -0
  140. package/dist/assets/toml-mmtg9INI.js +1 -0
  141. package/dist/assets/troff-Crc1ZuaH.js +1 -0
  142. package/dist/assets/ttcn-Cri02b1f.js +1 -0
  143. package/dist/assets/ttcn-cfg--4YiJN4x.js +1 -0
  144. package/dist/assets/turtle-CUuoUr2N.js +1 -0
  145. package/dist/assets/vb-BrHulZxe.js +1 -0
  146. package/dist/assets/vbscript-vyHcteNE.js +1 -0
  147. package/dist/assets/velocity-DN4o8rq-.js +1 -0
  148. package/dist/assets/verilog-B0DGHLZN.js +1 -0
  149. package/dist/assets/vhdl-WeAF-qEm.js +1 -0
  150. package/dist/assets/webidl-C_bKeJT2.js +1 -0
  151. package/dist/assets/xquery-CLyH3kVm.js +1 -0
  152. package/dist/assets/yacas-Dq3LuV9B.js +1 -0
  153. package/dist/assets/z80-Br7weo_y.js +1 -0
  154. package/dist/favicon.svg +54 -0
  155. package/dist/icons.svg +24 -0
  156. package/dist/index.html +59 -0
  157. package/docs/ARCHITECTURE.md +194 -0
  158. package/docs/SETUP.md +242 -0
  159. package/docs/ui-desktop.png +0 -0
  160. package/docs/ui-desktop.svg +190 -0
  161. package/docs/ui-mobile.png +0 -0
  162. package/docs/ui-mobile.svg +113 -0
  163. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ var e;function t(e){return RegExp(`^(?:`+e.join(`|`)+`)$`,`i`)}var n=t([]),r=t([`@prefix`,`@base`,`a`]),i=/[*+\-<>=&|]/;function a(t,n){var a=t.next();if(e=null,a==`<`&&!t.match(/^[\s\u00a0=]/,!1))return t.match(/^[^\s\u00a0>]*>?/),`atom`;if(a==`"`||a==`'`)return n.tokenize=o(a),n.tokenize(t,n);if(/[{}\(\),\.;\[\]]/.test(a))return e=a,null;if(a==`#`)return t.skipToEnd(),`comment`;if(i.test(a))return t.eatWhile(i),null;if(a==`:`)return`operator`;if(t.eatWhile(/[_\w\d]/),t.peek()==`:`)return`variableName.special`;var s=t.current();return r.test(s)?`meta`:a>=`A`&&a<=`Z`?`comment`:`keyword`;var s}function o(e){return function(t,n){for(var r=!1,i;(i=t.next())!=null;){if(i==e&&!r){n.tokenize=a;break}r=!r&&i==`\\`}return`string`}}function s(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function c(e){e.indent=e.context.indent,e.context=e.context.prev}var l={name:`turtle`,startState:function(){return{tokenize:a,context:null,indent:0,col:0}},token:function(t,n){if(t.sol()&&(n.context&&n.context.align==null&&(n.context.align=!1),n.indent=t.indentation()),t.eatSpace())return null;var r=n.tokenize(t,n);if(r!=`comment`&&n.context&&n.context.align==null&&n.context.type!=`pattern`&&(n.context.align=!0),e==`(`)s(n,`)`,t.column());else if(e==`[`)s(n,`]`,t.column());else if(e==`{`)s(n,`}`,t.column());else if(/[\]\}\)]/.test(e)){for(;n.context&&n.context.type==`pattern`;)c(n);n.context&&e==n.context.type&&c(n)}else e==`.`&&n.context&&n.context.type==`pattern`?c(n):/atom|string|variable/.test(r)&&n.context&&(/[\}\]]/.test(n.context.type)?s(n,`pattern`,t.column()):n.context.type==`pattern`&&!n.context.align&&(n.context.align=!0,n.context.col=t.column()));return r},indent:function(e,t,n){var r=t&&t.charAt(0),i=e.context;if(/[\]\}]/.test(r))for(;i&&i.type==`pattern`;)i=i.prev;var a=i&&r==i.type;return i?i.type==`pattern`?i.col:i.align?i.col+(a?0:1):i.indent+(a?0:n.unit):0},languageData:{commentTokens:{line:`#`}}};export{l as turtle};
@@ -0,0 +1 @@
1
+ var e=`error`;function t(e){return RegExp(`^((`+e.join(`)|(`)+`))\\b`,`i`)}var n=RegExp(`^[\\+\\-\\*/%&\\\\|\\^~<>!]`),r=RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),i=RegExp(`^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))`),a=RegExp(`^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))`),o=RegExp(`^((//=)|(>>=)|(<<=)|(\\*\\*=))`),s=RegExp(`^[_A-Za-z][_A-Za-z0-9]*`),c=[`class`,`module`,`sub`,`enum`,`select`,`while`,`if`,`function`,`get`,`set`,`property`,`try`,`structure`,`synclock`,`using`,`with`],l=[`else`,`elseif`,`case`,`catch`,`finally`],u=[`next`,`loop`],d=[`and`,`andalso`,`or`,`orelse`,`xor`,`in`,`not`,`is`,`isnot`,`like`],f=t(d),p=`#const.#else.#elseif.#end.#if.#region.addhandler.addressof.alias.as.byref.byval.cbool.cbyte.cchar.cdate.cdbl.cdec.cint.clng.cobj.compare.const.continue.csbyte.cshort.csng.cstr.cuint.culng.cushort.declare.default.delegate.dim.directcast.each.erase.error.event.exit.explicit.false.for.friend.gettype.goto.handles.implements.imports.infer.inherits.interface.isfalse.istrue.lib.me.mod.mustinherit.mustoverride.my.mybase.myclass.namespace.narrowing.new.nothing.notinheritable.notoverridable.of.off.on.operator.option.optional.out.overloads.overridable.overrides.paramarray.partial.private.protected.public.raiseevent.readonly.redim.removehandler.resume.return.shadows.shared.static.step.stop.strict.then.throw.to.true.trycast.typeof.until.until.when.widening.withevents.writeonly`.split(`.`),m=`object.boolean.char.string.byte.sbyte.short.ushort.int16.uint16.integer.uinteger.int32.uint32.long.ulong.int64.uint64.decimal.single.double.float.date.datetime.intptr.uintptr`.split(`.`),h=t(p),g=t(m),_=`"`,v=t(c),y=t(l),b=t(u),x=t([`end`]),S=t([`do`]),C=null;function w(e,t){t.currentIndent++}function T(e,t){t.currentIndent--}function E(t,c){if(t.eatSpace())return null;if(t.peek()===`'`)return t.skipToEnd(),`comment`;if(t.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var l=!1;if((t.match(/^\d*\.\d+F?/i)||t.match(/^\d+\.\d*F?/)||t.match(/^\.\d+F?/))&&(l=!0),l)return t.eat(/J/i),`number`;var u=!1;if(t.match(/^&H[0-9a-f]+/i)||t.match(/^&O[0-7]+/i)?u=!0:t.match(/^[1-9]\d*F?/)?(t.eat(/J/i),u=!0):t.match(/^0(?![\dx])/i)&&(u=!0),u)return t.eat(/L/i),`number`}return t.match(_)?(c.tokenize=D(t.current()),c.tokenize(t,c)):t.match(o)||t.match(a)?null:t.match(i)||t.match(n)||t.match(f)?`operator`:t.match(r)?null:t.match(S)?(w(t,c),c.doInCurrentLine=!0,`keyword`):t.match(v)?(c.doInCurrentLine?c.doInCurrentLine=!1:w(t,c),`keyword`):t.match(y)?`keyword`:t.match(x)?(T(t,c),T(t,c),`keyword`):t.match(b)?(T(t,c),`keyword`):t.match(g)||t.match(h)?`keyword`:t.match(s)?`variable`:(t.next(),e)}function D(e){var t=e.length==1,n=`string`;return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=E,n;r.eat(/['"]/)}return t&&(i.tokenize=E),n}}function O(t,n){var r=n.tokenize(t,n),i=t.current();if(i===`.`)return r=n.tokenize(t,n),r===`variable`?`variable`:e;var a=`[({`.indexOf(i);return a!==-1&&w(t,n),C===`dedent`&&T(t,n)||(a=`])}`.indexOf(i),a!==-1&&T(t,n))?e:r}var k={name:`vb`,startState:function(){return{tokenize:E,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=O(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,``);return r.match(b)||r.match(x)||r.match(y)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:[`(`,`[`,`{`,`"`]},commentTokens:{line:`'`},autocomplete:c.concat(l).concat(u).concat(d).concat(p).concat(m)}};export{k as vb};
@@ -0,0 +1 @@
1
+ function e(e){var t=`error`;function n(e){return RegExp(`^((`+e.join(`)|(`)+`))\\b`,`i`)}var r=RegExp(`^[\\+\\-\\*/&\\\\\\^<>=]`),i=RegExp(`^((<>)|(<=)|(>=))`),a=RegExp(`^[\\.,]`),o=RegExp(`^[\\(\\)]`),s=RegExp(`^[A-Za-z][_A-Za-z0-9]*`),c=[`class`,`sub`,`select`,`while`,`if`,`function`,`property`,`with`,`for`],l=[`else`,`elseif`,`case`],u=[`next`,`loop`,`wend`],d=n([`and`,`or`,`not`,`xor`,`is`,`mod`,`eqv`,`imp`]),f=[`dim`,`redim`,`then`,`until`,`randomize`,`byval`,`byref`,`new`,`property`,`exit`,`in`,`const`,`private`,`public`,`get`,`set`,`let`,`stop`,`on error resume next`,`on error goto 0`,`option explicit`,`call`,`me`],p=[`true`,`false`,`nothing`,`empty`,`null`],m=`abs.array.asc.atn.cbool.cbyte.ccur.cdate.cdbl.chr.cint.clng.cos.csng.cstr.date.dateadd.datediff.datepart.dateserial.datevalue.day.escape.eval.execute.exp.filter.formatcurrency.formatdatetime.formatnumber.formatpercent.getlocale.getobject.getref.hex.hour.inputbox.instr.instrrev.int.fix.isarray.isdate.isempty.isnull.isnumeric.isobject.join.lbound.lcase.left.len.loadpicture.log.ltrim.rtrim.trim.maths.mid.minute.month.monthname.msgbox.now.oct.replace.rgb.right.rnd.round.scriptengine.scriptenginebuildversion.scriptenginemajorversion.scriptengineminorversion.second.setlocale.sgn.sin.space.split.sqr.strcomp.string.strreverse.tan.time.timer.timeserial.timevalue.typename.ubound.ucase.unescape.vartype.weekday.weekdayname.year`.split(`.`),h=`vbBlack.vbRed.vbGreen.vbYellow.vbBlue.vbMagenta.vbCyan.vbWhite.vbBinaryCompare.vbTextCompare.vbSunday.vbMonday.vbTuesday.vbWednesday.vbThursday.vbFriday.vbSaturday.vbUseSystemDayOfWeek.vbFirstJan1.vbFirstFourDays.vbFirstFullWeek.vbGeneralDate.vbLongDate.vbShortDate.vbLongTime.vbShortTime.vbObjectError.vbOKOnly.vbOKCancel.vbAbortRetryIgnore.vbYesNoCancel.vbYesNo.vbRetryCancel.vbCritical.vbQuestion.vbExclamation.vbInformation.vbDefaultButton1.vbDefaultButton2.vbDefaultButton3.vbDefaultButton4.vbApplicationModal.vbSystemModal.vbOK.vbCancel.vbAbort.vbRetry.vbIgnore.vbYes.vbNo.vbCr.VbCrLf.vbFormFeed.vbLf.vbNewLine.vbNullChar.vbNullString.vbTab.vbVerticalTab.vbUseDefault.vbTrue.vbFalse.vbEmpty.vbNull.vbInteger.vbLong.vbSingle.vbDouble.vbCurrency.vbDate.vbString.vbObject.vbError.vbBoolean.vbVariant.vbDataObject.vbDecimal.vbByte.vbArray`.split(`.`),g=[`WScript`,`err`,`debug`,`RegExp`],_=[`description`,`firstindex`,`global`,`helpcontext`,`helpfile`,`ignorecase`,`length`,`number`,`pattern`,`source`,`value`,`count`],v=[`clear`,`execute`,`raise`,`replace`,`test`,`write`,`writeline`,`close`,`open`,`state`,`eof`,`update`,`addnew`,`end`,`createobject`,`quit`],y=[`server`,`response`,`request`,`session`,`application`],b=[`buffer`,`cachecontrol`,`charset`,`contenttype`,`expires`,`expiresabsolute`,`isclientconnected`,`pics`,`status`,`clientcertificate`,`cookies`,`form`,`querystring`,`servervariables`,`totalbytes`,`contents`,`staticobjects`,`codepage`,`lcid`,`sessionid`,`timeout`,`scripttimeout`],x=[`addheader`,`appendtolog`,`binarywrite`,`end`,`flush`,`redirect`,`binaryread`,`remove`,`removeall`,`lock`,`unlock`,`abandon`,`getlasterror`,`htmlencode`,`mappath`,`transfer`,`urlencode`],S=v.concat(_);g=g.concat(h),e.isASP&&(g=g.concat(y),S=S.concat(x,b));var C=n(f),w=n(p),T=n(m),E=n(g),D=n(S),O=`"`,k=n(c),A=n(l),j=n(u),M=n([`end`]),N=n([`do`]),P=n([`on error resume next`,`exit`]),F=n([`rem`]);function I(e,t){t.currentIndent++}function L(e,t){t.currentIndent--}function R(e,n){if(e.eatSpace())return null;if(e.peek()===`'`||e.match(F))return e.skipToEnd(),`comment`;if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var c=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(c=!0),c)return e.eat(/J/i),`number`;var l=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?l=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),l=!0):e.match(/^0(?![\dx])/i)&&(l=!0),l)return e.eat(/L/i),`number`}return e.match(O)?(n.tokenize=z(e.current()),n.tokenize(e,n)):e.match(i)||e.match(r)||e.match(d)?`operator`:e.match(a)?null:e.match(o)?`bracket`:e.match(P)?(n.doInCurrentLine=!0,`keyword`):e.match(N)?(I(e,n),n.doInCurrentLine=!0,`keyword`):e.match(k)?(n.doInCurrentLine?n.doInCurrentLine=!1:I(e,n),`keyword`):e.match(A)?`keyword`:e.match(M)?(L(e,n),L(e,n),`keyword`):e.match(j)?(n.doInCurrentLine?n.doInCurrentLine=!1:L(e,n),`keyword`):e.match(C)?`keyword`:e.match(w)?`atom`:e.match(D)?`variableName.special`:e.match(T)||e.match(E)?`builtin`:e.match(s)?`variable`:(e.next(),t)}function z(e){var t=e.length==1,n=`string`;return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=R,n;r.eat(/['"]/)}return t&&(i.tokenize=R),n}}function B(e,n){var r=n.tokenize(e,n),i=e.current();return i===`.`?(r=n.tokenize(e,n),i=e.current(),r&&(r.substr(0,8)===`variable`||r===`builtin`||r===`keyword`)?((r===`builtin`||r===`keyword`)&&(r=`variable`),S.indexOf(i.substr(1))>-1&&(r=`keyword`),r):t):r}return{name:`vbscript`,startState:function(){return{tokenize:R,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=B(e,t);return t.lastToken={style:n,content:e.current()},n===null&&(n=null),n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,``);return r.match(j)||r.match(M)||r.match(A)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit}}}var t=e({});e({isASP:!0});export{t as vbScript};
@@ -0,0 +1 @@
1
+ function e(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var t=e(`#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}`),n=e(`#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}`),r=e(`$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent`),i=/[+\-*&%=<>!?:\/|]/;function a(e,t,n){return t.tokenize=n,n(e,t)}function o(e,o){var u=o.beforeParams;o.beforeParams=!1;var d=e.next();if(d==`'`&&!o.inString&&o.inParams)return o.lastTokenWasBuiltin=!1,a(e,o,s(d));if(d==`"`){if(o.lastTokenWasBuiltin=!1,o.inString)return o.inString=!1,`string`;if(o.inParams)return a(e,o,s(d))}else if(/[\[\]{}\(\),;\.]/.test(d))return d==`(`&&u?o.inParams=!0:d==`)`&&(o.inParams=!1,o.lastTokenWasBuiltin=!0),null;else if(/\d/.test(d))return o.lastTokenWasBuiltin=!1,e.eatWhile(/[\w\.]/),`number`;else if(d==`#`&&e.eat(`*`))return o.lastTokenWasBuiltin=!1,a(e,o,c);else if(d==`#`&&e.match(/ *\[ *\[/))return o.lastTokenWasBuiltin=!1,a(e,o,l);else if(d==`#`&&e.eat(`#`))return o.lastTokenWasBuiltin=!1,e.skipToEnd(),`comment`;else if(d==`$`)return e.eat(`!`),e.eatWhile(/[\w\d\$_\.{}-]/),r&&r.propertyIsEnumerable(e.current())?`keyword`:(o.lastTokenWasBuiltin=!0,o.beforeParams=!0,`builtin`);else if(i.test(d))return o.lastTokenWasBuiltin=!1,e.eatWhile(i),`operator`;else{e.eatWhile(/[\w\$_{}@]/);var f=e.current();return t&&t.propertyIsEnumerable(f)?`keyword`:n&&n.propertyIsEnumerable(f)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&e.peek()==`(`&&!(n&&n.propertyIsEnumerable(f.toLowerCase()))?(o.beforeParams=!0,o.lastTokenWasBuiltin=!1,`keyword`):o.inString?(o.lastTokenWasBuiltin=!1,`string`):e.pos>f.length&&e.string.charAt(e.pos-f.length-1)==`.`&&o.lastTokenWasBuiltin?`builtin`:(o.lastTokenWasBuiltin=!1,null)}}function s(e){return function(t,n){for(var r=!1,i,a=!1;(i=t.next())!=null;){if(i==e&&!r){a=!0;break}if(e==`"`&&t.peek()==`$`&&!r){n.inString=!0,a=!0;break}r=!r&&i==`\\`}return a&&(n.tokenize=o),`string`}}function c(e,t){for(var n=!1,r;r=e.next();){if(r==`#`&&n){t.tokenize=o;break}n=r==`*`}return`comment`}function l(e,t){for(var n=0,r;r=e.next();){if(r==`#`&&n==2){t.tokenize=o;break}r==`]`?n++:r!=` `&&(n=0)}return`meta`}var u={name:`velocity`,startState:function(){return{tokenize:o,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:`##`,block:{open:`#*`,close:`*#`}}}};export{u as velocity};
@@ -0,0 +1 @@
1
+ function e(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.noIndentKeywords||[],i=e.multiLineStrings,a=e.hooks||{};function o(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var s=o(`accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import incdir include initial inout input inside instance int integer interconnect interface intersect join join_any join_none large let liblist library local localparam logic longint macromodule matches medium modport module nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor`),c=/[\+\-\*\/!~&|^%=?:]/,l=/[\[\]{}()]/,u=/\d[0-9_]*/,d=/\d*\s*'s?d\s*\d[0-9_]*/i,f=/\d*\s*'s?b\s*[xz01][xz01_]*/i,p=/\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i,m=/\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i,h=/(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i,g=/^((\w+)|[)}\]])/,_=/[)}\]]/,v,y,b=o(`case checker class clocking config function generate interface module package primitive program property specify sequence table task`),x={};for(var S in b)x[S]=`end`+S;for(var C in x.begin=`end`,x.casex=`endcase`,x.casez=`endcase`,x.do=`while`,x.fork=`join;join_any;join_none`,x.covergroup=`endgroup`,r){var S=r[C];x[S]&&(x[S]=void 0)}var w=o(`always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while`);function T(e,t){var n=e.peek(),r;if(a[n]&&(r=a[n](e,t))!=0||a.tokenBase&&(r=a.tokenBase(e,t))!=0)return r;if(/[,;:\.]/.test(n))return v=e.next(),null;if(l.test(n))return v=e.next(),`bracket`;if(n=="`")return e.next(),e.eatWhile(/[\w\$_]/)?`def`:null;if(n==`$`)return e.next(),e.eatWhile(/[\w\$_]/)?`meta`:null;if(n==`#`)return e.next(),e.eatWhile(/[\d_.]/),`def`;if(n==`"`)return e.next(),t.tokenize=E(n),t.tokenize(e,t);if(n==`/`){if(e.next(),e.eat(`*`))return t.tokenize=D,D(e,t);if(e.eat(`/`))return e.skipToEnd(),`comment`;e.backUp(1)}if(e.match(h)||e.match(d)||e.match(f)||e.match(p)||e.match(m)||e.match(u)||e.match(h))return`number`;if(e.eatWhile(c))return`meta`;if(e.eatWhile(/[\w\$_]/)){var i=e.current();return s[i]?(x[i]&&(v=`newblock`),w[i]&&(v=`newstatement`),y=i,`keyword`):`variable`}return e.next(),null}function E(e){return function(t,n){for(var r=!1,a,o=!1;(a=t.next())!=null;){if(a==e&&!r){o=!0;break}r=!r&&a==`\\`}return(o||!(r||i))&&(n.tokenize=T),`string`}}function D(e,t){for(var n=!1,r;r=e.next();){if(r==`/`&&n){t.tokenize=T;break}n=r==`*`}return`comment`}function O(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function k(e,t,n){var r=e.indented;return e.context=new O(r,t,n,null,e.context)}function A(e){var t=e.context.type;return(t==`)`||t==`]`||t==`}`)&&(e.indented=e.context.indented),e.context=e.context.prev}function j(e,t){if(e==t)return!0;var n=t.split(`;`);for(var r in n)if(e==n[r])return!0;return!1}function M(){var e=[];for(var t in x)if(x[t]){var n=x[t].split(`;`);for(var r in n)e.push(n[r])}return RegExp(`[{}()\\[\\]]|(`+e.join(`|`)+`)$`)}return{name:`verilog`,startState:function(e){var t={tokenize:null,context:new O(-e,0,`top`,!1),indented:0,startOfLine:!0};return a.startState&&a.startState(t),t},token:function(e,t){var n=t.context;if(e.sol()&&(n.align??=!1,t.indented=e.indentation(),t.startOfLine=!0),a.token){var r=a.token(e,t);if(r!==void 0)return r}if(e.eatSpace())return null;v=null,y=null;var r=(t.tokenize||T)(e,t);if(r==`comment`||r==`meta`||r==`variable`)return r;if(n.align??=!0,v==n.type)A(t);else if(v==`;`&&n.type==`statement`||n.type&&j(y,n.type))for(n=A(t);n&&n.type==`statement`;)n=A(t);else if(v==`{`)k(t,e.column(),`}`);else if(v==`[`)k(t,e.column(),`]`);else if(v==`(`)k(t,e.column(),`)`);else if(n&&n.type==`endcase`&&v==`:`)k(t,e.column(),`statement`);else if(v==`newstatement`)k(t,e.column(),`statement`);else if(v==`newblock`&&!(y==`function`&&n&&(n.type==`statement`||n.type==`endgroup`))&&!(y==`task`&&n&&n.type==`statement`)){var i=x[y];k(t,e.column(),i)}return t.startOfLine=!1,r},indent:function(e,r,i){if(e.tokenize!=T&&e.tokenize!=null)return null;if(a.indent){var o=a.indent(e);if(o>=0)return o}var s=e.context,c=r&&r.charAt(0);s.type==`statement`&&c==`}`&&(s=s.prev);var l=!1,u=r.match(g);return u&&(l=j(u[0],s.type)),s.type==`statement`?s.indented+(c==`{`?0:t||i.unit):_.test(s.type)&&s.align&&!n?s.column+(l?0:1):s.type==`)`&&!l?s.indented+(t||i.unit):s.indented+(l?0:i.unit)},languageData:{indentOnInput:M(),commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}}}var t=e({}),n={"|":`link`,">":`property`,$:`variable`,$$:`variable`,"?$":`qualifier`,"?*":`qualifier`,"-":`contentSeparator`,"/":`property`,"/-":`property`,"@":`variableName.special`,"@-":`variableName.special`,"@++":`variableName.special`,"@+=":`variableName.special`,"@+=-":`variableName.special`,"@--":`variableName.special`,"@-=":`variableName.special`,"%+":`tag`,"%-":`tag`,"%":`tag`,">>":`tag`,"<<":`tag`,"<>":`tag`,"#":`tag`,"^":`attribute`,"^^":`attribute`,"^!":`attribute`,"*":`variable`,"**":`variable`,"\\":`keyword`,'"':`comment`},r={"/":`beh-hier`,">":`beh-hier`,"-":`phys-hier`,"|":`pipe`,"?":`when`,"@":`stage`,"\\":`keyword`},i=3,a=!1,o=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,s=/^[! ] */,c=/^\/[\/\*]/;e({hooks:{electricInput:!1,token:function(e,t){var l=void 0,u;if(e.sol()&&!t.tlvInBlockComment){e.peek()==`\\`&&(l=`def`,e.skipToEnd(),e.string.match(/\\SV/)?t.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(t.tlvCodeActive=!0)),t.tlvCodeActive&&e.pos==0&&t.indented==0&&(u=e.match(s,!1))&&(t.indented=u[0].length);var d=t.indented,f=d/i;if(f<=t.tlvIndentationStyle.length){var p=e.string.length==d,m=f*i;if(m<e.string.length){var h=e.string.slice(m),g=h[0];r[g]&&(u=h.match(o))&&n[u[1]]&&(d+=i,g==`\\`&&m>0||(t.tlvIndentationStyle[f]=r[g],a&&(t.statementComment=!1),f++))}if(!p)for(;t.tlvIndentationStyle.length>f;)t.tlvIndentationStyle.pop()}t.tlvNextIndent=d}if(t.tlvCodeActive){var _=!1;a&&(_=e.peek()!=` `&&l===void 0&&!t.tlvInBlockComment&&e.column()==t.tlvIndentationStyle.length*i,_&&(t.statementComment&&(_=!1),t.statementComment=e.match(c,!1)));var u;if(l===void 0)if(t.tlvInBlockComment)e.match(/^.*?\*\//)?(t.tlvInBlockComment=!1,a&&!e.eol()&&(t.statementComment=!1)):e.skipToEnd(),l=`comment`;else if((u=e.match(c))&&!t.tlvInBlockComment)u[0]==`//`?e.skipToEnd():t.tlvInBlockComment=!0,l=`comment`;else if(u=e.match(o)){var v=u[1],y=u[2];n.hasOwnProperty(v)&&(y.length>0||e.eol())?l=n[v]:e.backUp(e.current().length-1)}else e.match(/^\t+/)?l=`invalid`:e.match(/^[\[\]{}\(\);\:]+/)?l=`meta`:(u=e.match(/^[mM]4([\+_])?[\w\d_]*/))?l=u[1]==`+`?`keyword.special`:`keyword`:e.match(/^ +/)?e.eol()&&(l=`error`):e.match(/^[\w\d_]+/)?l=`number`:e.next()}else e.match(/^[mM]4([\w\d_]*)/)&&(l=`keyword`);return l},indent:function(e){return e.tlvCodeActive==1?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1,a&&(e.statementComment=!1)}}});export{t as verilog};
@@ -0,0 +1 @@
1
+ function e(e){for(var t={},n=e.split(`,`),r=0;r<n.length;++r){var i=n[r].toUpperCase(),a=n[r].charAt(0).toUpperCase()+n[r].slice(1);t[n[r]]=!0,t[i]=!0,t[a]=!0}return t}function t(e){return e.eatWhile(/[\w\$_]/),`meta`}var n=e(`null`),r={"`":t,$:t},i=!1,a=e(`abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor`),o=e(`architecture,entity,begin,case,port,else,elsif,end,for,function,if`),s=/[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/,c;function l(e,t){var i=e.next();if(r[i]){var l=r[i](e,t);if(l!==!1)return l}if(i==`"`)return t.tokenize=d(i),t.tokenize(e,t);if(i==`'`)return t.tokenize=u(i),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(i))return c=i,null;if(/[\d']/.test(i))return e.eatWhile(/[\w\.']/),`number`;if(i==`-`&&e.eat(`-`))return e.skipToEnd(),`comment`;if(s.test(i))return e.eatWhile(s),`operator`;e.eatWhile(/[\w\$_]/);var f=e.current();return a.propertyIsEnumerable(f.toLowerCase())?(o.propertyIsEnumerable(f)&&(c=`newstatement`),`keyword`):n.propertyIsEnumerable(f)?`atom`:`variable`}function u(e){return function(t,n){for(var r=!1,a,o=!1;(a=t.next())!=null;){if(a==e&&!r){o=!0;break}r=!r&&a==`--`}return(o||!(r||i))&&(n.tokenize=l),`string`}}function d(e){return function(t,n){for(var r=!1,a,o=!1;(a=t.next())!=null;){if(a==e&&!r){o=!0;break}r=!r&&a==`--`}return(o||!(r||i))&&(n.tokenize=l),`string.special`}}function f(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function p(e,t,n){return e.context=new f(e.indented,t,n,null,e.context)}function m(e){var t=e.context.type;return(t==`)`||t==`]`||t==`}`)&&(e.indented=e.context.indented),e.context=e.context.prev}var h={name:`vhdl`,startState:function(e){return{tokenize:null,context:new f(-e,0,`top`,!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align??=!1,t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;c=null;var r=(t.tokenize||l)(e,t);if(r==`comment`||r==`meta`)return r;if(n.align??=!0,(c==`;`||c==`:`)&&n.type==`statement`)m(t);else if(c==`{`)p(t,e.column(),`}`);else if(c==`[`)p(t,e.column(),`]`);else if(c==`(`)p(t,e.column(),`)`);else if(c==`}`){for(;n.type==`statement`;)n=m(t);for(n.type==`}`&&(n=m(t));n.type==`statement`;)n=m(t)}else c==n.type?m(t):(n.type==`}`||n.type==`top`||n.type==`statement`&&c==`newstatement`)&&p(t,e.column(),`statement`);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=l&&e.tokenize!=null)return 0;var r=t&&t.charAt(0),i=e.context,a=r==i.type;return i.type==`statement`?i.indented+(r==`{`?0:n.unit):i.align?i.column+(a?0:1):i.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:`--`}}};export{h as vhdl};
@@ -0,0 +1 @@
1
+ function e(e){return RegExp(`^((`+e.join(`)|(`)+`))\\b`)}var t=[`Clamp`,`Constructor`,`EnforceRange`,`Exposed`,`ImplicitThis`,`Global`,`PrimaryGlobal`,`LegacyArrayClass`,`LegacyUnenumerableNamedProperties`,`LenientThis`,`NamedConstructor`,`NewObject`,`NoInterfaceObject`,`OverrideBuiltins`,`PutForwards`,`Replaceable`,`SameObject`,`TreatNonObjectAsNull`,`TreatNullAs`,`EmptyString`,`Unforgeable`,`Unscopeable`],n=e(t),r=`unsigned.short.long.unrestricted.float.double.boolean.byte.octet.Promise.ArrayBuffer.DataView.Int8Array.Int16Array.Int32Array.Uint8Array.Uint16Array.Uint32Array.Uint8ClampedArray.Float32Array.Float64Array.ByteString.DOMString.USVString.sequence.object.RegExp.Error.DOMException.FrozenArray.any.void`.split(`.`),i=e(r),a=[`attribute`,`callback`,`const`,`deleter`,`dictionary`,`enum`,`getter`,`implements`,`inherit`,`interface`,`iterable`,`legacycaller`,`maplike`,`partial`,`required`,`serializer`,`setlike`,`setter`,`static`,`stringifier`,`typedef`,`optional`,`readonly`,`or`],o=e(a),s=[`true`,`false`,`Infinity`,`NaN`,`null`],c=e(s),l=e([`callback`,`dictionary`,`enum`,`interface`]),u=e([`typedef`]),d=/^[:<=>?]/,f=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,p=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,m=/^_?[A-Za-z][0-9A-Z_a-z-]*/,h=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,g=/^"[^"]*"/,_=/^\/\*.*?\*\//,v=/^\/\*.*/,y=/^.*?\*\//;function b(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(y)?(t.inComment=!1,`comment`):(e.skipToEnd(),`comment`);if(e.match(`//`))return e.skipToEnd(),`comment`;if(e.match(_))return`comment`;if(e.match(v))return t.inComment=!0,`comment`;if(e.match(/^-?[0-9\.]/,!1)&&(e.match(f)||e.match(p)))return`number`;if(e.match(g))return`string`;if(t.startDef&&e.match(m))return`def`;if(t.endDef&&e.match(h))return t.endDef=!1,`def`;if(e.match(o))return`keyword`;if(e.match(i)){var r=t.lastToken,a=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return r===`:`||r===`implements`||a===`implements`||a===`=`?`builtin`:`type`}return e.match(n)?`builtin`:e.match(c)?`atom`:e.match(m)?`variable`:e.match(d)?`operator`:(e.next(),null)}var x={name:`webidl`,startState:function(){return{inComment:!1,lastToken:``,startDef:!1,endDef:!1}},token:function(e,t){var n=b(e,t);if(n){var r=e.current();t.lastToken=r,n===`keyword`?(t.startDef=l.test(r),t.endDef=t.endDef||u.test(r)):t.startDef=!1}return n},languageData:{autocomplete:t.concat(r).concat(a).concat(s)}};export{x as webIDL};
@@ -0,0 +1 @@
1
+ var e=function(){function e(e){return{type:e,style:`keyword`}}for(var t=e(`operator`),n={type:`atom`,style:`atom`},r={type:`punctuation`,style:null},i={type:`axis_specifier`,style:`qualifier`},a={",":r},o=`after.all.allowing.ancestor.ancestor-or-self.any.array.as.ascending.at.attribute.base-uri.before.boundary-space.by.case.cast.castable.catch.child.collation.comment.construction.contains.content.context.copy.copy-namespaces.count.decimal-format.declare.default.delete.descendant.descendant-or-self.descending.diacritics.different.distance.document.document-node.element.else.empty.empty-sequence.encoding.end.entire.every.exactly.except.external.first.following.following-sibling.for.from.ftand.ftnot.ft-option.ftor.function.fuzzy.greatest.group.if.import.in.inherit.insensitive.insert.instance.intersect.into.invoke.is.item.language.last.lax.least.let.levels.lowercase.map.modify.module.most.namespace.next.no.node.nodes.no-inherit.no-preserve.not.occurs.of.only.option.order.ordered.ordering.paragraph.paragraphs.parent.phrase.preceding.preceding-sibling.preserve.previous.processing-instruction.relationship.rename.replace.return.revalidation.same.satisfies.schema.schema-attribute.schema-element.score.self.sensitive.sentence.sentences.sequence.skip.sliding.some.stable.start.stemming.stop.strict.strip.switch.text.then.thesaurus.times.to.transform.treat.try.tumbling.type.typeswitch.union.unordered.update.updating.uppercase.using.validate.value.variable.version.weight.when.where.wildcards.window.with.without.word.words.xquery`.split(`.`),s=0,c=o.length;s<c;s++)a[o[s]]=e(o[s]);for(var l=`xs:anyAtomicType.xs:anySimpleType.xs:anyType.xs:anyURI.xs:base64Binary.xs:boolean.xs:byte.xs:date.xs:dateTime.xs:dateTimeStamp.xs:dayTimeDuration.xs:decimal.xs:double.xs:duration.xs:ENTITIES.xs:ENTITY.xs:float.xs:gDay.xs:gMonth.xs:gMonthDay.xs:gYear.xs:gYearMonth.xs:hexBinary.xs:ID.xs:IDREF.xs:IDREFS.xs:int.xs:integer.xs:item.xs:java.xs:language.xs:long.xs:Name.xs:NCName.xs:negativeInteger.xs:NMTOKEN.xs:NMTOKENS.xs:nonNegativeInteger.xs:nonPositiveInteger.xs:normalizedString.xs:NOTATION.xs:numeric.xs:positiveInteger.xs:precisionDecimal.xs:QName.xs:short.xs:string.xs:time.xs:token.xs:unsignedByte.xs:unsignedInt.xs:unsignedLong.xs:unsignedShort.xs:untyped.xs:untypedAtomic.xs:yearMonthDuration`.split(`.`),s=0,c=l.length;s<c;s++)a[l[s]]=n;for(var u=[`eq`,`ne`,`lt`,`le`,`gt`,`ge`,`:=`,`=`,`>`,`>=`,`<`,`<=`,`.`,`|`,`?`,`and`,`or`,`div`,`idiv`,`mod`,`*`,`/`,`+`,`-`],s=0,c=u.length;s<c;s++)a[u[s]]=t;for(var d=[`self::`,`attribute::`,`child::`,`descendant::`,`descendant-or-self::`,`parent::`,`ancestor::`,`ancestor-or-self::`,`following::`,`preceding::`,`following-sibling::`,`preceding-sibling::`],s=0,c=d.length;s<c;s++)a[d[s]]=i;return a}();function t(e,t,n){return t.tokenize=n,n(e,t)}function n(n,i){var c=n.next(),p=!1,g=h(n);if(c==`<`){if(n.match(`!--`,!0))return t(n,i,l);if(n.match(`![CDATA`,!1))return i.tokenize=u,`tag`;if(n.match(`?`,!1))return t(n,i,d);var y=n.eat(`/`);n.eatSpace();for(var b=``,x;x=n.eat(/[^\s\u00a0=<>\"\'\/?]/);)b+=x;return t(n,i,s(b,y))}else if(c==`{`)return _(i,{type:`codeblock`}),null;else if(c==`}`)return v(i),null;else if(f(i))return c==`>`?`tag`:c==`/`&&n.eat(`>`)?(v(i),`tag`):`variable`;else if(/\d/.test(c))return n.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),`atom`;else if(c===`(`&&n.eat(`:`))return _(i,{type:`comment`}),t(n,i,r);else if(!g&&(c===`"`||c===`'`))return a(n,i,c);else if(c===`$`)return t(n,i,o);else if(c===`:`&&n.eat(`=`))return`keyword`;else if(c===`(`)return _(i,{type:`paren`}),null;else if(c===`)`)return v(i),null;else if(c===`[`)return _(i,{type:`bracket`}),null;else if(c===`]`)return v(i),null;else{var S=e.propertyIsEnumerable(c)&&e[c];if(g&&c===`"`)for(;n.next()!==`"`;);if(g&&c===`'`)for(;n.next()!==`'`;);S||n.eatWhile(/[\w\$_-]/);var C=n.eat(`:`);!n.eat(`:`)&&C&&n.eatWhile(/[\w\$_-]/),n.match(/^[ \t]*\(/,!1)&&(p=!0);var w=n.current();return S=e.propertyIsEnumerable(w)&&e[w],p&&!S&&(S={type:`function_call`,style:`def`}),m(i)?(v(i),`variable`):((w==`element`||w==`attribute`||S.type==`axis_specifier`)&&_(i,{type:`xmlconstructor`}),S?S.style:`variable`)}}function r(e,t){for(var n=!1,r=!1,i=0,a;a=e.next();){if(a==`)`&&n)if(i>0)i--;else{v(t);break}else a==`:`&&r&&i++;n=a==`:`,r=a==`(`}return`comment`}function i(e,t){return function(r,i){for(var a;a=r.next();)if(a==e){v(i),t&&(i.tokenize=t);break}else if(r.match(`{`,!1)&&p(i))return _(i,{type:`codeblock`}),i.tokenize=n,`string`;return`string`}}function a(e,n,r,a){let o=i(r,a);return _(n,{type:`string`,name:r,tokenize:o}),t(e,n,o)}function o(e,t){var r=/[\w\$_-]/;if(e.eat(`"`)){for(;e.next()!==`"`;);e.eat(`:`)}else e.eatWhile(r),e.match(`:=`,!1)||e.eat(`:`);return e.eatWhile(r),t.tokenize=n,`variable`}function s(e,t){return function(r,i){if(r.eatSpace(),t&&r.eat(`>`))return v(i),i.tokenize=n,`tag`;if(r.eat(`/`)||_(i,{type:`tag`,name:e,tokenize:n}),r.eat(`>`))i.tokenize=n;else return i.tokenize=c,`tag`;return`tag`}}function c(e,t){var r=e.next();return r==`/`&&e.eat(`>`)?(p(t)&&v(t),f(t)&&v(t),`tag`):r==`>`?(p(t)&&v(t),`tag`):r==`=`?null:r==`"`||r==`'`?a(e,t,r,c):(p(t)||_(t,{type:`attribute`,tokenize:c}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(`>`,!1)||e.match(`/`,!1))&&(v(t),t.tokenize=n),`attribute`)}function l(e,t){for(var r;r=e.next();)if(r==`-`&&e.match(`->`,!0))return t.tokenize=n,`comment`}function u(e,t){for(var r;r=e.next();)if(r==`]`&&e.match(`]`,!0))return t.tokenize=n,`comment`}function d(e,t){for(var r;r=e.next();)if(r==`?`&&e.match(`>`,!0))return t.tokenize=n,`processingInstruction`}function f(e){return g(e,`tag`)}function p(e){return g(e,`attribute`)}function m(e){return g(e,`xmlconstructor`)}function h(e){return e.current()===`"`?e.match(/^[^\"]+\"\:/,!1):e.current()===`'`?e.match(/^[^\"]+\'\:/,!1):!1}function g(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function _(e,t){e.stack.push(t)}function v(e){e.stack.pop(),e.tokenize=e.stack.length&&e.stack[e.stack.length-1].tokenize||n}var y={name:`xquery`,startState:function(){return{tokenize:n,cc:[],stack:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:`(:`,close:`:)`}}}};export{y as xQuery};
@@ -0,0 +1 @@
1
+ function e(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var t=e(`Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While`),n=`(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)`,r=`(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)`,i=new RegExp(n),a=new RegExp(r),o=RegExp(r+`?_`+r),s=RegExp(r+`\\s*\\(`);function c(e,n){var r=e.next();if(r===`"`)return n.tokenize=l,n.tokenize(e,n);if(r===`/`){if(e.eat(`*`))return n.tokenize=u,n.tokenize(e,n);if(e.eat(`/`))return e.skipToEnd(),`comment`}e.backUp(1);var c=e.match(/^(\w+)\s*\(/,!1);c!==null&&t.hasOwnProperty(c[1])&&n.scopes.push(`bodied`);var f=d(n);if(f===`bodied`&&r===`[`&&n.scopes.pop(),(r===`[`||r===`{`||r===`(`)&&n.scopes.push(r),f=d(n),(f===`[`&&r===`]`||f===`{`&&r===`}`||f===`(`&&r===`)`)&&n.scopes.pop(),r===`;`)for(;f===`bodied`;)n.scopes.pop(),f=d(n);return e.match(/\d+ *#/,!0,!1)?`qualifier`:e.match(i,!0,!1)?`number`:e.match(o,!0,!1)?`variableName.special`:e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?`bracket`:e.match(s,!0,!1)?(e.backUp(1),`variableName.function`):e.match(a,!0,!1)?`variable`:e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?`operator`:`error`}function l(e,t){for(var n,r=!1,i=!1;(n=e.next())!=null;){if(n===`"`&&!i){r=!0;break}i=!i&&n===`\\`}return r&&!i&&(t.tokenize=c),`string`}function u(e,t){for(var n,r;(r=e.next())!=null;){if(n===`*`&&r===`/`){t.tokenize=c;break}n=r}return`comment`}function d(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}var f={name:`yacas`,startState:function(){return{tokenize:c,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==c&&e.tokenize!==null)return null;var r=0;return(t===`]`||t===`];`||t===`}`||t===`};`||t===`);`)&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}};export{f as yacas};
@@ -0,0 +1 @@
1
+ function e(e){var t,n;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,n=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,n=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var r=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,i=/^(n?[zc]|p[oe]?|m)\b/i,a=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,o=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:`z80`,startState:function(){return{context:0}},token:function(s,c){if(s.column()||(c.context=0),s.eatSpace())return null;var l;if(s.eatWhile(/\w/))if(e&&s.eat(`.`)&&s.eatWhile(/\w/),l=s.current(),s.indentation()){if((c.context==1||c.context==4)&&r.test(l))return c.context=4,`variable`;if(c.context==2&&i.test(l))return c.context=4,`variableName.special`;if(t.test(l))return c.context=1,`keyword`;if(n.test(l))return c.context=2,`keyword`;if(c.context==4&&o.test(l))return`number`;if(a.test(l))return`error`}else if(s.match(o))return`number`;else return null;else if(s.eat(`;`))return s.skipToEnd(),`comment`;else if(s.eat(`"`)){for(;(l=s.next())&&l!=`"`;)l==`\\`&&s.next();return`string`}else if(s.eat(`'`)){if(s.match(/\\?.'/))return`number`}else if(s.eat(`.`)||s.sol()&&s.eat(`#`)){if(c.context=5,s.eatWhile(/\w/))return`def`}else if(s.eat(`$`)){if(s.eatWhile(/[\da-f]/i))return`number`}else if(s.eat(`%`)){if(s.eatWhile(/[01]/))return`number`}else s.next();return null}}}var t=e(!1);e(!0);export{t as z80};
@@ -0,0 +1,54 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
2
+ <defs>
3
+ <linearGradient id="ndx-stroke" x1="48" y1="36" x2="206" y2="214" gradientUnits="userSpaceOnUse">
4
+ <stop offset="0" stop-color="#6CF0FF" />
5
+ <stop offset="0.52" stop-color="#79A6FF" />
6
+ <stop offset="1" stop-color="#EE74FF" />
7
+ </linearGradient>
8
+ <radialGradient id="ndx-core" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(128 128) rotate(90) scale(104)">
9
+ <stop offset="0" stop-color="#162246" stop-opacity="0.96" />
10
+ <stop offset="0.68" stop-color="#0C1224" stop-opacity="0.82" />
11
+ <stop offset="1" stop-color="#060910" stop-opacity="0" />
12
+ </radialGradient>
13
+ <filter id="ndx-glow" x="6" y="10" width="244" height="236" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
14
+ <feGaussianBlur stdDeviation="8" result="blur" />
15
+ <feMerge>
16
+ <feMergeNode in="blur" />
17
+ <feMergeNode in="SourceGraphic" />
18
+ </feMerge>
19
+ </filter>
20
+ </defs>
21
+
22
+ <circle cx="128" cy="128" r="92" fill="url(#ndx-core)" />
23
+ <g filter="url(#ndx-glow)" stroke="url(#ndx-stroke)" stroke-linecap="round" stroke-linejoin="round">
24
+ <circle cx="128" cy="128" r="76" stroke-opacity="0.9" stroke-width="3" />
25
+ <circle cx="128" cy="128" r="58" stroke-opacity="0.84" stroke-width="2.5" />
26
+ <ellipse cx="128" cy="128" rx="98" ry="44" transform="rotate(30 128 128)" stroke-opacity="0.92" stroke-width="3.2" />
27
+ <ellipse cx="128" cy="128" rx="98" ry="44" transform="rotate(-30 128 128)" stroke-opacity="0.92" stroke-width="3.2" />
28
+
29
+ <path d="M128 39L136 67L128 82L120 67L128 39Z" stroke-opacity="0.82" stroke-width="3" />
30
+ <path d="M217 128L189 136L174 128L189 120L217 128Z" stroke-opacity="0.82" stroke-width="3" />
31
+ <path d="M128 217L120 189L128 174L136 189L128 217Z" stroke-opacity="0.82" stroke-width="3" />
32
+ <path d="M39 128L67 120L82 128L67 136L39 128Z" stroke-opacity="0.82" stroke-width="3" />
33
+
34
+ <path d="M128 48L147 59V81L128 92L109 81V59L128 48Z" stroke-width="3" />
35
+ <path d="M128 44L152 58V86L128 100L104 86V58L128 44Z" stroke-opacity="0.7" stroke-width="2" />
36
+
37
+ <path d="M128 84L166 106V150L128 172L90 150V106L128 84Z" stroke-width="3" />
38
+ <path d="M128 74L174 101V155L128 182L82 155V101L128 74Z" stroke-opacity="0.82" stroke-width="2.4" />
39
+ <path d="M128 98L150 111V145L128 158L106 145V111L128 98Z" stroke-opacity="0.76" stroke-width="2" />
40
+
41
+ <path d="M112 151V105L144 151V105" stroke-width="6" />
42
+ <path d="M112 151L112 105L144 151L144 105" stroke-width="2.4" />
43
+
44
+ <circle cx="79" cy="91" r="6.5" fill="#79A6FF" stroke-width="2" />
45
+ <circle cx="177" cy="79" r="9" fill="#6CF0FF" stroke-width="2" />
46
+ <circle cx="190" cy="162" r="7" fill="#B786FF" stroke-width="2" />
47
+ <circle cx="74" cy="173" r="7.5" fill="#EE74FF" stroke-width="2" />
48
+
49
+ <path d="M89 55L93 59L89 63L85 59L89 55Z" fill="#6CF0FF" stroke-width="1.6" />
50
+ <path d="M199 104L203 108L199 112L195 108L199 104Z" fill="#79A6FF" stroke-width="1.6" />
51
+ <path d="M185 198L189 202L185 206L181 202L185 198Z" fill="#EE74FF" stroke-width="1.6" />
52
+ <path d="M56 143L60 147L56 151L52 147L56 143Z" fill="#79A6FF" stroke-width="1.6" />
53
+ </g>
54
+ </svg>
package/dist/icons.svg ADDED
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>
@@ -0,0 +1,59 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=nomadex-n" />
6
+ <link rel="shortcut icon" href="/favicon.svg?v=nomadex-n" />
7
+ <link rel="apple-touch-icon" href="/favicon.svg?v=nomadex-n" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <meta name="color-scheme" content="dark" />
10
+ <meta name="theme-color" content="#17384b" />
11
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
12
+ <title>Nomadex</title>
13
+ <script>
14
+ (() => {
15
+ const storageKey = "nomadex-ui-theme";
16
+ const themeMap = {
17
+ void: { mode: "dark", themeColor: "#17384b" },
18
+ ember: { mode: "dark", themeColor: "#4b2616" },
19
+ plasma: { mode: "dark", themeColor: "#4b215e" },
20
+ arctic: { mode: "dark", themeColor: "#163a4f" },
21
+ crimson: { mode: "dark", themeColor: "#4a1d28" },
22
+ matrix: { mode: "dark", themeColor: "#183720" },
23
+ solar: { mode: "light", themeColor: "#e8d5bc" },
24
+ midnight: { mode: "dark", themeColor: "#2a3260" },
25
+ };
26
+
27
+ try {
28
+ const storedTheme = window.localStorage.getItem(storageKey);
29
+ const activeTheme = themeMap[storedTheme] ?? themeMap.void;
30
+ const activeThemeId = themeMap[storedTheme] ? storedTheme : "void";
31
+ const root = document.documentElement;
32
+
33
+ root.dataset.uiTheme = activeThemeId;
34
+ root.style.setProperty("color-scheme", activeTheme.mode);
35
+ document
36
+ .querySelector('meta[name="theme-color"]')
37
+ ?.setAttribute("content", activeTheme.themeColor);
38
+ document
39
+ .querySelector('meta[name="color-scheme"]')
40
+ ?.setAttribute("content", activeTheme.mode);
41
+ document
42
+ .querySelector('meta[name="apple-mobile-web-app-status-bar-style"]')
43
+ ?.setAttribute(
44
+ "content",
45
+ activeTheme.mode === "light" ? "default" : "black-translucent",
46
+ );
47
+ } catch {
48
+ // Ignore storage/meta sync failures during boot.
49
+ }
50
+ })();
51
+ </script>
52
+ <script type="module" crossorigin src="/assets/index-BpFNmvYv.js"></script>
53
+ <link rel="modulepreload" crossorigin href="/assets/dist-DhhFPaYP.js">
54
+ <link rel="stylesheet" crossorigin href="/assets/index-De1iEP2f.css">
55
+ </head>
56
+ <body>
57
+ <div id="root"></div>
58
+ </body>
59
+ </html>
@@ -0,0 +1,194 @@
1
+ # Architecture
2
+
3
+ Nomadex is a provider-aware browser shell around a local coding-agent runtime.
4
+
5
+ The important design choice is that the agent stays on your machine. Nomadex is the remote control surface, not the execution environment.
6
+
7
+ ## Goals
8
+
9
+ - keep the real agent, repo, and credentials local to the host machine
10
+ - provide a responsive browser UI for desktop and mobile
11
+ - make remote supervision practical from a phone or secondary device
12
+ - separate rendering, runtime, and provider concerns
13
+ - leave room for multiple providers without rewriting the shell
14
+
15
+ ## Runtime Topology
16
+
17
+ Recommended live flow:
18
+
19
+ ```text
20
+ Remote browser or phone
21
+ -> Nomadex UI host
22
+ -> same-origin websocket proxy
23
+ -> local coding agent bridge on the host machine
24
+ ```
25
+
26
+ Current reference path:
27
+
28
+ ```text
29
+ Browser
30
+ -> Nomadex UI host (3784)
31
+ -> /codex-ws proxy
32
+ -> Codex app-server (3901)
33
+ ```
34
+
35
+ The browser does not talk to the agent bridge directly. It talks to the Nomadex host, which:
36
+
37
+ - proxies websocket traffic
38
+ - serves local image and file browse routes
39
+ - relays auth callback routes
40
+
41
+ That same-origin model is what makes the mobile and remote access story simpler.
42
+
43
+ ## Main Layers
44
+
45
+ ### Composition root
46
+
47
+ - `src/app/WorkspaceShell.tsx`
48
+
49
+ Responsibilities:
50
+
51
+ - route-to-panel mapping
52
+ - shell state and active thread selection
53
+ - sidebar and overlay behavior
54
+ - composer orchestration
55
+ - bridging snapshot/actions into the view layer
56
+
57
+ ### View layer
58
+
59
+ - `src/app/WorkspaceView.tsx`
60
+ - `src/app/components/ChatTranscript.tsx`
61
+ - `src/app/components/SettingsPanels.tsx`
62
+ - `src/app/components/TerminalPanel.tsx`
63
+ - `src/app/components/FileChangeSummary.tsx`
64
+
65
+ Responsibilities:
66
+
67
+ - transcript rendering
68
+ - markdown and structured prompt rendering
69
+ - settings, theme, and skills UI
70
+ - terminal and file/editor surfaces
71
+ - diff, file-change, and summary views
72
+
73
+ ### Runtime service
74
+
75
+ - `src/app/services/runtime/WorkspaceRuntimeService.ts`
76
+
77
+ Responsibilities:
78
+
79
+ - websocket lifecycle
80
+ - request/response transport
81
+ - optimistic local state updates
82
+ - stream delta handling
83
+ - uploads
84
+ - thread and turn mutation flow
85
+ - provider setup and auth flows
86
+
87
+ ### Presentation service
88
+
89
+ - `src/app/services/presentation/workspacePresentationService.ts`
90
+
91
+ Responsibilities:
92
+
93
+ - shape raw protocol data for rendering
94
+ - parse message text and attachments
95
+ - build file/image/browse display links
96
+ - summarize changed files, graph rows, and transcript overlays
97
+
98
+ ### Provider layer
99
+
100
+ - `src/app/services/providers/*`
101
+
102
+ Responsibilities:
103
+
104
+ - provider identifiers and metadata
105
+ - transport conventions
106
+ - websocket/auth/local-asset path conventions
107
+ - upload root conventions
108
+ - request headings and parsing markers
109
+
110
+ ## Data Flow
111
+
112
+ ### Sending a prompt
113
+
114
+ 1. The composer state is collected in `WorkspaceShell`.
115
+ 2. Runtime uploads files and images when needed.
116
+ 3. Mentions and attachments are normalized.
117
+ 4. Prompt text is built, including shared thread memory when needed.
118
+ 5. The runtime sends `turn/start` or the relevant provider-specific action.
119
+
120
+ ### Receiving a response
121
+
122
+ 1. The bridge emits thread, turn, and item notifications.
123
+ 2. The runtime merges those events into the dashboard snapshot.
124
+ 3. Stream visibility and optimistic state are updated.
125
+ 4. Presentation helpers derive renderable transcript state.
126
+ 5. `ChatTranscript` renders streaming and completed output.
127
+
128
+ ### Steering an active turn
129
+
130
+ 1. The user applies steer from the UI.
131
+ 2. Nomadex creates an immediate local steer-history entry for the active turn.
132
+ 3. The runtime sends `turn/steer` to the bridge.
133
+ 4. Successful steer entries persist in app-owned thread state and local storage so they survive reloads even though the current backend does not emit a dedicated steer history event.
134
+
135
+ ## Remote-First Design
136
+
137
+ Nomadex is designed around remote supervision rather than a traditional local-only IDE shell.
138
+
139
+ That affects the architecture in a few ways:
140
+
141
+ - the UI must stay usable on mobile
142
+ - the browser cannot depend on direct filesystem access
143
+ - local file and image access must be resolved through the host
144
+ - long-running turns need visible intermediate state
145
+ - queueing, steer, approvals, and transcript continuity matter more than “single screen IDE” behavior
146
+
147
+ ## Mobile Performance Strategy
148
+
149
+ Current mobile-oriented optimizations include:
150
+
151
+ - tail-first transcript rendering for long threads
152
+ - selective mounting of heavy panels and overlays
153
+ - virtualized file preview and terminal log surfaces
154
+ - scroll-state management for file/editor returns
155
+ - keeping the main workspace stable where remount cost is too high
156
+
157
+ This area is still being tuned.
158
+
159
+ ## Persistence
160
+
161
+ Persisted locally:
162
+
163
+ - selected UI theme in `localStorage`
164
+ - selected provider in `localStorage`
165
+ - app-owned steer history entries per thread in `localStorage`
166
+
167
+ Stored in workspace:
168
+
169
+ - uploads under provider-specific upload folders such as `.codex-web/uploads`
170
+
171
+ Mostly in-memory UI state:
172
+
173
+ - panel visibility
174
+ - sidebar state
175
+ - queue state
176
+ - scroll restoration state
177
+ - transcript windowing state
178
+
179
+ ## Current Boundaries
180
+
181
+ - Codex is still the most complete live provider path.
182
+ - The UI is more provider-neutral than the transport layer.
183
+ - Some names and paths still contain `codex` because they match the active bridge contract.
184
+ - The packaged `nomadexapp` launcher now exists, but Codex is still the reference bridge contract it assumes by default.
185
+
186
+ ## Extension Direction
187
+
188
+ The most practical order for continuing the codebase is:
189
+
190
+ 1. harden the packaged launcher for more providers and remote auth flows
191
+ 2. split the runtime into smaller domain services
192
+ 3. keep isolating provider-specific request and notification logic
193
+ 4. strengthen durable thread-memory and session persistence
194
+ 5. add stronger access control for remote and internet-facing setups