layday / instawow

World of Warcraft add-on manager CLI and GUI
GNU General Public License v3.0
161 stars 9 forks source link

instawow-gui is blank #91

Closed Holt59 closed 2 years ago

Holt59 commented 2 years ago

When starting the instawow-gui installed from the .msi, I can see the top-bar menu (File, etc.) but the inner part is blank and I cannot do anything.

I tried starting from CLI with the gui option but I got the following error:

ModuleNotFoundError: No module named 'instawow_gui'
[16328] Failed to execute script '__main__' due to unhandled exception!

I can try uploading logs if you tell me where to find them.

Here is what I get after starting instawow-gui:

image

layday commented 2 years ago

Hi, thanks for the report. The logs can be found at %AppData%\instawow\profiles\__jsonrpc__\logs.

I tried starting from CLI with the gui option but I got the following error:

Yeah, the CLI doesn't bundle the GUI dependencies.

Holt59 commented 2 years ago

I cleared the log file and then launched the GUI once again, the first few times I had to kill it because it was "non-responsive", after 2-3 times, it got back to the screenshot above but the log only contains the following line:

2021-12-30 11:47:41.860 | INFO     | instawow.manager:_load_certifi_certs:192 - loading certifi certs
Holt59 commented 2 years ago

If I open the web-app in an external browser (Right-Click > Open in external browser), it seems to be working. I get an error about tukui certificate, but maybe that's expected, or maybe Firefox is being more pedantic regarding expired certificates.

Also, installing via pip install instawow[gui] and then running instawow.exe gui from the virtual shows the same blank window.

layday commented 2 years ago

It looks like at some point the TypeScript compiler started producing JS syntax that the old CEF version that we use in the GUI cannot parse.

layday commented 2 years ago

The target has been ES 2017 since May so I'm not sure what happened.

layday commented 2 years ago

Oh, of course. One of our dependencies started using newer JS syntax and we're not transpiling our dependencies to ES 2017; just our own TS code.

$ npx es-check es2017 svelte-bundle.js
error: ES-Check: there were 1 ES version matching errors.

info:
          ES-Check Error:
          ----
          · erroring file: svelte-bundle.js
          · error: SyntaxError: Unexpected token (17253:23)
          · see the printed err.stack below for context
          ----

          SyntaxError: Unexpected token (17253:23)

The offending line is from ranges-sort which string-strip-html depends on:

$ npm ls ranges-sort
instawow-gui@0.0.0
└─┬ string-strip-html@9.1.4
  └─┬ ranges-apply@6.0.10
    └─┬ ranges-merge@8.0.10
      └── ranges-sort@5.0.10
layday commented 2 years ago

Thanks again for the report. Could you try the latest dev build if you have time? I've gone ahead and replaced the CEF adapter with WebView2 which I've been meaning to do for quite a while. If you're on Windows 10 you might have to install WebView2 from Microsoft.

Holt59 commented 2 years ago

The dev build seems to be working fine, thanks.

layday commented 2 years ago

Fixed in v1.35.0.