c0ckp1t 1.0.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 (676) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +5 -0
  3. package/c0ckp1t-demo/Constants.mjs +125 -0
  4. package/c0ckp1t-demo/components/sidebar.vue +82 -0
  5. package/c0ckp1t-demo/main.vue +39 -0
  6. package/c0ckp1t-demo/pages/devices.vue +63 -0
  7. package/c0ckp1t-demo/pages/homepage.vue +63 -0
  8. package/c0ckp1t-demo/pages/report.vue +63 -0
  9. package/c0ckp1t-demo/store.mjs +133 -0
  10. package/components/ExecButton.vue +62 -0
  11. package/components/FsTree.vue +550 -0
  12. package/components/Markdown.mjs +274 -0
  13. package/components/MarkdownUtils.mjs +180 -0
  14. package/components/Tree.mjs +175 -0
  15. package/components/code-mirror.vue +445 -0
  16. package/components/vue3-ace-editor.vue +331 -0
  17. package/components/xbutton.vue +45 -0
  18. package/components/xcard-h.vue +175 -0
  19. package/components/xcard.vue +76 -0
  20. package/components/xcheck.vue +35 -0
  21. package/components/xcheckbox.vue +52 -0
  22. package/components/xcode.vue +139 -0
  23. package/components/xcollapse.vue +52 -0
  24. package/components/xcolor.vue +84 -0
  25. package/components/xdropdown.vue +104 -0
  26. package/components/xdropdown2.vue +140 -0
  27. package/components/xhidden.vue +30 -0
  28. package/components/xinput.vue +101 -0
  29. package/components/xinput2.vue +101 -0
  30. package/components/xjson.vue +95 -0
  31. package/components/xkv.vue +41 -0
  32. package/components/xlabel.vue +56 -0
  33. package/components/xlist.vue +83 -0
  34. package/components/xmap.vue +106 -0
  35. package/components/xmarkdown.vue +269 -0
  36. package/components/xnav.vue +98 -0
  37. package/components/xsection.vue +164 -0
  38. package/components/xsound.vue +251 -0
  39. package/components/xtable-open.vue +179 -0
  40. package/components/xtabs.vue +72 -0
  41. package/components/xterminal.vue +456 -0
  42. package/components/xtextarea.vue +83 -0
  43. package/components/xtoggle.vue +68 -0
  44. package/components/xtoggle3.vue +67 -0
  45. package/components/xtree.vue +140 -0
  46. package/components/xupload.vue +129 -0
  47. package/core/Content.mjs +92 -0
  48. package/core/DocUtils.mjs +189 -0
  49. package/core/GlobalStore.mjs +329 -0
  50. package/core/Island.mjs +429 -0
  51. package/core/IslandDefault.mjs +229 -0
  52. package/core/JsUtils.mjs +483 -0
  53. package/core/Logging.mjs +59 -0
  54. package/core/Page404.vue +152 -0
  55. package/core/PageFallback.vue +168 -0
  56. package/core/PageMain.vue +181 -0
  57. package/core/Theme.mjs +1759 -0
  58. package/core/VueUtils.mjs +200 -0
  59. package/core/WsUtils.mjs +274 -0
  60. package/core/img/Flag_of_the_United_States.svg +25 -0
  61. package/core/img/logo_v1.svg +98 -0
  62. package/core/img/logo_v2.svg +98 -0
  63. package/core/img/state-uniqueId-8k.wav +0 -0
  64. package/core/main-offcanvas.vue +99 -0
  65. package/core/nodes/_api.vue +82 -0
  66. package/core/nodes/node-container.vue +103 -0
  67. package/core/nodes/node.vue +246 -0
  68. package/core/nodes/place-holder.vue +47 -0
  69. package/core/nodes/root.vue +52 -0
  70. package/core/notify/NotifyUtils.mjs +150 -0
  71. package/core/notify/toast.vue +150 -0
  72. package/core/pages/About.vue +57 -0
  73. package/core/pages/Cache.vue +155 -0
  74. package/core/pages/Connection.vue +192 -0
  75. package/core/pages/Connections.vue +102 -0
  76. package/core/pages/Documentation.vue +263 -0
  77. package/core/pages/Notifies.vue +156 -0
  78. package/core/pages/Traffic.vue +152 -0
  79. package/core/pages/connections/connection-header-details.vue +80 -0
  80. package/core/pages/connections/page-connection-default.vue +92 -0
  81. package/core/pages/connections/page-connection.vue +176 -0
  82. package/core/pages/connections/ws-connection.vue +146 -0
  83. package/core/pages/frontend/Bootstrap.vue +1140 -0
  84. package/core/pages/frontend/Components.vue +56 -0
  85. package/core/pages/frontend/ComponentsAdv.vue +203 -0
  86. package/core/pages/frontend/ComponentsBasic.vue +336 -0
  87. package/core/pages/frontend/Theme.vue +473 -0
  88. package/core/pages/frontend/component-view.vue +65 -0
  89. package/core/pages/traffic/WsLogUtils.mjs +91 -0
  90. package/core/pages/traffic/log-ws-exec.vue +124 -0
  91. package/core/pages/traffic/log-ws-exec2.vue +129 -0
  92. package/core/sfc/code-item.vue +169 -0
  93. package/core/sfc/connection-header.vue +62 -0
  94. package/core/sfc/info-api.vue +158 -0
  95. package/core/sfc/md-toc.vue +346 -0
  96. package/core/sfc/scroll-to-top.vue +69 -0
  97. package/core/sfc/task.vue +98 -0
  98. package/core/sfc/text-to-md.vue +25 -0
  99. package/core/sfc/toc-list.vue +175 -0
  100. package/core/ws-client/AuthNState.mjs +84 -0
  101. package/core/ws-client/Connection.mjs +580 -0
  102. package/core/ws-client/Session.mjs +72 -0
  103. package/core/ws-client/WsClient.mjs +230 -0
  104. package/core/ws-client/WsLogUtils.mjs +91 -0
  105. package/core/ws-client/ws-connection.vue +144 -0
  106. package/css/Changa-Medium.ttf +0 -0
  107. package/css/Makefile +10 -0
  108. package/css/README.md +25 -0
  109. package/css/bootstrap-c0ckp1t.css +11861 -0
  110. package/css/bootstrap.min.css +6 -0
  111. package/css/fontawesome/brands.min.css +6 -0
  112. package/css/fontawesome/fontawesome.min.css +8 -0
  113. package/css/fontawesome/regular.min.css +6 -0
  114. package/css/fontawesome/solid.min.css +6 -0
  115. package/css/webfonts/fa-brands-400.woff2 +0 -0
  116. package/css/webfonts/fa-regular-400.woff2 +0 -0
  117. package/css/webfonts/fa-solid-900.woff2 +0 -0
  118. package/docs/Introduction.md +3 -0
  119. package/favicon-192x192.png +0 -0
  120. package/favicon-32x32.png +0 -0
  121. package/favicon-64x64.png +0 -0
  122. package/favicon.ico +0 -0
  123. package/index-cdn.html +66 -0
  124. package/js_ext/Makefile +26 -0
  125. package/js_ext/ace-editor/ace.js +22037 -0
  126. package/js_ext/ace-editor/ext-beautify.js +343 -0
  127. package/js_ext/ace-editor/ext-code_lens.js +204 -0
  128. package/js_ext/ace-editor/ext-command_bar.js +469 -0
  129. package/js_ext/ace-editor/ext-diff.js +4265 -0
  130. package/js_ext/ace-editor/ext-elastic_tabstops_lite.js +238 -0
  131. package/js_ext/ace-editor/ext-emmet.js +1303 -0
  132. package/js_ext/ace-editor/ext-error_marker.js +9 -0
  133. package/js_ext/ace-editor/ext-hardwrap.js +127 -0
  134. package/js_ext/ace-editor/ext-inline_autocomplete.js +3547 -0
  135. package/js_ext/ace-editor/ext-keybinding_menu.js +185 -0
  136. package/js_ext/ace-editor/ext-language_tools.js +2724 -0
  137. package/js_ext/ace-editor/ext-linking.js +66 -0
  138. package/js_ext/ace-editor/ext-modelist.js +276 -0
  139. package/js_ext/ace-editor/ext-options.js +859 -0
  140. package/js_ext/ace-editor/ext-prompt.js +3161 -0
  141. package/js_ext/ace-editor/ext-rtl.js +146 -0
  142. package/js_ext/ace-editor/ext-searchbox.js +385 -0
  143. package/js_ext/ace-editor/ext-settings_menu.js +859 -0
  144. package/js_ext/ace-editor/ext-simple_tokenizer.js +137 -0
  145. package/js_ext/ace-editor/ext-spellcheck.js +79 -0
  146. package/js_ext/ace-editor/ext-split.js +203 -0
  147. package/js_ext/ace-editor/ext-static_highlight.js +194 -0
  148. package/js_ext/ace-editor/ext-statusbar.js +63 -0
  149. package/js_ext/ace-editor/ext-textarea.js +400 -0
  150. package/js_ext/ace-editor/ext-themelist.js +80 -0
  151. package/js_ext/ace-editor/ext-whitespace.js +201 -0
  152. package/js_ext/ace-editor/keybinding-emacs.js +1067 -0
  153. package/js_ext/ace-editor/keybinding-sublime.js +409 -0
  154. package/js_ext/ace-editor/keybinding-vim.js +7101 -0
  155. package/js_ext/ace-editor/keybinding-vscode.js +255 -0
  156. package/js_ext/ace-editor/mode-abap.js +200 -0
  157. package/js_ext/ace-editor/mode-abc.js +243 -0
  158. package/js_ext/ace-editor/mode-actionscript.js +234 -0
  159. package/js_ext/ace-editor/mode-ada.js +108 -0
  160. package/js_ext/ace-editor/mode-alda.js +279 -0
  161. package/js_ext/ace-editor/mode-apache_conf.js +318 -0
  162. package/js_ext/ace-editor/mode-apex.js +402 -0
  163. package/js_ext/ace-editor/mode-applescript.js +232 -0
  164. package/js_ext/ace-editor/mode-aql.js +92 -0
  165. package/js_ext/ace-editor/mode-asciidoc.js +311 -0
  166. package/js_ext/ace-editor/mode-asl.js +357 -0
  167. package/js_ext/ace-editor/mode-assembly_arm32.js +185 -0
  168. package/js_ext/ace-editor/mode-assembly_x86.js +170 -0
  169. package/js_ext/ace-editor/mode-astro.js +2474 -0
  170. package/js_ext/ace-editor/mode-autohotkey.js +208 -0
  171. package/js_ext/ace-editor/mode-basic.js +201 -0
  172. package/js_ext/ace-editor/mode-batchfile.js +199 -0
  173. package/js_ext/ace-editor/mode-bibtex.js +318 -0
  174. package/js_ext/ace-editor/mode-c9search.js +250 -0
  175. package/js_ext/ace-editor/mode-c_cpp.js +417 -0
  176. package/js_ext/ace-editor/mode-cirru.js +192 -0
  177. package/js_ext/ace-editor/mode-clojure.js +322 -0
  178. package/js_ext/ace-editor/mode-clue.js +361 -0
  179. package/js_ext/ace-editor/mode-cobol.js +82 -0
  180. package/js_ext/ace-editor/mode-coffee.js +335 -0
  181. package/js_ext/ace-editor/mode-coldfusion.js +2409 -0
  182. package/js_ext/ace-editor/mode-crystal.js +586 -0
  183. package/js_ext/ace-editor/mode-csharp.js +413 -0
  184. package/js_ext/ace-editor/mode-csound_document.js +4072 -0
  185. package/js_ext/ace-editor/mode-csound_orchestra.js +2923 -0
  186. package/js_ext/ace-editor/mode-csound_score.js +409 -0
  187. package/js_ext/ace-editor/mode-csp.js +59 -0
  188. package/js_ext/ace-editor/mode-css.js +632 -0
  189. package/js_ext/ace-editor/mode-csv.js +97 -0
  190. package/js_ext/ace-editor/mode-curly.js +2381 -0
  191. package/js_ext/ace-editor/mode-cuttlefish.js +56 -0
  192. package/js_ext/ace-editor/mode-d.js +450 -0
  193. package/js_ext/ace-editor/mode-dart.js +618 -0
  194. package/js_ext/ace-editor/mode-diff.js +129 -0
  195. package/js_ext/ace-editor/mode-django.js +2422 -0
  196. package/js_ext/ace-editor/mode-dockerfile.js +427 -0
  197. package/js_ext/ace-editor/mode-dot.js +348 -0
  198. package/js_ext/ace-editor/mode-drools.js +607 -0
  199. package/js_ext/ace-editor/mode-edifact.js +130 -0
  200. package/js_ext/ace-editor/mode-eiffel.js +120 -0
  201. package/js_ext/ace-editor/mode-ejs.js +3277 -0
  202. package/js_ext/ace-editor/mode-elixir.js +443 -0
  203. package/js_ext/ace-editor/mode-elm.js +274 -0
  204. package/js_ext/ace-editor/mode-erlang.js +836 -0
  205. package/js_ext/ace-editor/mode-flix.js +164 -0
  206. package/js_ext/ace-editor/mode-forth.js +253 -0
  207. package/js_ext/ace-editor/mode-fortran.js +361 -0
  208. package/js_ext/ace-editor/mode-fsharp.js +277 -0
  209. package/js_ext/ace-editor/mode-fsl.js +226 -0
  210. package/js_ext/ace-editor/mode-ftl.js +1255 -0
  211. package/js_ext/ace-editor/mode-gcode.js +74 -0
  212. package/js_ext/ace-editor/mode-gherkin.js +154 -0
  213. package/js_ext/ace-editor/mode-gitignore.js +49 -0
  214. package/js_ext/ace-editor/mode-glsl.js +475 -0
  215. package/js_ext/ace-editor/mode-gobstones.js +1459 -0
  216. package/js_ext/ace-editor/mode-golang.js +341 -0
  217. package/js_ext/ace-editor/mode-graphqlschema.js +174 -0
  218. package/js_ext/ace-editor/mode-groovy.js +1401 -0
  219. package/js_ext/ace-editor/mode-haml.js +1906 -0
  220. package/js_ext/ace-editor/mode-handlebars.js +2438 -0
  221. package/js_ext/ace-editor/mode-haskell.js +324 -0
  222. package/js_ext/ace-editor/mode-haskell_cabal.js +135 -0
  223. package/js_ext/ace-editor/mode-haxe.js +313 -0
  224. package/js_ext/ace-editor/mode-hjson.js +318 -0
  225. package/js_ext/ace-editor/mode-html.js +2339 -0
  226. package/js_ext/ace-editor/mode-html_elixir.js +2845 -0
  227. package/js_ext/ace-editor/mode-html_ruby.js +3294 -0
  228. package/js_ext/ace-editor/mode-ini.js +138 -0
  229. package/js_ext/ace-editor/mode-io.js +210 -0
  230. package/js_ext/ace-editor/mode-ion.js +477 -0
  231. package/js_ext/ace-editor/mode-jack.js +293 -0
  232. package/js_ext/ace-editor/mode-jade.js +2017 -0
  233. package/js_ext/ace-editor/mode-java.js +1565 -0
  234. package/js_ext/ace-editor/mode-javascript.js +1191 -0
  235. package/js_ext/ace-editor/mode-jexl.js +270 -0
  236. package/js_ext/ace-editor/mode-json.js +275 -0
  237. package/js_ext/ace-editor/mode-json5.js +308 -0
  238. package/js_ext/ace-editor/mode-jsoniq.js +2577 -0
  239. package/js_ext/ace-editor/mode-jsp.js +1618 -0
  240. package/js_ext/ace-editor/mode-jssm.js +293 -0
  241. package/js_ext/ace-editor/mode-jsx.js +1209 -0
  242. package/js_ext/ace-editor/mode-julia.js +254 -0
  243. package/js_ext/ace-editor/mode-kotlin.js +445 -0
  244. package/js_ext/ace-editor/mode-latex.js +252 -0
  245. package/js_ext/ace-editor/mode-latte.js +2522 -0
  246. package/js_ext/ace-editor/mode-less.js +742 -0
  247. package/js_ext/ace-editor/mode-liquid.js +2741 -0
  248. package/js_ext/ace-editor/mode-lisp.js +104 -0
  249. package/js_ext/ace-editor/mode-livescript.js +272 -0
  250. package/js_ext/ace-editor/mode-logiql.js +272 -0
  251. package/js_ext/ace-editor/mode-logtalk.js +309 -0
  252. package/js_ext/ace-editor/mode-lsl.js +287 -0
  253. package/js_ext/ace-editor/mode-lua.js +393 -0
  254. package/js_ext/ace-editor/mode-luapage.js +2785 -0
  255. package/js_ext/ace-editor/mode-lucene.js +145 -0
  256. package/js_ext/ace-editor/mode-makefile.js +374 -0
  257. package/js_ext/ace-editor/mode-markdown.js +2935 -0
  258. package/js_ext/ace-editor/mode-mask.js +1757 -0
  259. package/js_ext/ace-editor/mode-matlab.js +239 -0
  260. package/js_ext/ace-editor/mode-maze.js +256 -0
  261. package/js_ext/ace-editor/mode-mediawiki.js +580 -0
  262. package/js_ext/ace-editor/mode-mel.js +213 -0
  263. package/js_ext/ace-editor/mode-mips.js +231 -0
  264. package/js_ext/ace-editor/mode-mixal.js +110 -0
  265. package/js_ext/ace-editor/mode-mushcode.js +642 -0
  266. package/js_ext/ace-editor/mode-mysql.js +150 -0
  267. package/js_ext/ace-editor/mode-nasal.js +513 -0
  268. package/js_ext/ace-editor/mode-nginx.js +262 -0
  269. package/js_ext/ace-editor/mode-nim.js +325 -0
  270. package/js_ext/ace-editor/mode-nix.js +555 -0
  271. package/js_ext/ace-editor/mode-nsis.js +279 -0
  272. package/js_ext/ace-editor/mode-nunjucks.js +2677 -0
  273. package/js_ext/ace-editor/mode-objectivec.js +626 -0
  274. package/js_ext/ace-editor/mode-ocaml.js +378 -0
  275. package/js_ext/ace-editor/mode-odin.js +449 -0
  276. package/js_ext/ace-editor/mode-partiql.js +750 -0
  277. package/js_ext/ace-editor/mode-pascal.js +204 -0
  278. package/js_ext/ace-editor/mode-perl.js +318 -0
  279. package/js_ext/ace-editor/mode-pgsql.js +1860 -0
  280. package/js_ext/ace-editor/mode-php.js +14072 -0
  281. package/js_ext/ace-editor/mode-php_laravel_blade.js +14260 -0
  282. package/js_ext/ace-editor/mode-pig.js +278 -0
  283. package/js_ext/ace-editor/mode-plain_text.js +27 -0
  284. package/js_ext/ace-editor/mode-plsql.js +268 -0
  285. package/js_ext/ace-editor/mode-powershell.js +567 -0
  286. package/js_ext/ace-editor/mode-praat.js +412 -0
  287. package/js_ext/ace-editor/mode-prisma.js +457 -0
  288. package/js_ext/ace-editor/mode-prolog.js +305 -0
  289. package/js_ext/ace-editor/mode-properties.js +69 -0
  290. package/js_ext/ace-editor/mode-protobuf.js +498 -0
  291. package/js_ext/ace-editor/mode-prql.js +323 -0
  292. package/js_ext/ace-editor/mode-puppet.js +316 -0
  293. package/js_ext/ace-editor/mode-python.js +476 -0
  294. package/js_ext/ace-editor/mode-qml.js +346 -0
  295. package/js_ext/ace-editor/mode-r.js +387 -0
  296. package/js_ext/ace-editor/mode-raku.js +516 -0
  297. package/js_ext/ace-editor/mode-razor.js +2697 -0
  298. package/js_ext/ace-editor/mode-rdoc.js +286 -0
  299. package/js_ext/ace-editor/mode-red.js +388 -0
  300. package/js_ext/ace-editor/mode-redshift.js +321 -0
  301. package/js_ext/ace-editor/mode-rhtml.js +2750 -0
  302. package/js_ext/ace-editor/mode-robot.js +168 -0
  303. package/js_ext/ace-editor/mode-rst.js +245 -0
  304. package/js_ext/ace-editor/mode-ruby.js +921 -0
  305. package/js_ext/ace-editor/mode-rust.js +393 -0
  306. package/js_ext/ace-editor/mode-sac.js +349 -0
  307. package/js_ext/ace-editor/mode-sass.js +480 -0
  308. package/js_ext/ace-editor/mode-scad.js +350 -0
  309. package/js_ext/ace-editor/mode-scala.js +1395 -0
  310. package/js_ext/ace-editor/mode-scheme.js +210 -0
  311. package/js_ext/ace-editor/mode-scrypt.js +317 -0
  312. package/js_ext/ace-editor/mode-scss.js +768 -0
  313. package/js_ext/ace-editor/mode-sh.js +387 -0
  314. package/js_ext/ace-editor/mode-sjs.js +1393 -0
  315. package/js_ext/ace-editor/mode-slim.js +4770 -0
  316. package/js_ext/ace-editor/mode-smarty.js +2436 -0
  317. package/js_ext/ace-editor/mode-smithy.js +456 -0
  318. package/js_ext/ace-editor/mode-snippets.js +183 -0
  319. package/js_ext/ace-editor/mode-soy_template.js +2611 -0
  320. package/js_ext/ace-editor/mode-space.js +151 -0
  321. package/js_ext/ace-editor/mode-sparql.js +288 -0
  322. package/js_ext/ace-editor/mode-sql.js +221 -0
  323. package/js_ext/ace-editor/mode-sqlserver.js +391 -0
  324. package/js_ext/ace-editor/mode-stylus.js +443 -0
  325. package/js_ext/ace-editor/mode-svg.js +1487 -0
  326. package/js_ext/ace-editor/mode-swift.js +342 -0
  327. package/js_ext/ace-editor/mode-tcl.js +338 -0
  328. package/js_ext/ace-editor/mode-terraform.js +346 -0
  329. package/js_ext/ace-editor/mode-tex.js +212 -0
  330. package/js_ext/ace-editor/mode-text.js +9 -0
  331. package/js_ext/ace-editor/mode-textile.js +125 -0
  332. package/js_ext/ace-editor/mode-toml.js +129 -0
  333. package/js_ext/ace-editor/mode-tsv.js +124 -0
  334. package/js_ext/ace-editor/mode-tsx.js +1276 -0
  335. package/js_ext/ace-editor/mode-turtle.js +264 -0
  336. package/js_ext/ace-editor/mode-twig.js +2502 -0
  337. package/js_ext/ace-editor/mode-typescript.js +1254 -0
  338. package/js_ext/ace-editor/mode-vala.js +554 -0
  339. package/js_ext/ace-editor/mode-vbscript.js +731 -0
  340. package/js_ext/ace-editor/mode-velocity.js +2580 -0
  341. package/js_ext/ace-editor/mode-verilog.js +98 -0
  342. package/js_ext/ace-editor/mode-vhdl.js +94 -0
  343. package/js_ext/ace-editor/mode-visualforce.js +2454 -0
  344. package/js_ext/ace-editor/mode-vue.js +3834 -0
  345. package/js_ext/ace-editor/mode-wollok.js +1329 -0
  346. package/js_ext/ace-editor/mode-xml.js +477 -0
  347. package/js_ext/ace-editor/mode-xquery.js +2589 -0
  348. package/js_ext/ace-editor/mode-yaml.js +395 -0
  349. package/js_ext/ace-editor/mode-zeek.js +502 -0
  350. package/js_ext/ace-editor/mode-zig.js +585 -0
  351. package/js_ext/ace-editor/snippets/abap.js +9 -0
  352. package/js_ext/ace-editor/snippets/abc.js +16 -0
  353. package/js_ext/ace-editor/snippets/actionscript.js +16 -0
  354. package/js_ext/ace-editor/snippets/ada.js +9 -0
  355. package/js_ext/ace-editor/snippets/alda.js +9 -0
  356. package/js_ext/ace-editor/snippets/apache_conf.js +9 -0
  357. package/js_ext/ace-editor/snippets/apex.js +9 -0
  358. package/js_ext/ace-editor/snippets/applescript.js +9 -0
  359. package/js_ext/ace-editor/snippets/aql.js +9 -0
  360. package/js_ext/ace-editor/snippets/asciidoc.js +9 -0
  361. package/js_ext/ace-editor/snippets/asl.js +9 -0
  362. package/js_ext/ace-editor/snippets/assembly_arm32.js +9 -0
  363. package/js_ext/ace-editor/snippets/assembly_x86.js +9 -0
  364. package/js_ext/ace-editor/snippets/astro.js +9 -0
  365. package/js_ext/ace-editor/snippets/autohotkey.js +9 -0
  366. package/js_ext/ace-editor/snippets/basic.js +9 -0
  367. package/js_ext/ace-editor/snippets/batchfile.js +9 -0
  368. package/js_ext/ace-editor/snippets/bibtex.js +9 -0
  369. package/js_ext/ace-editor/snippets/c9search.js +9 -0
  370. package/js_ext/ace-editor/snippets/c_cpp.js +16 -0
  371. package/js_ext/ace-editor/snippets/cirru.js +9 -0
  372. package/js_ext/ace-editor/snippets/clojure.js +16 -0
  373. package/js_ext/ace-editor/snippets/clue.js +9 -0
  374. package/js_ext/ace-editor/snippets/cobol.js +9 -0
  375. package/js_ext/ace-editor/snippets/coffee.js +16 -0
  376. package/js_ext/ace-editor/snippets/coldfusion.js +9 -0
  377. package/js_ext/ace-editor/snippets/crystal.js +9 -0
  378. package/js_ext/ace-editor/snippets/csharp.js +9 -0
  379. package/js_ext/ace-editor/snippets/csound_document.js +16 -0
  380. package/js_ext/ace-editor/snippets/csound_orchestra.js +16 -0
  381. package/js_ext/ace-editor/snippets/csound_score.js +9 -0
  382. package/js_ext/ace-editor/snippets/csp.js +9 -0
  383. package/js_ext/ace-editor/snippets/css.js +16 -0
  384. package/js_ext/ace-editor/snippets/csv.js +9 -0
  385. package/js_ext/ace-editor/snippets/curly.js +9 -0
  386. package/js_ext/ace-editor/snippets/cuttlefish.js +9 -0
  387. package/js_ext/ace-editor/snippets/d.js +9 -0
  388. package/js_ext/ace-editor/snippets/dart.js +16 -0
  389. package/js_ext/ace-editor/snippets/diff.js +16 -0
  390. package/js_ext/ace-editor/snippets/django.js +16 -0
  391. package/js_ext/ace-editor/snippets/dockerfile.js +9 -0
  392. package/js_ext/ace-editor/snippets/dot.js +9 -0
  393. package/js_ext/ace-editor/snippets/drools.js +16 -0
  394. package/js_ext/ace-editor/snippets/edifact.js +16 -0
  395. package/js_ext/ace-editor/snippets/eiffel.js +9 -0
  396. package/js_ext/ace-editor/snippets/ejs.js +9 -0
  397. package/js_ext/ace-editor/snippets/elixir.js +9 -0
  398. package/js_ext/ace-editor/snippets/elm.js +9 -0
  399. package/js_ext/ace-editor/snippets/erlang.js +16 -0
  400. package/js_ext/ace-editor/snippets/flix.js +9 -0
  401. package/js_ext/ace-editor/snippets/forth.js +9 -0
  402. package/js_ext/ace-editor/snippets/fortran.js +9 -0
  403. package/js_ext/ace-editor/snippets/fsharp.js +9 -0
  404. package/js_ext/ace-editor/snippets/fsl.js +16 -0
  405. package/js_ext/ace-editor/snippets/ftl.js +9 -0
  406. package/js_ext/ace-editor/snippets/gcode.js +9 -0
  407. package/js_ext/ace-editor/snippets/gherkin.js +9 -0
  408. package/js_ext/ace-editor/snippets/gitignore.js +9 -0
  409. package/js_ext/ace-editor/snippets/glsl.js +9 -0
  410. package/js_ext/ace-editor/snippets/gobstones.js +16 -0
  411. package/js_ext/ace-editor/snippets/golang.js +9 -0
  412. package/js_ext/ace-editor/snippets/graphqlschema.js +16 -0
  413. package/js_ext/ace-editor/snippets/groovy.js +9 -0
  414. package/js_ext/ace-editor/snippets/haml.js +16 -0
  415. package/js_ext/ace-editor/snippets/handlebars.js +9 -0
  416. package/js_ext/ace-editor/snippets/haskell.js +16 -0
  417. package/js_ext/ace-editor/snippets/haskell_cabal.js +9 -0
  418. package/js_ext/ace-editor/snippets/haxe.js +9 -0
  419. package/js_ext/ace-editor/snippets/hjson.js +9 -0
  420. package/js_ext/ace-editor/snippets/html.js +16 -0
  421. package/js_ext/ace-editor/snippets/html_elixir.js +9 -0
  422. package/js_ext/ace-editor/snippets/html_ruby.js +9 -0
  423. package/js_ext/ace-editor/snippets/ini.js +9 -0
  424. package/js_ext/ace-editor/snippets/io.js +74 -0
  425. package/js_ext/ace-editor/snippets/ion.js +9 -0
  426. package/js_ext/ace-editor/snippets/jack.js +9 -0
  427. package/js_ext/ace-editor/snippets/jade.js +9 -0
  428. package/js_ext/ace-editor/snippets/java.js +16 -0
  429. package/js_ext/ace-editor/snippets/javascript.js +16 -0
  430. package/js_ext/ace-editor/snippets/jexl.js +9 -0
  431. package/js_ext/ace-editor/snippets/json.js +9 -0
  432. package/js_ext/ace-editor/snippets/json5.js +9 -0
  433. package/js_ext/ace-editor/snippets/jsoniq.js +78 -0
  434. package/js_ext/ace-editor/snippets/jsp.js +16 -0
  435. package/js_ext/ace-editor/snippets/jssm.js +9 -0
  436. package/js_ext/ace-editor/snippets/jsx.js +9 -0
  437. package/js_ext/ace-editor/snippets/julia.js +9 -0
  438. package/js_ext/ace-editor/snippets/kotlin.js +9 -0
  439. package/js_ext/ace-editor/snippets/latex.js +9 -0
  440. package/js_ext/ace-editor/snippets/latte.js +9 -0
  441. package/js_ext/ace-editor/snippets/less.js +9 -0
  442. package/js_ext/ace-editor/snippets/liquid.js +16 -0
  443. package/js_ext/ace-editor/snippets/lisp.js +9 -0
  444. package/js_ext/ace-editor/snippets/livescript.js +9 -0
  445. package/js_ext/ace-editor/snippets/logiql.js +9 -0
  446. package/js_ext/ace-editor/snippets/logtalk.js +9 -0
  447. package/js_ext/ace-editor/snippets/lsl.js +16 -0
  448. package/js_ext/ace-editor/snippets/lua.js +16 -0
  449. package/js_ext/ace-editor/snippets/luapage.js +9 -0
  450. package/js_ext/ace-editor/snippets/lucene.js +9 -0
  451. package/js_ext/ace-editor/snippets/makefile.js +16 -0
  452. package/js_ext/ace-editor/snippets/markdown.js +16 -0
  453. package/js_ext/ace-editor/snippets/mask.js +9 -0
  454. package/js_ext/ace-editor/snippets/matlab.js +9 -0
  455. package/js_ext/ace-editor/snippets/maze.js +16 -0
  456. package/js_ext/ace-editor/snippets/mediawiki.js +9 -0
  457. package/js_ext/ace-editor/snippets/mel.js +9 -0
  458. package/js_ext/ace-editor/snippets/mips.js +9 -0
  459. package/js_ext/ace-editor/snippets/mixal.js +9 -0
  460. package/js_ext/ace-editor/snippets/mushcode.js +9 -0
  461. package/js_ext/ace-editor/snippets/mysql.js +9 -0
  462. package/js_ext/ace-editor/snippets/nasal.js +9 -0
  463. package/js_ext/ace-editor/snippets/nginx.js +9 -0
  464. package/js_ext/ace-editor/snippets/nim.js +9 -0
  465. package/js_ext/ace-editor/snippets/nix.js +9 -0
  466. package/js_ext/ace-editor/snippets/nsis.js +9 -0
  467. package/js_ext/ace-editor/snippets/nunjucks.js +9 -0
  468. package/js_ext/ace-editor/snippets/objectivec.js +9 -0
  469. package/js_ext/ace-editor/snippets/ocaml.js +9 -0
  470. package/js_ext/ace-editor/snippets/odin.js +9 -0
  471. package/js_ext/ace-editor/snippets/partiql.js +9 -0
  472. package/js_ext/ace-editor/snippets/pascal.js +9 -0
  473. package/js_ext/ace-editor/snippets/perl.js +16 -0
  474. package/js_ext/ace-editor/snippets/pgsql.js +9 -0
  475. package/js_ext/ace-editor/snippets/php.js +16 -0
  476. package/js_ext/ace-editor/snippets/php_laravel_blade.js +9 -0
  477. package/js_ext/ace-editor/snippets/pig.js +9 -0
  478. package/js_ext/ace-editor/snippets/plain_text.js +9 -0
  479. package/js_ext/ace-editor/snippets/plsql.js +9 -0
  480. package/js_ext/ace-editor/snippets/powershell.js +9 -0
  481. package/js_ext/ace-editor/snippets/praat.js +9 -0
  482. package/js_ext/ace-editor/snippets/prisma.js +9 -0
  483. package/js_ext/ace-editor/snippets/prolog.js +9 -0
  484. package/js_ext/ace-editor/snippets/properties.js +9 -0
  485. package/js_ext/ace-editor/snippets/protobuf.js +9 -0
  486. package/js_ext/ace-editor/snippets/prql.js +9 -0
  487. package/js_ext/ace-editor/snippets/puppet.js +9 -0
  488. package/js_ext/ace-editor/snippets/python.js +16 -0
  489. package/js_ext/ace-editor/snippets/qml.js +9 -0
  490. package/js_ext/ace-editor/snippets/r.js +16 -0
  491. package/js_ext/ace-editor/snippets/raku.js +9 -0
  492. package/js_ext/ace-editor/snippets/razor.js +16 -0
  493. package/js_ext/ace-editor/snippets/rdoc.js +9 -0
  494. package/js_ext/ace-editor/snippets/red.js +9 -0
  495. package/js_ext/ace-editor/snippets/redshift.js +9 -0
  496. package/js_ext/ace-editor/snippets/rhtml.js +9 -0
  497. package/js_ext/ace-editor/snippets/robot.js +16 -0
  498. package/js_ext/ace-editor/snippets/rst.js +16 -0
  499. package/js_ext/ace-editor/snippets/ruby.js +16 -0
  500. package/js_ext/ace-editor/snippets/rust.js +9 -0
  501. package/js_ext/ace-editor/snippets/sac.js +9 -0
  502. package/js_ext/ace-editor/snippets/sass.js +9 -0
  503. package/js_ext/ace-editor/snippets/scad.js +9 -0
  504. package/js_ext/ace-editor/snippets/scala.js +9 -0
  505. package/js_ext/ace-editor/snippets/scheme.js +9 -0
  506. package/js_ext/ace-editor/snippets/scrypt.js +9 -0
  507. package/js_ext/ace-editor/snippets/scss.js +9 -0
  508. package/js_ext/ace-editor/snippets/sh.js +16 -0
  509. package/js_ext/ace-editor/snippets/sjs.js +9 -0
  510. package/js_ext/ace-editor/snippets/slim.js +9 -0
  511. package/js_ext/ace-editor/snippets/smarty.js +9 -0
  512. package/js_ext/ace-editor/snippets/smithy.js +9 -0
  513. package/js_ext/ace-editor/snippets/snippets.js +16 -0
  514. package/js_ext/ace-editor/snippets/soy_template.js +9 -0
  515. package/js_ext/ace-editor/snippets/space.js +9 -0
  516. package/js_ext/ace-editor/snippets/sparql.js +9 -0
  517. package/js_ext/ace-editor/snippets/sql.js +16 -0
  518. package/js_ext/ace-editor/snippets/sqlserver.js +16 -0
  519. package/js_ext/ace-editor/snippets/stylus.js +9 -0
  520. package/js_ext/ace-editor/snippets/svg.js +9 -0
  521. package/js_ext/ace-editor/snippets/swift.js +9 -0
  522. package/js_ext/ace-editor/snippets/tcl.js +16 -0
  523. package/js_ext/ace-editor/snippets/terraform.js +9 -0
  524. package/js_ext/ace-editor/snippets/tex.js +16 -0
  525. package/js_ext/ace-editor/snippets/text.js +9 -0
  526. package/js_ext/ace-editor/snippets/textile.js +16 -0
  527. package/js_ext/ace-editor/snippets/toml.js +9 -0
  528. package/js_ext/ace-editor/snippets/tsv.js +9 -0
  529. package/js_ext/ace-editor/snippets/tsx.js +9 -0
  530. package/js_ext/ace-editor/snippets/turtle.js +9 -0
  531. package/js_ext/ace-editor/snippets/twig.js +9 -0
  532. package/js_ext/ace-editor/snippets/typescript.js +9 -0
  533. package/js_ext/ace-editor/snippets/vala.js +199 -0
  534. package/js_ext/ace-editor/snippets/vbscript.js +9 -0
  535. package/js_ext/ace-editor/snippets/velocity.js +17 -0
  536. package/js_ext/ace-editor/snippets/verilog.js +9 -0
  537. package/js_ext/ace-editor/snippets/vhdl.js +9 -0
  538. package/js_ext/ace-editor/snippets/visualforce.js +9 -0
  539. package/js_ext/ace-editor/snippets/vue.js +9 -0
  540. package/js_ext/ace-editor/snippets/wollok.js +16 -0
  541. package/js_ext/ace-editor/snippets/xml.js +9 -0
  542. package/js_ext/ace-editor/snippets/xquery.js +78 -0
  543. package/js_ext/ace-editor/snippets/yaml.js +9 -0
  544. package/js_ext/ace-editor/snippets/zeek.js +9 -0
  545. package/js_ext/ace-editor/snippets/zig.js +9 -0
  546. package/js_ext/ace-editor/theme-ambiance.js +18 -0
  547. package/js_ext/ace-editor/theme-chaos.js +18 -0
  548. package/js_ext/ace-editor/theme-chrome.js +18 -0
  549. package/js_ext/ace-editor/theme-cloud9_day.js +19 -0
  550. package/js_ext/ace-editor/theme-cloud9_night.js +18 -0
  551. package/js_ext/ace-editor/theme-cloud9_night_low_color.js +18 -0
  552. package/js_ext/ace-editor/theme-cloud_editor.js +19 -0
  553. package/js_ext/ace-editor/theme-cloud_editor_dark.js +19 -0
  554. package/js_ext/ace-editor/theme-clouds.js +18 -0
  555. package/js_ext/ace-editor/theme-clouds_midnight.js +18 -0
  556. package/js_ext/ace-editor/theme-cobalt.js +18 -0
  557. package/js_ext/ace-editor/theme-crimson_editor.js +18 -0
  558. package/js_ext/ace-editor/theme-dawn.js +18 -0
  559. package/js_ext/ace-editor/theme-dracula.js +19 -0
  560. package/js_ext/ace-editor/theme-dreamweaver.js +18 -0
  561. package/js_ext/ace-editor/theme-eclipse.js +19 -0
  562. package/js_ext/ace-editor/theme-github.js +18 -0
  563. package/js_ext/ace-editor/theme-github_dark.js +18 -0
  564. package/js_ext/ace-editor/theme-github_light_default.js +18 -0
  565. package/js_ext/ace-editor/theme-gob.js +18 -0
  566. package/js_ext/ace-editor/theme-gruvbox.js +18 -0
  567. package/js_ext/ace-editor/theme-gruvbox_dark_hard.js +18 -0
  568. package/js_ext/ace-editor/theme-gruvbox_light_hard.js +18 -0
  569. package/js_ext/ace-editor/theme-idle_fingers.js +18 -0
  570. package/js_ext/ace-editor/theme-iplastic.js +18 -0
  571. package/js_ext/ace-editor/theme-katzenmilch.js +18 -0
  572. package/js_ext/ace-editor/theme-kr_theme.js +18 -0
  573. package/js_ext/ace-editor/theme-kuroir.js +18 -0
  574. package/js_ext/ace-editor/theme-merbivore.js +18 -0
  575. package/js_ext/ace-editor/theme-merbivore_soft.js +18 -0
  576. package/js_ext/ace-editor/theme-mono_industrial.js +18 -0
  577. package/js_ext/ace-editor/theme-monokai.js +18 -0
  578. package/js_ext/ace-editor/theme-nord_dark.js +19 -0
  579. package/js_ext/ace-editor/theme-one_dark.js +18 -0
  580. package/js_ext/ace-editor/theme-pastel_on_dark.js +18 -0
  581. package/js_ext/ace-editor/theme-solarized_dark.js +18 -0
  582. package/js_ext/ace-editor/theme-solarized_light.js +18 -0
  583. package/js_ext/ace-editor/theme-sqlserver.js +18 -0
  584. package/js_ext/ace-editor/theme-terminal.js +18 -0
  585. package/js_ext/ace-editor/theme-textmate.js +16 -0
  586. package/js_ext/ace-editor/theme-tomorrow.js +18 -0
  587. package/js_ext/ace-editor/theme-tomorrow_night.js +18 -0
  588. package/js_ext/ace-editor/theme-tomorrow_night_blue.js +18 -0
  589. package/js_ext/ace-editor/theme-tomorrow_night_bright.js +18 -0
  590. package/js_ext/ace-editor/theme-tomorrow_night_eighties.js +18 -0
  591. package/js_ext/ace-editor/theme-twilight.js +18 -0
  592. package/js_ext/ace-editor/theme-vibrant_ink.js +18 -0
  593. package/js_ext/ace-editor/theme-xcode.js +18 -0
  594. package/js_ext/ace-editor/worker-base.js +1332 -0
  595. package/js_ext/ace-editor/worker-coffee.js +1381 -0
  596. package/js_ext/ace-editor/worker-css.js +8913 -0
  597. package/js_ext/ace-editor/worker-html.js +10843 -0
  598. package/js_ext/ace-editor/worker-javascript.js +15353 -0
  599. package/js_ext/ace-editor/worker-json.js +1626 -0
  600. package/js_ext/ace-editor/worker-lua.js +3519 -0
  601. package/js_ext/ace-editor/worker-php.js +3788 -0
  602. package/js_ext/ace-editor/worker-xml.js +3122 -0
  603. package/js_ext/ace-editor/worker-xquery.js +57579 -0
  604. package/js_ext/ace-editor/worker-yaml.js +5819 -0
  605. package/js_ext/bootstrap.bundle.min.js +7 -0
  606. package/js_ext/highlight/default.min.css +9 -0
  607. package/js_ext/highlight/go.min.js +14 -0
  608. package/js_ext/highlight/highlight.min.js +1207 -0
  609. package/js_ext/highlight/stackoverflow-dark.min.css +13 -0
  610. package/js_ext/idb-keyval-6.2.2.mjs +7 -0
  611. package/js_ext/json-viewer.bundle.js +52 -0
  612. package/js_ext/loglevel-plugin-prefix.min.js +1 -0
  613. package/js_ext/loglevel.min.js +2 -0
  614. package/js_ext/markdown/auto-render.min.js +1 -0
  615. package/js_ext/markdown/auto-render.mjs +245 -0
  616. package/js_ext/markdown/fonts/KaTeX_AMS-Regular.woff +0 -0
  617. package/js_ext/markdown/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  618. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  619. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  620. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  621. package/js_ext/markdown/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  622. package/js_ext/markdown/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  623. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  624. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  625. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  626. package/js_ext/markdown/fonts/KaTeX_Main-Bold.woff +0 -0
  627. package/js_ext/markdown/fonts/KaTeX_Main-Bold.woff2 +0 -0
  628. package/js_ext/markdown/fonts/KaTeX_Main-Italic.woff +0 -0
  629. package/js_ext/markdown/fonts/KaTeX_Main-Italic.woff2 +0 -0
  630. package/js_ext/markdown/fonts/KaTeX_Main-Regular.woff +0 -0
  631. package/js_ext/markdown/fonts/KaTeX_Main-Regular.woff2 +0 -0
  632. package/js_ext/markdown/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  633. package/js_ext/markdown/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  634. package/js_ext/markdown/fonts/KaTeX_Math-Italic.woff +0 -0
  635. package/js_ext/markdown/fonts/KaTeX_Math-Italic.woff2 +0 -0
  636. package/js_ext/markdown/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  637. package/js_ext/markdown/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  638. package/js_ext/markdown/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  639. package/js_ext/markdown/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  640. package/js_ext/markdown/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  641. package/js_ext/markdown/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  642. package/js_ext/markdown/fonts/KaTeX_Script-Regular.ttf +0 -0
  643. package/js_ext/markdown/fonts/KaTeX_Script-Regular.woff +0 -0
  644. package/js_ext/markdown/fonts/KaTeX_Script-Regular.woff2 +0 -0
  645. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.ttf +0 -0
  646. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.woff +0 -0
  647. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  648. package/js_ext/markdown/fonts/KaTeX_Size2-Regular.woff +0 -0
  649. package/js_ext/markdown/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  650. package/js_ext/markdown/fonts/KaTeX_Size3-Regular.woff +0 -0
  651. package/js_ext/markdown/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  652. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.ttf +0 -0
  653. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.woff +0 -0
  654. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  655. package/js_ext/markdown/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  656. package/js_ext/markdown/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  657. package/js_ext/markdown/katex.min.css +1 -0
  658. package/js_ext/markdown/katex.min.js +1 -0
  659. package/js_ext/markdown/katex.mjs +18416 -0
  660. package/js_ext/markdown/markdown-it.min.js +3 -0
  661. package/js_ext/markdown/markdownItAnchor.umd.js +2 -0
  662. package/js_ext/mitt.mjs +2 -0
  663. package/js_ext/moment.min.js +1 -0
  664. package/js_ext/msgpack.mjs +1612 -0
  665. package/js_ext/rxjs.umd.min.js +195 -0
  666. package/js_ext/rxjs.umd.min.js.map +1 -0
  667. package/js_ext/vue-router.esm-browser.prod.js +6 -0
  668. package/js_ext/vue.esm-browser.min.js +18 -0
  669. package/js_ext/vue.esm-browser.prod.min.js +3 -0
  670. package/js_ext/vue3-sfc-loader.esm.js +1840 -0
  671. package/js_ext/vue3-sfc-loader.esm.js.map +4 -0
  672. package/js_ext/vue3-sfc-loader.js +1839 -0
  673. package/js_ext/wavesurfer.esm.mjs +1 -0
  674. package/js_ext/xstate.web.mjs +15 -0
  675. package/package.json +50 -0
  676. package/style.css +31 -0
@@ -0,0 +1,84 @@
1
+ // ________________________________________________________________________________
2
+ // AuthNState
3
+ // ________________________________________________________________________________
4
+ export const AuthNState = {
5
+ IDLE: {
6
+ entry: ['idle'],
7
+ on: {
8
+ 'client.authenticate': {target: 'AUTHENTICATING'}
9
+ }
10
+ },
11
+ // ________________________________________________________________________________
12
+ // AUTHENTICATE
13
+ // ________________________________________________________________________________
14
+ AUTHENTICATING: {
15
+ entry: ['authenticate'],
16
+ on: {
17
+ 'authenticate.ok': {target: 'CONNECTING'},
18
+ 'authenticate.nok': {target: 'AUTHENTICATION_FAILED'},
19
+ }
20
+ },
21
+ AUTHENTICATION_FAILED: {
22
+ entry: ['authenticationFailed'],
23
+ on: {
24
+ 'client.authenticate': {target: 'AUTHENTICATING'},
25
+ }
26
+ },
27
+ // ________________________________________________________________________________
28
+ // CONNECT
29
+ // ________________________________________________________________________________
30
+ CONNECTING: {
31
+ entry: ['connecting'],
32
+ on: {
33
+ 'client.connect.ok': {target: 'CONNECTION_OK'},
34
+ 'client.connect.nok': {target: 'CONNECTION_NOK'},
35
+ 'client.error': {target: 'CONNECTION_NOK'},
36
+ 'client.closed': {target: 'CONNECTION_NOK'},
37
+ }
38
+ },
39
+ CONNECTION_OK: {
40
+ entry: ['connectedOk'],
41
+ on: {
42
+ 'connection.ok': {target: 'READY'}
43
+ }
44
+ },
45
+ CONNECTION_NOK: {
46
+ entry: ['connectionNok'],
47
+ on: {
48
+ 'client.authenticate': {target: 'AUTHENTICATING'}
49
+ }
50
+ },
51
+
52
+ // ________________________________________________________________________________
53
+ // READY STATE
54
+ // ________________________________________________________________________________
55
+ READY: {
56
+ entry: ['ready'],
57
+ on: {
58
+ 'client.disconnect': {target: 'DISCONNECTED'},
59
+ 'client.closed': {target: 'DISCONNECTED'},
60
+ 'authenticate.update': {target: 'AUTH_UPDATE'},
61
+ }
62
+ },
63
+
64
+ // ________________________________________________________________________________
65
+ // AUTHENTICATE
66
+ // ________________________________________________________________________________
67
+ AUTH_UPDATE: {
68
+ entry: ['authenticateUpdate'],
69
+ on: {
70
+ 'authenticate.update.ok': {target: 'READY'},
71
+ 'authenticate.update.nok': {target: 'READY'},
72
+ }
73
+ },
74
+ // ________________________________________________________________________________
75
+ // DISCONNECT
76
+ // ________________________________________________________________________________
77
+ DISCONNECTED: {
78
+ entry: ['disconnected'],
79
+ on: {
80
+ 'client.authenticate': {target: 'AUTHENTICATING'}
81
+ }
82
+ },
83
+
84
+ }
@@ -0,0 +1,580 @@
1
+ /**
2
+ * Connection.mjs
3
+ *
4
+ */
5
+ import {reactive, computed, markRaw, watch} from 'vue';
6
+ import {getLogger, setLogger} from 'Logging';
7
+ import {ok, nok, Code, Code2, generateRandomInt32, toBinary, fromBinary} from 'WsUtils'
8
+
9
+ import WsClient, {ConnectionLookUp, ConnectionStates, getCodeDescription} from './WsClient.mjs'
10
+
11
+ // https://stately.ai/docs/xstate
12
+ // This is XState version 4 (specifically appears to be v4.x).
13
+ import {actions, interpret, createMachine} from "/js_ext/xstate.web.mjs";
14
+ import {AuthNState} from "./AuthNState.mjs"
15
+
16
+ const {map, filter } = rxjs.operators;
17
+
18
+ //________________________________________________________________________________
19
+ // Logging
20
+ //________________________________________________________________________________
21
+ const LOG_HEADER = 'Connection.mjs'
22
+ const logger = getLogger(LOG_HEADER)
23
+ logger.debug("INIT")
24
+
25
+ //________________________________________________________________________________
26
+ // WsPacket
27
+ // ________________________________________________________________________________
28
+ class Exec2Error extends Error {
29
+ constructor(endpoint, data) {
30
+ // Note: super(message) is what gets shown when you do error.toString()
31
+ if (typeof data?.message === 'string') {
32
+ super(data.message); // sets error.message
33
+ } else if (typeof data === 'string') {
34
+ super(data.message); // sets error.message
35
+ } else if (data && typeof data === "object" && typeof data.result == 'string') {
36
+ super(data.result);
37
+ } else if(Array.isArray(data?.stack)) {
38
+ super(data.stack); // sets error.message
39
+ } else {
40
+ super("N/A");
41
+ }
42
+ this.name = "Exec2Error";
43
+ this.endpoint = endpoint;
44
+ this.data = data;
45
+ }
46
+ }
47
+
48
+ function executeRequestWsPacket(endpoint, args) {
49
+ if (typeof endpoint !== "string") {
50
+ console.error(endpoint)
51
+ throw `executeRequestWsPacket - endpoint must be a string`
52
+ }
53
+ if (!(args instanceof Array)) {
54
+ throw `executeRequestWsPacket - args must be an array `
55
+ }
56
+ return {
57
+ "endpoint": endpoint,
58
+ "id": generateRandomInt32(),
59
+ "code": Code2.EXEC_REQ,
60
+ "args": args,
61
+ "bytes": null
62
+ }
63
+ }
64
+
65
+ function execute2RequestWsPacket(endpoint, args, bytes = null) {
66
+ if (typeof endpoint !== "string") {
67
+ throw `execute2RequestWsPacket - endpoint must be a string`
68
+ }
69
+ if (!(args instanceof Array)) {
70
+ throw `execute2RequestWsPacket - args must be an array `
71
+ }
72
+ return {
73
+ "endpoint": endpoint,
74
+ "id": generateRandomInt32(),
75
+ "code": Code2.EXEC2_REQ,
76
+ "args": args,
77
+ "bytes": bytes
78
+ }
79
+ }
80
+
81
+ function execute3RequestWsPacket(endpoint, args, id = null) {
82
+ if (typeof endpoint !== "string") {
83
+ throw `execute3RequestWsPacket - endpoint must be a string`
84
+ }
85
+ if (!(args instanceof Array)) {
86
+ throw `execute3RequestWsPacket - args must be an array `
87
+ }
88
+ if (typeof id !== "number") {
89
+ id = generateRandomInt32()
90
+ }
91
+ return {
92
+ "endpoint": endpoint,
93
+ "id": id,
94
+ "code": Code2.EXEC3_REQ,
95
+ "args": args,
96
+ "bytes": null
97
+ }
98
+ }
99
+
100
+ function execute3PublishWsPacket(id, bytes = null) {
101
+ if (typeof id !== "number") {
102
+ throw `execute3RequestWsPacket - id must be a number`
103
+ }
104
+ if (bytes === null) {
105
+ throw `execute3RequestWsPacket - bytes must be not be null`
106
+ }
107
+ return {
108
+ "endpoint": "/sys",
109
+ "id": id,
110
+ "code": Code2.EXEC3_PUSH,
111
+ "args": [],
112
+ "bytes": bytes
113
+ }
114
+ }
115
+
116
+ function execute3CloseWsPacket(id) {
117
+ if (typeof id !== "number") {
118
+ throw `execute3CloseWsPacket - id must be a number`
119
+ }
120
+ return {
121
+ "endpoint": "/sys",
122
+ "id": id,
123
+ "code": Code2.EXEC3_CLOSE,
124
+ "args": [],
125
+ "bytes": null
126
+ }
127
+ }
128
+
129
+ /* For security used to determine if computer is a bot or attacker */
130
+ function calculateSessionMetadata(uniqueId, password) {
131
+ return {
132
+ 'uniqueId': uniqueId,
133
+ 'password': password,
134
+ 'userAgent': navigator.userAgent,
135
+ 'window': `${window.outerWidth}:${window.outerHeight}`,
136
+ 'screen': `${screen.availWidth}:${screen.availHeight}`,
137
+ 'proofOfWork': "0"
138
+ }
139
+ }
140
+
141
+
142
+ //________________________________________________________________________________
143
+ // Connection
144
+ // ________________________________________________________________________________
145
+ export default class Connection {
146
+
147
+ // ________________________________________________________________________________
148
+ // CONSTRUCTOR
149
+ // ________________________________________________________________________________
150
+ constructor(config) {
151
+ this.instanceId = config.instanceId
152
+ this.client = new WsClient(this.instanceId)
153
+ // Hold reference to a Promise and its resolve/reject functions
154
+ this.isReadyPromise = null
155
+ this.isReadyResolve = null
156
+ this.isReadyReject = null
157
+
158
+ this.isReadyUpdatePromise = null
159
+ this.isReadyUpdateResolve = null
160
+ this.isReadyUpdateReject = null
161
+
162
+ // ________________________________________________________________________________
163
+ // STORE
164
+ // ________________________________________________________________________________
165
+ this.store = reactive({
166
+ /*
167
+ // ________________________________________________________________________________
168
+ // WebSocket Connection
169
+ // ________________________________________________________________________________
170
+ hostname: Constants.HOSTNAME,
171
+ port: parseInt(Constants.PORT) + 1,
172
+ protocol: Constants.PROTOCOL,
173
+ endpoint: "socket",
174
+ username: Constants.defaultUsername,
175
+ password: Constants.defaultPassword,
176
+ isSecure: Constants.IS_SECURE,
177
+ */
178
+ ...config.connection,
179
+ })
180
+
181
+
182
+ // ________________________________________________________________________________
183
+ // STATE
184
+ // ________________________________________________________________________________
185
+ this.state = reactive({
186
+ connectionSnapshot: JSON.stringify(this.store),
187
+ connectionDirty: false,
188
+ // ________________________________________________________________________________
189
+ // Websocket Client State
190
+ // ________________________________________________________________________________
191
+ // 'IDLE', 'CONNECTING', 'CONNECTED', 'ERROR', 'CLOSED'
192
+ connStateString: "IDLE",
193
+ subscriptionCount: 0,
194
+
195
+ isConnected: false,
196
+ isAuthenticated: false,
197
+ isRequiredAction: false,
198
+ sessionStateString: "IDLE",
199
+ // ________________________________________________________________________________
200
+ // ERROR
201
+ // ________________________________________________________________________________
202
+ retryEnable: true,
203
+ retries: 0,
204
+ errorMessages: [],
205
+
206
+ });
207
+
208
+ watch(
209
+ () => this.store,
210
+ (curr, prev) => {
211
+ this.state.connectionDirty = this.state.connectionSnapshot !== JSON.stringify(curr);
212
+ },
213
+ {deep: true}
214
+ )
215
+
216
+ this.stateMachine = createMachine(
217
+ {
218
+ predictableActionArguments: true,
219
+ id: 'authn',
220
+ initial: 'IDLE',
221
+ context: {
222
+ conn: this,
223
+ },
224
+ states: AuthNState
225
+ },
226
+ {
227
+ actions: this
228
+ }
229
+ )
230
+ this.actor = markRaw(interpret(this.stateMachine).start())
231
+
232
+ // ________________________________________________________________________________
233
+ // WsClient Events
234
+ // ________________________________________________________________________________
235
+ this.client.subscriptionCount$.subscribe(subscriptionCount => {
236
+ logger.debug(`subscriptionCount - ${subscriptionCount}`)
237
+ this.state.subscriptionCount = subscriptionCount
238
+ })
239
+ this.client.status().subscribe(obj => {
240
+ logger.debug(`[STATUS] - next=${ConnectionLookUp[obj.state]} current=${this.state.sessionStateString}`)
241
+ switch (obj.state) {
242
+ case ConnectionStates.IDLE:
243
+ break;
244
+ case ConnectionStates.CONNECTING:
245
+ break;
246
+ case ConnectionStates.CONNECTED:
247
+ break;
248
+ case ConnectionStates.ERROR:
249
+ this.actor.send({type: "client.error", data: obj.error})
250
+ break;
251
+ case ConnectionStates.CLOSED:
252
+ this.actor.send({type: "client.closed", reason: obj.reason, code: obj.code})
253
+ break;
254
+ }
255
+ this.state.connStateString = ConnectionLookUp[obj.state]
256
+ })
257
+
258
+ // ________________________________________________________________________________
259
+ // Session Events
260
+ // ________________________________________________________________________________
261
+ this.actor.subscribe((state) => {
262
+ logger.debug(`[STATE_CHANGE] - ${state.value}`)
263
+ this.state.sessionStateString = state.value
264
+ });
265
+
266
+ // ________________________________________________________________________________
267
+ // COMPUTED
268
+ // ________________________________________________________________________________
269
+ this.url = computed(() => {
270
+ if (this.store.isSecure) {
271
+ return `wss://${this.store.hostname}:${this.store.port}/${this.store.endpoint}?connectionId=${this.instanceId}`;
272
+ } else {
273
+ return `ws://${this.store.hostname}:${this.store.port}/${this.store.endpoint}?connectionId=${this.instanceId}`;
274
+ }
275
+ })
276
+ } // end of constructor
277
+
278
+ // ________________________________________________________________________________
279
+ // API - PUBLIC
280
+ // ________________________________________________________________________________
281
+ saveConnection = () => {
282
+ this.state.connectionSnapshot = JSON.stringify(this.store)
283
+ this.state.connectionDirty = false
284
+ }
285
+
286
+ /**
287
+ * Handles connection and authentication
288
+ */
289
+ connect = () => {
290
+ this.state.errorMessages = [];
291
+
292
+ logger.debug(`this.state.isConnected= ${this.state.isConnected}`);
293
+ if (this.state.isConnected) {
294
+ return this.connectUpdate()
295
+ }
296
+
297
+ logger.debug(`this.isReadyPromise=`)
298
+ // console.log(this.isReadyPromise)
299
+ if (this.isReadyPromise !== null) {
300
+ return this.isReadyPromise
301
+ }
302
+
303
+ this.isReadyPromise = new Promise((resolve, reject) => {
304
+ this.isReadyResolve = resolve;
305
+ this.isReadyReject = reject;
306
+ });
307
+
308
+ this.actor.send({type: "client.authenticate"});
309
+ return this.isReadyPromise
310
+ }
311
+
312
+ connectUpdate = () => {
313
+ this.isReadyUpdatePromise = new Promise((resolve, reject) => {
314
+ this.isReadyUpdateResolve = resolve;
315
+ this.isReadyUpdateReject = reject;
316
+ });
317
+ this.actor.send({type: "authenticate.update"});
318
+ return this.isReadyUpdatePromise
319
+ }
320
+
321
+ disconnect = () => {
322
+ logger.info(`disconnect`)
323
+ if (!this.state.isConnected) {
324
+ return
325
+ }
326
+ this.client.close()
327
+ this.actor.send({type: "client.disconnect"})
328
+ }
329
+
330
+ cookieUrl = () => {
331
+ if (this.store.isSecure) {
332
+ return `https://${this.store.hostname}:${this.store.port}/cookie?connectionId=${this.instanceId}`;
333
+ } else {
334
+ return `http://${this.store.hostname}:${this.store.port}/cookie?connectionId=${this.instanceId}`;
335
+ }
336
+ }
337
+
338
+ // CHECK RESPONSE, should send back uniqueId
339
+ fetchCookie = async (uniqueId, password) => {
340
+ try {
341
+ // Options object for the fetch call to make a POST request
342
+ const options = {
343
+ method: 'POST',
344
+ // Note: different port = different ORIGIN
345
+ // It tells the browser to send and accept cookies on cross-origin requests.
346
+ // default is 'same-origin'
347
+ credentials: 'include',
348
+ headers: {'Content-Type': 'application/json'},
349
+ body: JSON.stringify(calculateSessionMetadata(uniqueId, password)),
350
+ };
351
+ // Make the HTTP call using fetch with the specified options
352
+ logger.debug(options);
353
+ const response = await fetch(this.cookieUrl(), options);
354
+ const body = await response.text()
355
+ if (!response.ok) {
356
+ logger.warn(`[fetchCookie] - nok - ${body} `)
357
+ return nok(`HTTP error! status: ${response.status} - ${body}`, ["fetchCookie"])
358
+ }
359
+ logger.debug(`[fetchCookie] ok - ${body}`)
360
+ return ok(response.statusText)
361
+ } catch (error) {
362
+ return nok(`${error}`, ["fetchCookie"])
363
+ }
364
+ }
365
+
366
+ // ________________________________________________________________________________
367
+ // API - STATE MACHINE
368
+ // ________________________________________________________________________________
369
+ idle = (context, event) => {
370
+ logger.debug(`[SM] - idle`)
371
+ }
372
+ // ________________________________________________________________________________
373
+ // API - STATE MACHINE - AUTHENTICATE
374
+ // ________________________________________________________________________________
375
+ authenticate = async (context, event) => {
376
+ logger.debug(`authenticate() - ${this.store.username}`)
377
+ if (typeof this.store.username !== "string") {
378
+ throw `authenticate - username must be a string`
379
+ }
380
+ try {
381
+ const resCookie = await this.fetchCookie(this.store.username, this.store.password)
382
+ if (resCookie.isOk) {
383
+ this.actor.send({type: "authenticate.ok"})
384
+ } else {
385
+ this.state.errorMessages.push(resCookie.stack[0])
386
+ this.state.errorMessages.push(resCookie.result)
387
+ this.actor.send({type: "authenticate.nok"})
388
+ }
389
+ } catch (error) {
390
+ logger.warn("[AUTHENTICATE_ERROR]")
391
+ logger.warn(error)
392
+ this.state.errorMessages.push("AUTHENTICATE_ERROR")
393
+ this.state.errorMessages.push(JSON.stringify(error))
394
+ this.actor.send({type: "authenticate.nok"})
395
+ }
396
+ }
397
+
398
+ authenticationFailed = async (context, event) => {
399
+ this.state.isAuthenticated = false
400
+ this.isReadyReject(`authenticationFailed - ${this.state.errorMessages.join("\n")}`)
401
+ this.isReadyPromise = null
402
+ this.isReadyUpdatePromise = null
403
+ }
404
+
405
+ // ________________________________________________________________________________
406
+ // API - STATE MACHINE - AUTHENTICATE UPDATE
407
+ // ________________________________________________________________________________
408
+ authenticateUpdate = async (context, event) => {
409
+ logger.debug(`authenticateUpdate() - ${this.store.username}`)
410
+ if (typeof this.store.username !== "string") {
411
+ throw `authenticate - username must be a string`
412
+ }
413
+
414
+ let resp = await this.execute("/auth", ["login", this.store.username, this.store.password])
415
+ if (!resp.isOk) {
416
+ logger.debug(`[authenticateUpdate] - ${resp.result}`)
417
+ this.state.errorMessages.push(resp.result)
418
+ this.actor.send({type: "authenticate.update.nok"})
419
+ this.isReadyUpdateReject(resp.result)
420
+ return
421
+ }
422
+ this.isReadyUpdateResolve("ready")
423
+ this.actor.send({type: "authenticate.update.ok"})
424
+ }
425
+
426
+ // ________________________________________________________________________________
427
+ // API - STATE MACHINE - CONNECT
428
+ // ________________________________________________________________________________
429
+ connecting = async (context, event) => {
430
+ logger.debug(`[SM] - connecting - ${this.state.connStateString}`)
431
+ try {
432
+ const res = await this.client.connect(this.url.value)
433
+ this.actor.send({type: "client.connect.ok"})
434
+ } catch (error) {
435
+ logger.warn("[CONNECTION_ERROR]")
436
+ logger.warn(error)
437
+ this.state.errorMessages.push("Cannot connect.")
438
+ this.state.errorMessages.push(JSON.stringify(error))
439
+ this.actor.send({type: "client.connect.nok"})
440
+ }
441
+ }
442
+
443
+ connectionNok = (context, event) => {
444
+ logger.warn('[action] - connectionNok')
445
+ this.state.isConnected = false
446
+ if (this.state.retryEnable) {
447
+ logger.debug('re-try')
448
+ }
449
+ this.isReadyReject(`connectionNok`)
450
+ this.isReadyPromise = null
451
+ }
452
+
453
+ connectedOk = (context, event) => {
454
+ logger.debug(`[action] - connectedOk`)
455
+ this.state.isConnected = true
456
+ this.actor.send({type: "connection.ok"})
457
+ }
458
+
459
+
460
+ ready = () => {
461
+ this.state.isAuthenticated = true
462
+ this.isReadyResolve("ready")
463
+ }
464
+
465
+ /**
466
+ *
467
+ * @param {object} connection - conn: Connection}
468
+ * @param {object} event - {type: 'client.closed', reason: '', code: 1006}
469
+ * @param {object} context - {{action: Object, event: Object}}
470
+ */
471
+ disconnected = (connection, event, context) => {
472
+ if (event.type === 'client.closed') {
473
+ this.state.errorMessages.push(getCodeDescription(event.code))
474
+ }
475
+ // this.state.errorMessages = []
476
+ this.state.isAuthenticated = false
477
+ this.state.isConnected = false
478
+ this.isReadyPromise = null
479
+ this.isReadyUpdatePromise = null
480
+ }
481
+ // ________________________________________________________________________________
482
+ // EXECUTE
483
+ // ________________________________________________________________________________
484
+ /**
485
+ * @param endpoint
486
+ * @param args
487
+ * @returns {Promise<RPCResult>}
488
+ */
489
+ execute = async (endpoint, args) => {
490
+ const pkt = executeRequestWsPacket(endpoint, args)
491
+ logger.debug(`execute - endpoint=${endpoint} args=${args} id=${pkt.id}`)
492
+ if (this.state.isConnected === false) {
493
+ return nok(`[NOT_CONNECTED] - instanceId=${this.instanceId} - errors detected`, ["Connection.mjs", "execute", endpoint])
494
+ }
495
+ return new Promise(async (resolve, reject) => {
496
+ const obs$ = this.client.sendAndGetObservable(pkt)
497
+ obs$.subscribe(resp => {
498
+ if (resp.code === Code2.EXEC_RESP) {
499
+ const res = fromBinary(resp.bytes)
500
+ resolve(res)
501
+ } else if (resp.code === Code2.ERROR) {
502
+ const res = fromBinary(resp.bytes)
503
+ reject(res)
504
+ } else if (resp.code === Code2.COMPLETE) {
505
+
506
+ }
507
+ })
508
+ })
509
+ }
510
+
511
+ // ________________________________________________________________________________
512
+ // EXECUTE2
513
+ // ________________________________________________________________________________
514
+ /**
515
+ * @param endpoint
516
+ * @param args
517
+ * @param bytes
518
+ * @returns {Observable<WsPacket>}
519
+ */
520
+ execute2 = (endpoint, args, bytes) => {
521
+ const pkt = execute2RequestWsPacket(endpoint, args, bytes)
522
+ logger.debug(`execute2 - endpoint=${endpoint} args=${args} id=${pkt.id}`)
523
+ if (this.state.isConnected === false) {
524
+ throw new Exec2Error(endpoint, `[NOT_CONNECTED] - instanceId=${this.instanceId} - errors detected`, ["Connection.mjs", "execute2", endpoint])
525
+ }
526
+ const obs$ = this.client.sendAndGetObservable(pkt)
527
+ return obs$.pipe(
528
+ filter(respPkt => {
529
+ return respPkt.code !== Code2.ACCEPT && respPkt.code !== Code2.COMPLETE
530
+ }),
531
+ map(respPkt => {
532
+ if (respPkt.code === Code2.EXEC2_RESP) {
533
+ return respPkt.bytes
534
+ } else if (respPkt.code === Code2.ERROR) {
535
+ const res = fromBinary(respPkt.bytes)
536
+ throw new Exec2Error(endpoint, res)
537
+ } else {
538
+ throw new Exec2Error(endpoint, `[execute2] - invalid WsPacket.code=${respPkt.code}`)
539
+ }
540
+ })
541
+ )
542
+ }
543
+
544
+ /**
545
+ * TODO: this won't work, yeah we can't send a packet but
546
+ * where do we send it to. on server it won't be on stdin
547
+ *
548
+ * @param endpoint
549
+ * @param args
550
+ * @param id
551
+ * @returns {Observable<WsPacket>}
552
+ */
553
+ execute3 = (endpoint, args, id = null) => {
554
+ const pkt = execute3RequestWsPacket(endpoint, args, id)
555
+ logger.debug(`execute3 - endpoint=${endpoint} args=${args} id=${pkt.id}`)
556
+ if (this.state.isConnected === false) {
557
+ throw new Exec2Error(endpoint, `[NOT_CONNECTED] - instanceId=${this.instanceId} - errors detected`, ["Connection.mjs", "execute2", endpoint])
558
+ }
559
+ return this.client.sendAndGetObservable(pkt)
560
+ }
561
+
562
+ execute3send = (id, bytes) => {
563
+ const pkt = execute3PublishWsPacket(id, bytes)
564
+ logger.debug(`execute3send - id=${id} size=${bytes.size}`)
565
+ if (this.state.isConnected === false) {
566
+ return nok(`[NOT_CONNECTED] - instanceId=${this.instanceId} - errors detected`, ["Connection.mjs", "execute3send"])
567
+ }
568
+ this.client.send(pkt)
569
+ }
570
+
571
+ execute3Close = (id) => {
572
+ const pkt = execute3CloseWsPacket(id)
573
+ logger.debug(`execute3Close - id=${id}`)
574
+ if (this.state.isConnected === false) {
575
+ return nok(`[NOT_CONNECTED] - instanceId=${this.instanceId} - errors detected`, ["Connection.mjs", "execute3Close"])
576
+ }
577
+ this.client.send(pkt)
578
+ }
579
+
580
+ } // end of Connection