text:
typo in termdebug.vim, let v:swapchoice = '0'

Steps to reproduce
typo
Expected behaviour
Open source file in read-only mode
Version of Vim
8.2.5141
Environment
Linux
Logs and stack traces
I think "let v:swapchoice = '0'", should be "let v:swapchoice = 'o'".

Thanks for noticing.  I'll fix it.

authors: brammool robertbu

repo: vim/vim


text:
The implementation of using an Ex command as 'keywordprg' doesn't match documentation

The documentation of :h 'keywordprg' says:
	When the first character is ":", the command is invoked as a Vim
	Ex command prefixed with [count].

However, in the source code, the count is actually passed after the command:
    if (kp_ex)
    {
	// 'keywordprog' is an ex command
	if (cap->count0 != 0)
	    vim_snprintf((char *)buf, buflen, "%s %ld", kp, cap->count0);
	else
	    STRCPY(buf, kp);
	STRCAT(buf, " ");
	return n;
    }

I'll update the documentation.

source: gharchive/issue

authors: brammool zeertzjq

license: Vim

license_type: permissive

license_source: github-api


text:
<C-]> issue using Portuguese-Brazil keyboard layout

When I'm using a portuguese keyboard layout, and I press <C-]>, vim identifies it as <C-\>, which makes me unable to navigate help files using this kind of keyboards.
I was able to have a work around using this command on my vimrc:
silent! nnoremap <C-\> <C-]>

Note: I get this issue using Windows, with either console vim and gvim.

On Fri, Jan 13, 2017 at 6:31 PM, Eduardo Sousa
vim-dev-github@256bit.org wrote:

When I'm using a portuguese keyboard layout, and I press <C-]>, vim
identifies it as <C->, which makes me unable to navigate help files using
this kind of keyboards

Finding a specific control key for a nonalphabetic character on a
keyboard for a language other than English is not always obvious.
Hitting Ctrl together with whatever it is that you hit to get ] will
not necessarily get you the 0x1D byte which means Ctrl-] for Vim. For
instance, on my Belgian keyboard, ] is AltGr-$ and Ctrl-] is not
Ctrl-$ but Ctrl-AltGr-$
But even if you don't know what to hit to get something that Vim will
interpret as Ctrl-], there is an easy workaround, as follows:
  map <F9> <C-]>
  map! <F9> <C-]>

By adding the above two lines to your vimrc then restarting Vim,
hitting F9 will give you what Ctrl-] is supposed to do, i.e., follow a
help link or find a tag in Normal mode, and teminate an abbreviation
in Insert or Command-line mode. (Of course if F9 is already taken you
can use any other key, preferably some F or Shift-F key.)
Best regards,
Tony.

authors: ecsousa vim-ml


text:
Backtick expansion gives error when the expressions exits with a failed status code

the command in the shell:
find /etc -name ld.so.conf
will give access errors, along with the file it found.
using this in vim like:
:args `find /etc -name ld.so.conf`
will give an error
"E79: Cannot expand wildcards"
"479: No match"
but if a "\|\| true" ending is used:
:args `find /etc -name ld.so.conf \|\| true `
it will execute correctly.
dealing with this is very cumbersome, because error messages are uninformative.
but even so, the only reason it failed is because of the exit code. The command would work otherwise.

I would say it is correct. If an error occurs, the user should know that one happened and only he can decide what to do with it (e.g. ignore it by using your || true  )

what I am saying, is that the errors are uninformative. I have no way of knowing why the error happened in the first place. Even worse, the errors in this case are a distraction from the real issue.

Well, the backtick expansion does never show the result of the command that is run. How should the error be shown?

the errors in this case are a distraction from the real issue

And the real issue is what?

well, for one I think you make a great point. I have not found a way to see what the output of the backticks is. Something like :echo `command` would be cool I guess, but as of now it doesn't work.

And the real issue is what?
The real issue is that the command finished with a failed exit code. This is what should be written instead.
Exyz: The expression returned with a failed exit code
or something like that. This would be more informative, or at least not distracting.

PS: also, giving a hint in the help for backticks-expansion that such an error can occur and how to solve it (with the || true if the user desires and is appropriate).

But it's so strange, because other programs have no problem with the failed exit code.
If I do the following in the bash shell, there is no problem:
find /etc -name ld.so.conf | grep ld
So grep doesn't care if it received a failed exit code. Not just that. Grep itself will output a success code, so the whole command will return a success code.
What this means is, that if I type this into vim:
:args `find /etc -name ld.so.conf | grep ld `
It will work, regardless of the failed exit code, that find gives, because grep gave success.
I don't know what to make of all this. The fact that the command without piping to grep should fail, but with piping to grep shouldn't is very confusing to me.
The command with grep is no less failed than the command with grep.

(off topic)
It seems that you are not familiar with markdown, but you can use triple-backquotes to markup program codes. E.g.:
```
:args `find /etc -name ld.so.conf \| grep ld`
```

will be shown as:
:args `find /etc -name ld.so.conf \| grep ld`

find /etc -name ld.so.conf | grep ld

grep does not get the exit code. The shell will receive it. And as you note it, the shell will use the exit code of the last run command for a command that consists of pipes. That is specified somewhere in Posix or so, do not remember. Several shells have workarounds for that. See the pipefail option for bash for example.
The same is true in Vim. It runs the shell with the command mentioned. And since the shell does not receive the exit code, Vim doesn't either.
Having said this, it might be beneficial to have a way to see the result of the backtick expansion. Currently, setting the verbose option, one can at least see the command that has been executed. Make sure to set :set verbose=4

Also, I have another proposal.
Say we instead use the following:
:args `=systemlist("find /etc -name ld.so.conf")`

This is on the other end of the spectrum. It will add all the lines to the arglist, even the error messages, this time with no error or warning from vim.
Maybe this is something that should be fixed at the same time?

diff --git a/src/os_unix.c b/src/os_unix.c
index b811ac3f4..87be1e1b0 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -6693,7 +6693,7 @@ mch_expand_wildcards(
     /*
      * execute the shell command
      */
-    i = call_shell(command, SHELL_EXPAND | SHELL_SILENT);
+    i = call_shell(command, SHELL_SILENT);

     /* When running in the background, give it some time to create the temp
      * file, but don't wait for it to finish. */

This change make display stderr.

How about this documentation patch:
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index dc50455..a406769 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -424,6 +424,15 @@ On Unix and a few other systems you can also use backticks for the file name
 argument, for example: >
        :next `find . -name ver\\*.c -print`
        :view `ls -t *.patch  \| head -n1`
+This will let vim run the command given in backticks by your shell and use the
+standard output as input to the given vim command (error messages will be
+discarded).
+To see what shell command Vim is running, set the 'verbose' option to 4. When
+the command exits with a non-zero error code, an error message will be
+displayed and the vim command will be aborted. To prevent this, make the shell
+always return zero like so: >
+       :next `find . -name ver\\*.c -print \|\| true`
+
 The backslashes before the star are required to prevent the shell from
 expanding "ver*.c" prior to execution of the find program.  The backslash
 before the shell pipe symbol "|" prevents Vim from parsing it as command

If the file not found, new buffer name have the command name.

That documentation patch look promising, but there is still one more issue.
Namely, when the command fails because of non-zero exit code, it gives wrong/uninformative error messages.
E79: Cannot expand wildcards
479: No match

I propose that the error message in something else in this case, maybe something like I said in my previous post.
any suggestions?

If the file not found, new buffer name have the command name.

So that is a bug:
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index dc5045531..a4067692a 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -424,6 +424,15 @@ On Unix and a few other systems you can also use backticks for the file name
 argument, for example: >
        :next `find . -name ver\\*.c -print`
        :view `ls -t *.patch  \| head -n1`
+This will let vim run the command given in backticks by your shell and use the
+standard output as input to the given vim command (error messages will be
+discarded).
+To see what shell command Vim is running, set the 'verbose' option to 4. When
+the command exits with a non-zero error code, an error message will be
+displayed and the vim command will be aborted. To prevent this, make the shell
+always return zero like so: >
+       :next `find . -name ver\\*.c -print \|\| true`
+
 The backslashes before the star are required to prevent the shell from
 expanding "ver*.c" prior to execution of the find program.  The backslash
 before the shell pipe symbol "|" prevents Vim from parsing it as command
diff --git a/src/os_unix.c b/src/os_unix.c
index b811ac3f4..69fb29315 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -6753,8 +6753,10 @@ mch_expand_wildcards(
     fseek(fd, 0L, SEEK_END);
     llen = ftell(fd);                  /* get size of temp file */
     fseek(fd, 0L, SEEK_SET);
-    if (llen < 0)
-       /* just in case ftell() would fail */
+    if (llen <= 0)
+       /* just in case ftell() would fail
+        * or file size is zero (shell
+        * did not return output) */
        buffer = NULL;
     else
        buffer = alloc(llen + 1);
@@ -6764,6 +6766,8 @@ mch_expand_wildcards(
        mch_remove(tempname);
        vim_free(tempname);
        fclose(fd);
+       if (llen == 0)
+           EMSG(_("EXXX: Shell returned no output"));
        return FAIL;
     }
     len = llen;

If the file not found, new buffer name have the command name.

So that is a bug:

Not really, backtick expansion resulting in an empty result should be
OK, it depends on how it is used.  E.g. to get an optional path.
The explanation for editing.txt is useful.  But the example doesn't
work.  Might depend on the shell.
I rephrased it a bit:
Vim will run the command in backticks using the 'shell' and use the standard
output as argument for the given Vim command (error messages from the shell
command will be discarded).
To see what shell command Vim is running, set the 'verbose' option to 4. When
the shell command returns a non-zero exit code, an error message will be
displayed and the Vim command will be aborted. To avoid this make the shell
always return zero like so: >
:next find . -name ver\\*.c -print \|\| true
--
hundred-and-one symptoms of being an internet addict:
77. The phone company asks you to test drive their new PBX system
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

closed with https://github.com/vim/vim/commit/ab943431d8fcd856008a025b0e5652dd4b8007fc

authors: AvianY brammool chrisbra k-takata mattn


text:
langmenu is not set (gVim menus are in english)

I build Vim in Linux Mint but it seems langmenu is not set so gVim menus are in english and not the language i use.
Running this changes the menu language:
source $VIMRUNTIME/delmenu.vim
set langmenu=da.utf-8
source $VIMRUNTIME/menu.vim

But when i restart gVim, langmenu is again not set.

Well, if you do not set it inside your .vimrc file, it won't have an effect after a restart.
However, I think if langmenu is empty, it should use v:lang. So what locale are you using? What is the output of :language mes inside Vim?

I think menu_da_dk.*.vim files are also needed.

Having menu_da_dk.vim works (gVim menus are in danish).
Not that i want that as a solution.
env says:
LANG=da_DK.UTF-8
LANGUAGE=da

:language mes says:
"da_DK.UTF-8"

:echo $lang says:
da_DK.UTF-8

If they say "da_DK.UTF-8" it does not load menu_da.utf-8.vim/menu_da.latin1.vim.
But when they say "DA" it does.

If i run:
LANG=da_DK.UTF-8 gvim

:language mes says:
da_DK.UTF-8

If i run:
LANG=da_DK gvim
LANG=da gvim

:language mes says:
C

In Windows 7 using MINGW64 terminal i can run:
LANG=da_DK gvim
LANG=da gvim

And :language mes says:
da_DK
da

But for some reason in Linux Mint it gives C.

If you do :lang mess da inside your .vimrc does it work? Note, this needs to be at the very beginning, before menus are loaded (might happen on :filetype and :syn commands).

If i run:
LANG=da_DK gvim
LANG=da gvim
:language mes says:
C

It's not a Vim issue.
Try locale -a command to check what locales are installed in your system.
Only installed locale can be set to $LANG.

I am not so sure, if we can't do better here.
We could try this:
diff --git a/runtime/menu.vim b/runtime/menu.vim
index b9bd3d89c..0963aeccb 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -51,10 +51,18 @@ if exists("v:lang") || &langmenu != ""
     exe "runtime! lang/menu_" . s:lang . ".vim"

     if !exists("did_menu_trans")
-      " There is no exact match, try matching with a wildcard added
-      " (e.g. find menu_de_de.iso_8859-1.vim if s:lang == de_DE).
-      let s:lang = substitute(s:lang, '\.[^.]*', "", "")
-      exe "runtime! lang/menu_" . s:lang . "[^a-z]*vim"
+      for pat in ['\.[^.]*', '_.*']
+        " There is no exact match, try matching with a wildcard added
+        " (e.g. find menu_de_de.iso_8859-1.vim if s:lang == de_DE).
+        " Try twice:
+        "   1) de_de.utf-8
+        "   2) de.utf-8 (e.g. remove everything after the '_')
+        let s:lang = substitute(s:lang, pat, "", "")
+        exe "runtime! lang/menu_" . s:lang . "[^a-z]*vim"
+        if exists("did_menu_trans")
+          break
+        endif
+      endfor

       if !exists("did_menu_trans") && strlen($LANG) > 1 && s:lang !~ '^en_us'
        " On windows locale names are complicated, try using $LANG, it might

e.g. when trying different locales and stripping everything after the ., why not also try afterwards to remove everything after the _ and try loading again.
On a second thought, I am not even sure, this works correctly in all cases. I see two issues here:

does it actually make sense to source menu files which are in a different encoding than the one we are currently using? IMHO, this will garble menu strings and break
In case of menu_de_de.utf-8.vim why are we blindly sourcing menu_de_de.latin1.vim? Shoudln't there at least be a :scriptencoding latin1?

ah, there is actually a :scriptencoding block in the latin1 case, did not see this.

For some reason in Windows 7 using MINGW64 terminal i can set LANG to anything and it will show in :language mes.
From a users point of view i would expect that the translation for the menus follow that of Vim.
So if Vim is using danish translation i would expect gVim menus to also use danish translation.
And if there is some kind of problem loading the correct translation i would expect it to fail in both cases and not work in one case (Vim) and fail in another case (gVim menus).

Another example:
If your locale is nb_NO.UTF-8 gVim will fall back to english and not load these files:
menu_no.latin1.vim
menu_no.utf-8.vim
menu_no_no.latin1.vim
menu_no_no.utf-8.vim

It seems silly if each translation have to have endless amounts of files that redirects to another file.
I guess the only reason gVim menus are in english for english languages is because it falls back to english when it dont work. When the translation like en_AU.UTF-8 does not exists.

As i temporary solution for danish i can create all these files until the problem is corrected:
menu_da.latin1.vim
menu_da.utf-8.vim
menu_da_de.latin1.vim
menu_da_de.utf-8.vim
menu_da_dk.latin1.vim
menu_da_dk.utf-8.vim
menu_da_fo.latin1.vim
menu_da_fo.utf-8.vim
menu_da_gl.latin1.vim
menu_da_gl.utf-8.vim

menu_da.utf-8.vim containing the translations and all the others just sources the file.

fixed by https://github.com/vim/vim/commit/68f1b1b37fa7aba985d9f8727fd9f0f3eb0c19a9

authors: chrisbra k-takata scootergrisen


text:
add a way to detect the popup was opened by ctrl-x ctrl-f

In asyncomplete v2 I now provide custom filter function when a character is inputed. Now if the user open file complete using ctrl-x ctrl-f the pum opens but because because of asyncomplete it takes over pum. Can we have an autocmd event that notifies autocomplete plugins that the popup was opened due toctrl-x ctrl-f so we can ignore processing our code and let vim handle the autocomplete?
A bit more info on this can be found at https://github.com/prabirshrestha/asyncomplete.vim/pull/124#issuecomment-469966730
autocmd CompleteOpen * call s:complete_open()
autocmd CompleteDone * call s:complete_done()

function! s:complete_open() abort
    let s:complete_type = v:event['complete_type']
endfunction

function! s:complete_done() abort
    let s:complete_type = ''
endfunction

function! s:on_changed() abort
    if s:complete_type == 'ctrl-x ctrl-f' || s:complete_type == 'ctrl-x ctrl-o' | return | endif
    " .... asyncomplete s:on_change code goes here
endfunction

Of if anyone has a better way to solve this issue without adding autocmd events let me know.
//cc @mattn Who filed the bug.

MenuPopup ca be used for this?

Ah, sorry. MenuPopup seems to be an event for GUI.

Is this works as you want?
diff --git a/src/autocmd.c b/src/autocmd.c
index 55650b46f..b2f8b2df3 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -111,6 +111,7 @@ static struct event_name
     {"CmdUndefined",	EVENT_CMDUNDEFINED},
     {"ColorScheme",	EVENT_COLORSCHEME},
     {"ColorSchemePre",	EVENT_COLORSCHEMEPRE},
+    {"CompleteOpen",	EVENT_COMPLETEOPEN},
     {"CompleteDone",	EVENT_COMPLETEDONE},
     {"CursorHold",	EVENT_CURSORHOLD},
     {"CursorHoldI",	EVENT_CURSORHOLDI},
diff --git a/src/edit.c b/src/edit.c
index 2f81b52df..211c74195 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -62,6 +62,28 @@ static char *ctrl_x_msgs[] =
     NULL,   /* CTRL_X_EVAL doesn't use msg. */
 };

+/* Types for CTRL-X mode, used for CompleteDone. */
+static char *ctrl_x_types[] =
+{
+    "keyword",
+    NULL,
+    NULL,
+    "line",
+    "file",
+    "tag",
+    "path",
+    "definition",
+    NULL,
+    "dictionary",
+    "thesaurus",
+    "commandline",
+    "user",
+    "omni",
+    "spell",
+    "keywordlocal",
+    NULL,
+};
+
 static char e_hitend[] = N_("Hit end of paragraph");
 # ifdef FEAT_COMPL_FUNC
 static char e_complwin[] = N_("E839: Completion function changed window");
@@ -262,6 +284,7 @@ static void ins_try_si(int c);
 static char_u *do_insert_char_pre(int c);
 #endif
 static int ins_apply_autocmds(event_T event);
+static int ins_done_event();

 static colnr_T	Insstart_textlen;	/* length of line when insert started */
 static colnr_T	Insstart_blank_vcol;	/* vcol for first inserted blank */
@@ -3172,6 +3195,8 @@ ins_compl_show_pum(void)
 	pum_display(compl_match_array, compl_match_arraysize, cur);
 	curwin->w_cursor.col = col;
     }
+
+    ins_done_event();
 }

 #define DICT_FIRST	(1)	/* use just first element in "dict" */
@@ -10253,3 +10278,41 @@ ins_apply_autocmds(event_T event)

     return r;
 }
+
+/*
+ * Trigger CompleteDone
+ */
+    static int
+ins_done_event(event_T event)
+{
+    varnumber_T	tick = CHANGEDTICK(curbuf);
+    int		r;
+    static int	recursive = FALSE;
+    dict_T	*v_event;
+    char_u	*type = (char_u*) ctrl_x_types[ctrl_x_mode];
+
+    if (type == NULL || recursive)
+	return FALSE;
+
+    v_event = get_vim_var_dict(VV_EVENT);
+
+    dict_add_string(v_event, "complete_type", type);
+    dict_set_items_ro(v_event);
+
+    recursive = TRUE;
+    textlock++;
+    r = apply_autocmds(EVENT_COMPLETEOPEN, NULL, NULL, FALSE, curbuf);
+    textlock--;
+    recursive = FALSE;
+
+    /* Empty the dictionary, v:event is still valid */
+    dict_free_contents(v_event);
+    hash_init(&v_event->dv_hashtab);
+
+    // If u_savesub() was called then we are not prepared to start
+    // a new line.  Call u_save() with no contents to fix that.
+    if (tick != CHANGEDTICK(curbuf))
+	u_save(curwin->w_cursor.lnum, (linenr_T)(curwin->w_cursor.lnum + 1));
+
+    return r;
+}
diff --git a/src/vim.h b/src/vim.h
index fbae72d8d..0d30d881e 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1271,6 +1271,7 @@ enum auto_event
     EVENT_CMDWINLEAVE,		// before leaving the cmdline window
     EVENT_COLORSCHEME,		// after loading a colorscheme
     EVENT_COLORSCHEMEPRE,	// before loading a colorscheme
+    EVENT_COMPLETEOPEN,		// before open popup for completion
     EVENT_COMPLETEDONE,		// after finishing insert complete
     EVENT_CURSORHOLD,		// cursor in same position for a while
     EVENT_CURSORHOLDI,		// idem, in Insert mode

CompleteOpen sounds very similar to MenuPopup except with the pum not the right click menu.  Should pum just be added as another mode to MenuPopup?
@prabirshrestha would your request be covered by a complete_mode() function (#3866)?  What about neovim's MenuPopupChanged proposal? (https://github.com/neovim/neovim/pull/9616).

Haven't had a chance to try the patch out but @Shougo's complete_mode() PR would also work. That is an easier because then I don't have to maintain a state in asyncomplete.vim.
MenuPopupChanged is for when an item selection is changed so doesn't seem like the right fix for my problem.

Haven't had a chance to try the patch out but @Shougo's complete_mode() PR would also work. That is an easier because then I don't have to maintain a state in asyncomplete.vim.

Yes.  complete_mode() has the same feature.

Now that complete_info() is available, is this issue still relevant?
Also, it's not clear to me how s:on_changed() in your example is called.

This is no longer required as complete_info is more than enough to solve the initial problem. Will reopen if needed. Thanks.

authors: Shougo andymass brammool mattn prabirshrestha


text:
stack-buffer-overflow in vim at leave_block (src/ex_eval.c:970)

Hello,
We are currently working on fuzz testing feature, and we found a stack-buffer-overflow on vim.
The stack traces are as follow:
==25686==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffcabdcd36e at pc 0x5593bdb08020 bp 0x7ffcabdccd90 sp 0x7ffcabdccd80
READ of size 2 at 0x7ffcabdcd36e thread T0
    #0 0x5593bdb0801f in leave_block .../vim-git/src/ex_eval.c:970
    #1 0x5593bdb0e735 in ex_endtry .../vim-git/src/ex_eval.c:2108
    #2 0x5593bdadce30 in do_one_cmd .../vim-git/src/ex_docmd.c:2614
    #3 0x5593bdad3cf8 in do_cmdline .../vim-git/src/ex_docmd.c:1000
    #4 0x5593bdde5e2d in do_source .../vim-git/src/scriptfile.c:1406
    #5 0x5593bdde3e42 in cmd_source .../vim-git/src/scriptfile.c:971
    #6 0x5593bdde3eaf in ex_source .../vim-git/src/scriptfile.c:997

Here is the full stack trace : full_stacktrace_poc_8.zip
Step to reproduce
We configured vim using CFLAGS="-g -O0 -fsanitize=address" CXXFLAGS="-g -O0 -fsanitize=address" LDFLAGS="-g -O0 -fsanitize=address" ./configure --prefix=$(pwd)/ and build it using make -j10, and run it with:
./vim -u NONE -X -Z -e -s -S <attached file> -c ':qa!'

Attachment: input_vim_poc_8.zip
Environment

OS: Ubuntu 18.04.5 LTS
GCC version: gcc 7.5.0
vim version: latest commit (f67d3fb7) of master branch in github (link)

Thank you.

I can't reproduce this bug so far.  Unclear what I'm missing.
I'm using vim-8.2.3481 on xubuntu-18.04.6 with clang-12.
Shooting in the dark: @irfanariq what is your locale?  (output of the locale command).

authors: dpelle irfanariq


text:
Shows "successfully subscribed to push notifications" on every page

Just found out that clicking to any different page shows the "successfully subscribed to push notifications" message on the bottom left.

Browser : Firefox

its weird it only happens in firefox

@duttakapil Found the issue and fixed it 🎉
Recheck and if still happens let me know.
####Do these before testing again

First unsubscribe from push notifications but it will fail and switch will still in on state only because it was not handled correctly first time when you subscribed.
so refresh the page
Now you subscribe again
And now every thing should work as expected

Actually what happened is on firefox we need to handle push subscription differently than chrome which i did not know at first, i fixed this in above commits.

Yup, it works fine now. Followed your instructions and it doesn't show anymore

authors: duttakapil vinaypuppal

repo: vinaypuppal/linklet-app

license: mit

license_source: bigquery


text:
Added GitHub Workflow

Integrated build.yml file that inspects successful installation of the package, dependencies, submodules, and successful completion of pytest.

Again, 23 files have been changed here, while the title says "Added Github Workflow", which suggests a single file should have been added.
This is the comment I left on PR #2, which applies here as well:
Since we started this whole exercise with the motive "Convert the code to a package and make it installable, along with a simple test for the first step of processing", we should have a single open PR. Maybe you want to close all these PRs and open a single one (with a single commit).

source: gharchive/pull-request

repo: vineetbansal/NPS-generation

license: MIT


text:
DynamicNamespaces not working in component

Hi.
I found that DynamicNamespaces don't work when I wrap some nested component. E.g if component is rendered after some user action like below.
// page file
const TestPage = () => {
  const { t } = useTranslation();
  const [modalVisible, setModalVisible] = useState(false);

  return (

      <button onClick={() => setModalVisible(!modalVisible)}>Click</button>
      {modalVisible && <Modal />}

  );
};

export default TestPage;

// modal component
const Modal = () => {
  const { t } = useTranslation();

  return (
    <DynamicNamespaces
      namespaces={['modalNamespace']}
      dynamic={async (l, n) => {
        const resp = await fetch(`/locales/${l}/${n}.json`);
        return await resp.json();
      }}
    >

{t('modalNamespace:test')}

    </DynamicNamespaces>
  );
};

export default Modal

When i wrap the page into DynamicNamespaces it works but 'modalNamespace' is loaded on page load and that is not always wanted.
I hope I'm not missing anything....

Thanks a lot. That works well.

repo: vinissimus/next-translate


text:
use with my own data

as you mention in readme i changed source and target to my owndata:
def main():
	args = options()
	torch.backends.cudnn.deterministic = True

	if args.user_data:
		template = np.array(o3d.io.read_point_cloud("/home/fteam4/sabra/catalyst/probreg/9.ply"))#np.random.randn(1, 100, 3)					# Define/Read template point cloud. [Shape: BATCH x No. of Points x 3]

		source =np.array(o3d.io.read_point_cloud("/home/fteam4/sabra/catalyst/probreg/9.ply")) #np.random.randn(1, 75, 3)						# Define/Read source point cloud. [Shape: BATCH x No. of Points x 3]
		mask = np.zeros((1, 100, 1))							# Define/Read mask for point cloud. [Not mandatory in testing]
		igt = np.zeros((1, 4, 4))								# Define/Read igt transformation. [Not mandatory during testing]
		testset = UserData(template, source, mask=None, igt=None)

but I got :

  File "/home/fteam4/sabra/catalyst/masknet-main/test.py", line 196, in <module>
    main()
  File "/home/fteam4/sabra/catalyst/masknet-main/test.py", line 163, in main
    testset = UserData(template, source, mask=None, igt=None)
  File "/home/fteam4/sabra/catalyst/masknet-main/learning3d/data_utils/dataloaders.py", line 334, in __init__
    self.check_dataset()
  File "/home/fteam4/sabra/catalyst/masknet-main/learning3d/data_utils/dataloaders.py", line 337, in check_dataset
    if len(self.template)>2:
TypeError: len() of unsized object

i solved this but still i got an error
n/learning3d/models/pointnet.py", line 57, in forward
input_data = input_data.permute(0, 2, 1)
RuntimeError: number of dims don't match in permute


text:
Simplify Travis package install specification

Because all build matrix entries have the same package dependencies, this moves that info to the global config. Allows the rest of the matrix to be edited with impunity.

Current coverage is 96.07% (diff: 100%)

Merging #236 into master will not change coverage

@@             master       #236   diff @@
==========================================
  Files            86         86
  Lines          5780       5780
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           5553       5553
  Misses          227        227
  Partials          0          0

Powered by Codecov. Last update c00cd37...28c00ca

Lipstick on a pig :)

Part of #233, thanks

authors: codecov-io vinniefalco ximinez

repo: vinniefalco/Beast


text:
Footer Not Displayed After using TRMosaicLayout

This is a superb layout library, but I am facing a serious problem.

collectionView.register(UINib(nibName: "LoadingFooterCollectionReusableView", bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionFooter, withReuseIdentifier: "loadingFooterIdentifier");
//The delegate function below is no longer called
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
}

Any ideas how to fix this?

Can you post the error? I don't see anything wrong with the code you posted 😄

Hi @vinnyoodles , there is no error. It is just that the delegate function 'viewForSupplementaryElementOfKind' is no longer called after I use use the layout
    let mosaicLayout = TRMosaicLayout();
    self.collectionView?.collectionViewLayout = mosaicLayout;
    mosaicLayout.delegate = self;

If I commented it out. The delegate will be called again.

I have posted a question in SO too addressing this issue.
http://stackoverflow.com/questions/43221323/using-custom-layout-causes-collectionviewflowlayout-delegate-function-not-being?noredirect=1#comment73517175_43221323

authors: Jayvd vinnyoodles

repo: vinnyoodles/TRMosaicLayout


text:
Problems with 'GET' on all devices

I have 20+ Tuya devices, like switches, sensors, ad some ZigBee devices. All devices work well in smartLife app.
I'm testing node-red-contrib-tuya-smart.device to do some logging and more advanced control using node-red.
The node-red actual comportment is:

All devices (except some sensors) accepts "SET" commands:

Example, using a real device, a switch, the command (sets the switch on for 10 s) :
payload: { multiple: true, data: { 1: true, 102: 10}}
produces the answer:
12 Dec 11:50:26 - [info] [tuya-smart-device:fe3fbeb2.ac31f] Data from device: "{"dps":{"1":true,"102":10},"t":1607770225}"
Using a virtual device, i.e. a radiator controller and ZigBee hub, the command (sets the target temperature)
payload: { "devId": "60a423fffeb5b90d", "dps": 103, "set": 220 }
produces the answer:
12 Dec 12:06:24 - [info] [tuya-smart-device:a9ea9736.7483f8] Data from device: "{"dps":"103":220},"cid":"60a423fffeb5b90d", "type":query,"t":1607771183}"

I get a message also when some values are changed via smartLife, e.g.:
12 Dec 12:14:08 - [info] [tuya-smart-device:fe3fbeb2.ac31f] Data from device: "{"dps":{"1":true},"t":1607771648}"
12 Dec 12:16:12 - [info] [tuya-smart-device:a9ea9736.7483f8] Data from device: "{"dps":{"101":47},"cid":"00158d00056e5022","t":1607771771}"

I get also messages in case of a status change on a device, or from a sensor (without any request):
Switch countdown end:
12 Dec 11:50:36 - [info] [tuya-smart-device:fe3fbeb2.ac31f] Data from device: "{"dps":{"1":false,"102":0},"t":1607770235}"
Temperature from a ZigBee sensor, (about every 3600s, request by Tuya cloud?):
12 Dec 12:14:28 - [info] [tuya-smart-device:a9ea9736.7483f8] Data from device: "{"dps":{"103":215},"cid":"60a423fffeb5b90d","t":1607771667}"

It sounds good, so all ok? Sorry, not really.

Any 'GET' command in any device (real, virtual, ...) in any form, don't work! Always I get:
12 Dec 11:32:32 - [error] [tuya-smart-device:fe3fbeb2.ac31f] json obj data unvalid

This is a big problem because I cannot read in polling any RO device data points, so some parameters are unreachable.
Maybe the problem is in TuyApi: see also issue #246 and issue #23.
Any other user has found this behavior?
Any idea for solutions?
Best regards
m.s.

The tuyapi ver. "6.1.1" introduces two new options:

options.nullPayloadOnJSONError = false
options.issueGetOnConnect = true

Putting both to false is a partial solution to commands (like 'GET' and 'schema') not handled by some devices and occasionally reported by the device using the misunderstandly "json obj data invalid".
The only open issue is the 'ERROR' level in case of connection loss: using retry this event is not an ERROR requiring programmer intervention, better if it becomes a 'warning' (errors: "Error from socket", "find() timed out. Is the device powered on and the ID or IP correct?").

But I'm using the "node-red-contrib-tuya-smart-device" ver. 1.2.1, which uses tuyapi 5.3.1.
While waiting for an update, my personal solution is to modify "node_modules / tuyapi / index.js" (5.3.1) so:

comment out lines 317-332: the complete block: for (const packet of packets).
comment out line 404:  this.get ();
changed line 623 to:   throw new Error (` Rety connection: ID $ {this.device.id} `); more informative.

Best regards
m.s.

Will update the latest version #33

Will update the latest version #33

Updated to latest 6.1.1 with the following options
options.nullPayloadOnJSONError = false
options.issueGetOnConnect = false
Please update to the 2.0.0 version of tuya-smart-device .
Hope this fixes the issues.

Updated to latest 6.1.1 with the following options
options.nullPayloadOnJSONError = false
options.issueGetOnConnect = false
Please update to the 2.0.0 version of tuya-smart-device .
Hope this fixes the issues.

Updated to latest 6.1.1 with the following options
options.nullPayloadOnJSONError = false
options.issueGetOnConnect = false
Please update to the 2.0.0 version of tuya-smart-device .
Hope this fixes the issues.

Updated to latest 6.1.1 with the following options
options.nullPayloadOnJSONError = false
options.issueGetOnConnect = false
Please update to the 2.0.0 version of tuya-smart-device .
Hope this fixes the issues.

authors: msillano vinodsr


text:
Add a history for the shortened url

Add a section where in the user's shortened url(past) should be accessible to the user.

@vinyashegde Please assign me this issue I want to work on it.


text:
Developers wiki shows core/aler instead of core/alert

In developers wiki under the Considerations heading(https://github.com/viraintel/OWASP-Nettacker/wiki/Developers#considerations) and alerts subheading, code snippets show core/aler instead of core/alert. Here is the attached screenshot :

Hi,
thanks for noticing, I'll update the wiki soon, the documents also are old and needs to be updated.
Best regards.

I tried to correct it myself but Github doesn't support pull requests on wiki and I don't have the editing rights to the main wiki. :)

Hello,
Yes, unfortunately github does not supports PR on wiki.
I'll fix it soon.
regards.

fixed, thanks.

authors: Ali-Razmjoo shaddygarg

repo: viraintel/OWASP-Nettacker


text:
[QUESTION] Set ViroARTrackingTargets source from variable

Hi
I hope you can help me.
I have a list of project and when I click on one of them I go to the detail page which is the ViroReact.
Actually I have one case with my business card inspire by your example.
What I am trying to achieve is to give the Image Marker as a variable inside my Scene.
I pass my props inside
`     <ViroARSceneNavigator
      initialScene={{
        scene: require('../js/NewSceneContent.js'),

passProps:{
params:params,
name:name,
imageTarget:imageTarget}
}
}
apiKey={apiKey}
/>`
But I try to access this props inside my NewSceneContent.js which is declared as 👍
`'use strict';
import React, { Component } from 'react';
import {StyleSheet} from 'react-native';
import {
ViroARScene,
ViroText,
ViroConstants,
ViroARTrackingTargets,
ViroARImageMarker,
ViroQuad,
ViroNode,
} from 'react-viro';
export default class TemplateSceneAr extends Component {
//const imageMarker = this.props.imageMarker
constructor(props) {
super(props);
// Set initial state here
this.state = {
  text : "Initializing AR...",
  addImageMarker : false,
  imageMarker: this.props.itemId,
};

//alert(this.state.imageMarker);
//var test = this.state.imageMarker;
//alert(test);
// bind 'this' to functions
this._onInitialized = this._onInitialized.bind(this);
this._getImageMarker = this._getImageMarker.bind(this);
this._getQuad = this._getQuad.bind(this);
this._foundAnchor = this._foundAnchor.bind(this);
this._updateAnchor = this._updateAnchor.bind(this);
}
componentDidMount() {
//alert( this.props.itemId);
alert(this.props.itemId);
var test = this.props.itemId;
//alert(imageMarker)
setTimeout(()=>{
this.setState({
addImageMarker : true,
})
}, 10000)
// alert(${this.props.navigation.state});
}
render() {
return (
//alert(this.props.navigation.state)

<ViroText text={this.state.text} scale={[.5, .5, .5]} position={[0, 0, -1]} style={styles.helloWorldTextStyle} />
{this._getImageMarker()}
{this._getQuad()}

);
}
_getImageMarker() {
//alert(this.props.imageMarker);
if (!this.state.addImageMarker) {
return;
}
return (
  <ViroARImageMarker target={"mi_poster"} onAnchorFound={this._foundAnchor} onAnchorUpdated={this._updateAnchor} />
)

}
_getQuad() {
if (!this.state.foundAnchor) {
return
}
return (

<ViroQuad rotation={[-90,0,0]} scale={[.7158, 1.066, 1]}/>

)
}
_foundAnchor(anchor) {
this.setState({
foundAnchor : anchor
})
}
_updateAnchor(anchor) {
this.setState({
foundAnchor : anchor
})
}
_onInitialized(state, reason) {
if (state == ViroConstants.TRACKING_NORMAL) {
  this.setState({
    text : "Hello World!"
  });
} else if (state == ViroConstants.TRACKING_NONE) {
  // Handle loss of tracking
}

}
}
//const essai = 'https://s3-us-west-2.amazonaws.com/viro/MI_assets/mi_2.png';
ViroARTrackingTargets.createTargets({
mi_poster : {
source : {
//uri :'https://s3-us-west-2.amazonaws.com/viro/MI_assets/mi_2.png'
uri :  HERE I WANT MY VARIABLE
},
//source : require('./res/mi_2.png'),
orientation : 'Up',
physicalWidth : 0.6858, // 27" poster
}
})
var styles = StyleSheet.create({
helloWorldTextStyle: {
fontFamily: 'Arial',
fontSize: 30,
color: '#ffffff',
textAlignVertical: 'center',
textAlign: 'center',
},
});
module.exports = TemplateSceneAr;`
Someone could explain to me how can I  achieve that ?
Thanks guys

Ok I got it I just create function in the class where I can access my json data. It's solved.

Can you please provide a stand-alone source code for ViroARTrackingTargets that I can replicate on my end? I am having issues passing the object to render. Thanks.

repo: viromedia/viro


text:
adds missing addplayertest

code is set to depreciate but should still be covered until then.

thanks @uweenukr , nice work


text:
feat(arrow-layers): Fork @geoarrow/deck.gl-layers

Per discussions with @kylebarron, exploring possibility of continuing development of https://github.com/geoarrow/deck.gl-layers inside the vis.gl ecosystem.
Setting these up as a @deck.gl-community/arrow-layers layer pack would allow us to mature these for eventual upstreaming into deck.gl.

Merging after getting positive feedback.


text:
add requestAnimationFrame function and mouseup and mousedown events f…

optimise canvas rendering using requestAnimationFrame and optimised performance of webpage from 84 to 93 and SEO optimisation as well. thanks for your corporation. please review changes. issue no. is #58  thanks.

@vishanurag  bro can you tell me why it is showing reslove conflicts i have up to date fork repo.Can you help me in this maintainers have rights to edit.

repo: vishanurag/Canvas-Editor


text:
OPTIONS always sent

I'm having some weird behavior. When I use an XMLHTTPRequest against the soundcloud API all works fine. When I use superagent, it sends an OPTIONS (the XMLHTTPRequest doesn't do this) to the API which responds with nothing causing the request to fail.
Very very strange. I've tested this using jQuery's ajax stuff and it works fine there too.

Perhaps related to https://github.com/visionmedia/superagent/pull/567
@contra could you try with latest master and see if that helps?

FYI, I still get weird behavior with the soundcloud api. The same request will sometimes fail for no reason. I don't think it does send an OPTIONS request though (at least request.method is 'GET').
@contra did you find what the issue was? Though I realize it was a long time ago ;)

The issue fixed previously was that progress event handler forces options request.
Browsers will also force options request if you set custom headers.

This is happening when running in node 4.2.1

That is very surprising. Can you share code to reproduce this problem?

authors: contra jnak pornel rase-

repo: visionmedia/superagent


text:
🛑 Taranis is down

In 6ad5bf6, Taranis (https://taranis.ag/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Taranis is back up in ba0d039.

repo: vistaardigital/uptime


text:
Support Swell contracts indexing

[ ] TVL in ETH
[ ] TVL in Native token (if applicable)
[ ] Validator count

Closed by 21b159f972d99df84566519c06791951f6774bd4

repo: vistastaking/indexer


text:
join by not found in cube

Describe the bug
merging cubes works pretty fine. but then using that as published chart looks broken atm
To Reproduce
Steps to reproduce the behavior:

Go to https://test.visualize.admin.ch/v/psNkz4rQWqvH?dataSource=Test
See error

Expected behavior
A chart as shown in edit mode https://test.visualize.admin.ch/create/new?copy=psNkz4rQWqvH
Screenshots or video
Unexpected error
An unexpected error occurred while displaying this chart.
No dimension <joinBy> in cube!

Environment (please complete the following information):

Visualize environment and version: TEST v4.2.0 (687874d)

Thanks for the feedback @Rdataflow.
@ptbrowne assigned to you incase it's not yet on your radar

LGTM- Was able to successfully create a chart with the same parameters on TEST. The error described above did not show up.
test chart: https://test.visualize.admin.ch/en/v/cwiHCcmWVyTi?dataSource=Test

authors: Rdataflow sosiology

repo: visualize-admin/visualization-tool


text:
Select2 Dropdown offset

I'm having a problem when using select2 with multiple tags. The problem is that when the dropdown it's oppened it goes to the bottom of the page and not over the input.
Anyone had this problem too?

You might have an issue with CSS. But give a try to the following...
I'm not sure whether you use bootstrap or not. If so, popover is used to host the input. By default, select2 inserts itself into body tag. This causes lots of issues such as leaving remnants of select2 if popover gets closed, z-index mess, etc.
You might give a try to select2: {dropdownParent: '.popover'} option, but you'd also need https://github.com/select2/select2/pull/5373

I'm having a problem when using select2 with multiple tags. The problem is that when the dropdown it's oppened it goes to the bottom of the page and not over the input.
Anyone had this problem too?
Igot the same problem,I wonder know have you fixed this
bug? If you have, please give me some suggestions,thanks!

I'm having a problem when using select2 with multiple tags. The problem is that when the dropdown it's oppened it goes to the bottom of the page and not over the input.
Anyone had this problem too?
Igot the same problem,I wonder know have you fixed this
bug? If you have, please give me some suggestions,thanks!

authors: carlosmarcelomorales mlt zpforcoding

repo: vitalets/x-editable


text:
2.0.0 checkpoints

This is to track what's left before 2.0.0 is released.

Check that all operators work and cast types as expected.
Complete #103
Complete #135

I'm sure there can be more to add or improve, but those won't be breaking changes, so can be added later.
@RebeccaStevens Anything else you can think of as necessary for 2.0.0 release?

I added #161 later, as a breaking change, but it is already done and released in Beta 7.

#163 Went in with Beta 8

@RebeccaStevens Do you think you can make time to review what's left as per the list above?
I really have my mind set for v2.0.0 release to happen today, with what we've got now... 😄

Sorry, I haven't been feeling well the last few days. I'll take a look at those issue now.

I'm very sorry to hear. Get better! 😉

@RebeccaStevens Ok, I'm all done here, ready to make v2.0.0 release. Are you ok with that or are you changing something now?

Version 2.0.0 released.

authors: RebeccaStevens vitaly-t

repo: vitaly-t/iter-ops


text:
Enum serializer

The serializer Enum attribute to string doesn't work, any options or configuration are necessary?
    [JsonConverter(typeof(StringEnumConverter))]

Closing this, as not relevant, please reopen if needed

authors: felpasl vitalybibikov


text:
Vite SSR Imports not loading classes correctly - constructors not loaded

Describe the bug
I'm trying to use a class in a Vite + SvelteKit project with TypeScript enabled. However, when I try to use a class and construct it in other places, while IntelliSense/LSPs don't throw any errors, when building/developing, the following error is outputted:
11:00:08 AM [vite] Error when evaluating SSR module /src/lib/core/games/chess/chess.ts:
|- TypeError: __vite_ssr_import_0__.GameMetadata is not a constructor
    at eval (/home/ramendev/projects/just-games/src/lib/core/games/chess/chess.ts:5:15)
    at async instantiateModule (file:///home/ramendev/projects/just-games/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

*other errors caused when importing the chess.ts file*

11:00:08 AM [vite] Error when evaluating SSR module /src/routes/+page.svelte: failed to import "/src/lib/components/games/GamesCarousel.svelte"
|- TypeError: __vite_ssr_import_0__.GameMetadata is not a constructor
    at eval (/home/ramendev/projects/just-games/src/lib/core/games/chess/chess.ts:5:15)
    at async instantiateModule (file:///home/ramendev/projects/just-games/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

Internal server error: __vite_ssr_import_0__.GameMetadata is not a constructor
      at eval (/home/ramendev/projects/just-games/src/lib/core/games/chess/chess.ts:5:15)
      at async instantiateModule (file:///home/ramendev/projects/just-games/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)
TypeError: __vite_ssr_import_0__.GameMetadata is not a constructor
    at eval (/home/ramendev/projects/just-games/src/lib/core/games/chess/chess.ts:5:15)
    at async instantiateModule (file:///home/ramendev/projects/just-games/node_modules/vite/dist/node/chunks/dep-df561101.js:55974:9)

The class in question is defined as follows:
src/lib/core/games.ts
export class GameMetadata {
	name: string;
	aka: string;
	description: string;
	jpName: string;

	constructor(name: string, aka: string, description: string, jpName: string) {
		this.name = name;
		this.aka = aka;
		this.description = description;
		this.jpName = jpName;
	}

src/lib/core/games/chess/chess.ts
import { GameMetadata } from "../../game";

export const chess = new GameMetadata(
	"chess",
	'...',
	"...",
	"西洋将棋"
);

Reproduction
https://github.com/developer-ramen/just-games
Steps to reproduce
Clone the repo, followed by npm install and npm run dev
System Info
System:
    OS: Linux 5.15 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
    CPU: (8) x64 Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
    Memory: 5.39 GB / 7.67 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 18.17.0 - /usr/local/bin/node
    npm: 9.6.7 - /usr/local/bin/npm
  npmPackages:
    vite: ^4.4.2 => 4.4.9

Used Package Manager
npm
Logs

Logs from runnning `vite-build-debug`
```shell
  vite:config bundled config file loaded in 675.06ms +0ms
  vite:vite-plugin-svelte adding bare svelte packages to optimizeDeps.include: svelte/animate, svelte/easing, svelte/internal, svelte/motion, svelte/store, svelte/transition, svelte, svelte/internal/disclose-version  +0ms
  vite:vite-plugin-svelte extra config for dependencies generated by vitefu {
  optimizeDeps: { include: [], exclude: [] },
  ssr: { noExternal: [], external: [] }
} +5ms
  vite:vite-plugin-svelte post-processed extra config for dependencies {
  optimizeDeps: { include: [], exclude: [] },
  ssr: { noExternal: [], external: [] }
} +1ms
  vite:vite-plugin-svelte enabling "experimental.hmrPartialAccept" in vite config +1ms
  vite:vite-plugin-svelte additional vite config {
  resolve: {
    dedupe: [
      'svelte/animate',
      'svelte/easing',
      'svelte/internal',
      'svelte/motion',
      'svelte/ssr',
      'svelte/store',
      'svelte/transition',
      'svelte',
      'svelte/internal/disclose-version',
      'svelte-hmr/runtime/hot-api-esm.js',
      'svelte-hmr/runtime/proxy-adapter-dom.js',
      'svelte-hmr'
    ],
    conditions: [ 'svelte' ]
  },
  optimizeDeps: {
    include: [
      'svelte/animate',
      'svelte/easing',
      'svelte/internal',
      'svelte/motion',
      'svelte/store',
      'svelte/transition',
      'svelte',
      'svelte/internal/disclose-version'
    ],
    exclude: [ 'svelte-hmr' ]
  },
  ssr: { external: [], noExternal: [ 'svelte', /^svelte\// ] },
  experimental: { hmrPartialAccept: true }
} +0ms
  vite:vite-plugin-svelte resolved options {
  hot: false,
  compilerOptions: { css: 'external', dev: false, hydratable: true },
  extensions: [ '.svelte' ],
  emitCss: true,
  prebundleSvelteLibraries: false,
  configFile: false,
  preprocess: [
    {
      markup: [AsyncFunction: markup],
      script: [AsyncFunction: script],
      style: [AsyncFunction: style]
    },
    { script: [Function: script], markup: [Function: markup] }
  ],
  onwarn: undefined,
  root: '/home/ramendev/projects/just-games',
  isBuild: true,
  isServe: false,
  isDebug: true,
  isProduction: true,
  stats: VitePluginSvelteStats {}
} +53ms
vite:config using resolved config: {
vite:config   plugins: [
vite:config     'vite:optimized-deps-build',
vite:config     'vite:build-metadata',
vite:config     'vite:watch-package-data',
vite:config     'vite:pre-alias',
vite:config     'alias',
vite:config     'vite-plugin-svelte',
vite:config     'vite:modulepreload-polyfill',
vite:config     'vite:resolve',
vite:config     'vite:html-inline-proxy',
vite:config     'vite:css',
vite:config     'vite:esbuild',
vite:config     'vite:json',
vite:config     'vite:wasm-helper',
vite:config     'vite:worker',
vite:config     'vite:asset',
vite:config     'vite-plugin-sveltekit-setup',
vite:config     'vite-plugin-sveltekit-virtual-modules',
vite:config     'vite-plugin-sveltekit-guard',
vite:config     'vite-plugin-sveltekit-compile',
vite:config     'vite:wasm-fallback',
vite:config     'vite:define',
vite:config     'vite:css-post',
vite:config     'vite:build-html',
vite:config     'vite:worker-import-meta-url',
vite:config     'vite:asset-import-meta-url',
vite:config     'vite:force-systemjs-wrap-complete',
vite:config     'commonjs',
vite:config     'vite:data-uri',
vite:config     'vite:dynamic-import-vars',
vite:config     'vite:import-glob',
vite:config     'vite:build-import-analysis',
vite:config     'vite:esbuild-transpile',
vite:config     'vite:manifest',
vite:config     'vite:reporter',
vite:config     'vite:load-fallback'
vite:config   ],
vite:config   test: { include: [ 'src/**/*.{test,spec}.{js,ts}' ] },
vite:config   optimizeDeps: {
vite:config     disabled: false,
vite:config     include: [
vite:config       'svelte/animate',
vite:config       'svelte/easing',
vite:config       'svelte/internal',
vite:config       'svelte/motion',
vite:config       'svelte/store',
vite:config       'svelte/transition',
vite:config       'svelte',
vite:config       'svelte/internal/disclose-version'
vite:config     ],
vite:config     exclude: [ 'svelte-hmr', '@sveltejs/kit', '$app', '$env' ],
vite:config     esbuildOptions: { preserveSymlinks: false }
vite:config   },
vite:config   build: {
vite:config     target: 'node16.14',
vite:config     cssTarget: 'node16.14',
vite:config     outDir: '/home/ramendev/projects/just-games/.svelte-kit/output/server',
vite:config     assetsDir: 'assets',
vite:config     assetsInlineLimit: 4096,
vite:config     cssCodeSplit: true,
vite:config     sourcemap: false,
vite:config     rollupOptions: {
vite:config       input: [Object],
vite:config       output: [Object],
vite:config       preserveEntrySignatures: 'strict'
vite:config     },
vite:config     minify: false,
vite:config     terserOptions: {},
vite:config     write: true,
vite:config     emptyOutDir: null,
vite:config     copyPublicDir: false,
vite:config     manifest: 'vite-manifest.json',
vite:config     lib: false,
vite:config     ssr: true,
vite:config     ssrManifest: false,
vite:config     ssrEmitAssets: true,
vite:config     reportCompressedSize: true,
vite:config     chunkSizeWarningLimit: 500,
vite:config     watch: null,
vite:config     cssMinify: true,
vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },
vite:config     modulePreload: { polyfill: true }
vite:config   },
vite:config   resolve: {
vite:config     mainFields: [ 'svelte', 'module', 'jsnext:main', 'jsnext' ],
vite:config     browserField: true,
vite:config     conditions: [ 'svelte' ],
vite:config     extensions: [
vite:config       '.mjs',  '.js',
vite:config       '.mts',  '.ts',
vite:config       '.jsx',  '.tsx',
vite:config       '.json'
vite:config     ],
vite:config     dedupe: [
vite:config       'svelte/animate',
vite:config       'svelte/easing',
vite:config       'svelte/internal',
vite:config       'svelte/motion',
vite:config       'svelte/ssr',
vite:config       'svelte/store',
vite:config       'svelte/transition',
vite:config       'svelte',
vite:config       'svelte/internal/disclose-version',
vite:config       'svelte-hmr/runtime/hot-api-esm.js',
vite:config       'svelte-hmr/runtime/proxy-adapter-dom.js',
vite:config       'svelte-hmr'
vite:config     ],
vite:config     preserveSymlinks: false,
vite:config     alias: [ [Object], [Object], [Object], [Object], [Object] ]
vite:config   },
vite:config   ssr: {
vite:config     format: 'esm',
vite:config     target: 'node',
vite:config     external: [],
vite:config     noExternal: [ 'svelte', /^svelte//, 'esm-env', '@sveltejs/kit' ],
vite:config     optimizeDeps: { disabled: true, esbuildOptions: [Object] }
vite:config   },
vite:config   experimental: { importGlobRestoreExtension: false, hmrPartialAccept: true },
vite:config   root: '/home/ramendev/projects/just-games',
vite:config   server: {
vite:config     preTransformRequests: true,
vite:config     cors: { preflightContinue: true },
vite:config     fs: { strict: true, allow: [Array], deny: [Array] },
vite:config     sourcemapIgnoreList: [Function: sourcemapIgnoreList],
vite:config     watch: { ignored: [Array] },
vite:config     middlewareMode: false
vite:config   },
vite:config   preview: {
vite:config     port: undefined,
vite:config     strictPort: undefined,
vite:config     host: undefined,
vite:config     https: undefined,
vite:config     open: undefined,
vite:config     proxy: undefined,
vite:config     cors: { preflightContinue: true },
vite:config     headers: undefined
vite:config   },
vite:config   define: {
vite:config     SVELTEKIT_ADAPTER_NAME: '"@sveltejs/adapter-netlify"',
vite:config     SVELTEKIT_APP_VERSION_FILE: '"app/version.json"',
vite:config     SVELTEKIT_APP_VERSION_POLL_INTERVAL: '0',
vite:config     SVELTEKIT_DEV: 'false',
vite:config     SVELTEKIT_EMBEDDED: 'false'
vite:config   },
vite:config   base: '/',
vite:config   publicDir: '/home/ramendev/projects/just-games/static',
vite:config   worker: {
vite:config     format: 'iife',
vite:config     plugins: [
vite:config       'vite:optimized-deps-build',
vite:config       'vite:build-metadata',
vite:config       'vite:watch-package-data',
vite:config       'vite:pre-alias',
vite:config       'alias',
vite:config       'vite:modulepreload-polyfill',
vite:config       'vite:resolve',
vite:config       'vite:html-inline-proxy',
vite:config       'vite:css',
vite:config       'vite:esbuild',
vite:config       'vite:json',
vite:config       'vite:wasm-helper',
vite:config       'vite:worker',
vite:config       'vite:asset',
vite:config       'vite:wasm-fallback',
vite:config       'vite:define',
vite:config       'vite:css-post',
vite:config       'vite:build-html',
vite:config       'vite:worker-import-meta-url',
vite:config       'vite:asset-import-meta-url',
vite:config       'vite:force-systemjs-wrap-complete',
vite:config       'commonjs',
vite:config       'vite:data-uri',
vite:config       'vite:worker-post',
vite:config       'vite:dynamic-import-vars',
vite:config       'vite:import-glob',
vite:config       'vite:build-import-analysis',
vite:config       'vite:esbuild-transpile',
vite:config       'vite:load-fallback'
vite:config     ],
vite:config     rollupOptions: { output: [Object] },
vite:config     getSortedPlugins: [Function: getSortedPlugins],
vite:config     getSortedPluginHooks: [Function: getSortedPluginHooks]
vite:config   },
vite:config   configFile: '/home/ramendev/projects/just-games/vite.config.ts',
vite:config   configFileDependencies: [ '/home/ramendev/projects/just-games/vite.config.ts' ],
vite:config   inlineConfig: {
vite:config     root: undefined,
vite:config     base: undefined,
vite:config     mode: undefined,
vite:config     configFile: undefined,
vite:config     logLevel: undefined,
vite:config     clearScreen: undefined,
vite:config     optimizeDeps: { force: undefined },
vite:config     build: {}
vite:config   },
vite:config   rawBase: '/',
vite:config   cacheDir: '/home/ramendev/projects/just-games/node_modules/.vite',
vite:config   command: 'build',
vite:config   mode: 'production',
vite:config   isWorker: false,
vite:config   mainConfig: null,
vite:config   isProduction: true,
vite:config   css: undefined,
vite:config   esbuild: { jsxDev: false },
vite:config   envDir: '/home/ramendev/projects/just-games',
vite:config   env: { BASE_URL: '/', MODE: 'production', DEV: false, PROD: true },
vite:config   assetsInclude: [Function: assetsInclude],
vite:config   logger: {
vite:config     hasWarned: true,
vite:config     info: [Function: info],
vite:config     warn: [Function: warn],
vite:config     warnOnce: [Function: warnOnce],
vite:config     error: [Function: error],
vite:config     clearScreen: [Function: clearScreen],
vite:config     hasErrorLogged: [Function: hasErrorLogged]
vite:config   },
vite:config   packageCache: Map(1) {
vite:config     'fnpd/home/ramendev/projects/just-games' => {
vite:config       dir: '/home/ramendev/projects/just-games',
vite:config       data: [Object],
vite:config       hasSideEffects: [Function: hasSideEffects],
vite:config       webResolvedImports: {},
vite:config       nodeResolvedImports: {},
vite:config       setResolvedCache: [Function: setResolvedCache],
vite:config       getResolvedCache: [Function: getResolvedCache]
vite:config     },
vite:config     set: [Function (anonymous)]
vite:config   },
vite:config   createResolver: [Function: createResolver],
vite:config   appType: 'spa',
vite:config   getSortedPlugins: [Function: getSortedPlugins],
vite:config   getSortedPluginHooks: [Function: getSortedPluginHooks]
vite:config } +77ms
vite v4.4.9 building SSR bundle for production...
transforming (1) node_modules/@sveltejs/kit/src/runtime/server/index.js  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+layout.svelte +122ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+error.svelte +280ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/routes/+error.svelte?svelte&type=style&lang.css +6ms
vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/routes/+error.svelte +1ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+page.svelte +21ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/games/+page.svelte +12ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/login/+page.svelte +23ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/signup/+page.svelte +10ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/resources/+page.svelte +31ms
transforming (11) src/routes/resources/+page.svelte  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/about/+page.svelte +8ms
vite:esbuild 537.78ms tsconfck init /home/ramendev/projects/just-games +0ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/NavBar.svelte +130ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/lib/components/NavBar.svelte?svelte&type=style&lang.css +8ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/Footer.svelte +31ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/lib/components/Footer.svelte?svelte&type=style&lang.css +3ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/.svelte-kit/generated/root.svelte +70ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/home/GamePageButton.svelte +75ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/GamesCarousel.svelte +52ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/lib/components/games/GamesCarousel.svelte?svelte&type=style&lang.css +5ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/home/HomeBanner.svelte +11ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/GamesContent.svelte +24ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/WipBanner.svelte +20ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/lib/components/WipBanner.svelte?svelte&type=style&lang.css +5ms
transforming (26) node_modules/@sveltejs/kit/src/runtime/server/endpoint.js  vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/lib/components/NavBar.svelte +188ms
vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/lib/components/Footer.svelte +5ms
vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/lib/components/games/GamesCarousel.svelte +33ms
transforming (45) node_modules/svelte/src/runtime/internal/dom.js  vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/lib/components/WipBanner.svelte +109ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/NameLabel.svelte +168ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/NavButton.svelte +45ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/CarouselGameItem.svelte +28ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/GameCarouselHelpText.svelte +28ms
vite:vite-plugin-svelte resolveId resolved virtual css module /home/ramendev/projects/just-games/src/lib/components/games/GameCarouselHelpText.svelte?svelte&type=style&lang.css +1ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/GoogleImitationTitle.svelte +378ms
transforming (65) src/lib/components/games/search/GoogleImitationTitle.svelte  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/GoogleBannerImitation.svelte +30ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/SearchSection.svelte +25ms
vite:vite-plugin-svelte load returns css for /home/ramendev/projects/just-games/src/lib/components/games/GameCarouselHelpText.svelte +3ms
transforming (83) node_modules/svelte/src/shared/utils/names.js  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/SearchBar.svelte +434ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/SearchResults.svelte +41ms
transforming (100) src/lib/core/game.ts  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/lib/components/games/search/SearchResult.svelte +190ms
"slice" is imported from external module "lodash" but never used in "src/lib/components/games/search/GoogleBannerImitation.svelte", "src/lib/core/game.ts", "src/lib/components/games/GamesCarousel.svelte" and "src/routes/+error.svelte".
✓ 109 modules transformed.
vite:vite-plugin-svelte:stats ssr compile done.
vite:vite-plugin-svelte:stats package         files    time      avg
vite:vite-plugin-svelte:stats svelte-games       26   0.36s   13.7ms +0ms
vite:config bundled config file loaded in 17.58ms +3s
vite:vite-plugin-svelte adding bare svelte packages to optimizeDeps.include: svelte/animate, svelte/easing, svelte/internal, svelte/motion, svelte/store, svelte/transition, svelte, svelte/internal/disclose-version  +534ms
vite:vite-plugin-svelte extra config for dependencies generated by vitefu {
optimizeDeps: { include: [], exclude: [] },
ssr: { noExternal: [], external: [] }
} +3ms
vite:vite-plugin-svelte post-processed extra config for dependencies {
optimizeDeps: { include: [], exclude: [] },
ssr: { noExternal: [], external: [] }
} +1ms
vite:vite-plugin-svelte enabling "experimental.hmrPartialAccept" in vite config +0ms
vite:vite-plugin-svelte additional vite config {
resolve: {
dedupe: [
'svelte/animate',
'svelte/easing',
'svelte/internal',
'svelte/motion',
'svelte/ssr',
'svelte/store',
'svelte/transition',
'svelte',
'svelte/internal/disclose-version',
'svelte-hmr/runtime/hot-api-esm.js',
'svelte-hmr/runtime/proxy-adapter-dom.js',
'svelte-hmr'
],
conditions: [ 'svelte' ]
},
optimizeDeps: {
include: [
'svelte/animate',
'svelte/easing',
'svelte/internal',
'svelte/motion',
'svelte/store',
'svelte/transition',
'svelte',
'svelte/internal/disclose-version'
],
exclude: [ 'svelte-hmr' ]
},
ssr: { external: [], noExternal: [ 'svelte', /^svelte// ] },
experimental: { hmrPartialAccept: true }
} +0ms
vite:vite-plugin-svelte resolved options {
hot: false,
compilerOptions: { css: 'external', dev: false, hydratable: true },
extensions: [ '.svelte' ],
emitCss: true,
prebundleSvelteLibraries: false,
configFile: false,
preprocess: [
{
markup: [AsyncFunction: markup],
script: [AsyncFunction: script],
style: [AsyncFunction: style]
},
{ script: [Function: script], markup: [Function: markup] }
],
onwarn: undefined,
root: '/home/ramendev/projects/just-games',
isBuild: true,
isServe: false,
isDebug: true,
isProduction: true,
stats: VitePluginSvelteStats {}
} +6ms
vite:config using resolved config: {
vite:config   plugins: [
vite:config     'vite:optimized-deps-build',
vite:config     'vite:build-metadata',
vite:config     'vite:watch-package-data',
vite:config     'vite:pre-alias',
vite:config     'alias',
vite:config     'vite-plugin-svelte',
vite:config     'vite:modulepreload-polyfill',
vite:config     'vite:resolve',
vite:config     'vite:html-inline-proxy',
vite:config     'vite:css',
vite:config     'vite:esbuild',
vite:config     'vite:json',
vite:config     'vite:wasm-helper',
vite:config     'vite:worker',
vite:config     'vite:asset',
vite:config     'vite-plugin-sveltekit-setup',
vite:config     'vite-plugin-sveltekit-virtual-modules',
vite:config     'vite-plugin-sveltekit-guard',
vite:config     'vite-plugin-sveltekit-compile',
vite:config     'vite:wasm-fallback',
vite:config     'vite:define',
vite:config     'vite:css-post',
vite:config     'vite:build-html',
vite:config     'vite:worker-import-meta-url',
vite:config     'vite:asset-import-meta-url',
vite:config     'vite:force-systemjs-wrap-complete',
vite:config     'commonjs',
vite:config     'vite:data-uri',
vite:config     'vite:dynamic-import-vars',
vite:config     'vite:import-glob',
vite:config     'vite:build-import-analysis',
vite:config     'vite:esbuild-transpile',
vite:config     'vite:terser',
vite:config     'vite:manifest',
vite:config     'vite:reporter',
vite:config     'vite:load-fallback'
vite:config   ],
vite:config   test: { include: [ 'src/**/*.{test,spec}.{js,ts}' ] },
vite:config   optimizeDeps: {
vite:config     disabled: false,
vite:config     include: [
vite:config       'svelte/animate',
vite:config       'svelte/easing',
vite:config       'svelte/internal',
vite:config       'svelte/motion',
vite:config       'svelte/store',
vite:config       'svelte/transition',
vite:config       'svelte',
vite:config       'svelte/internal/disclose-version'
vite:config     ],
vite:config     exclude: [ 'svelte-hmr', '@sveltejs/kit', '$app', '$env' ],
vite:config     esbuildOptions: { preserveSymlinks: false }
vite:config   },
vite:config   configFile: '/home/ramendev/projects/just-games/vite.config.ts',
vite:config   mode: 'production',
vite:config   build: {
vite:config     target: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],
vite:config     cssTarget: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],
vite:config     outDir: '/home/ramendev/projects/just-games/.svelte-kit/output/client',
vite:config     assetsDir: 'assets',
vite:config     assetsInlineLimit: 4096,
vite:config     cssCodeSplit: true,
vite:config     sourcemap: false,
vite:config     rollupOptions: {
vite:config       input: [Object],
vite:config       output: [Object],
vite:config       preserveEntrySignatures: 'strict'
vite:config     },
vite:config     minify: 'esbuild',
vite:config     terserOptions: {},
vite:config     write: true,
vite:config     emptyOutDir: null,
vite:config     copyPublicDir: true,
vite:config     manifest: 'vite-manifest.json',
vite:config     lib: false,
vite:config     ssr: false,
vite:config     ssrManifest: false,
vite:config     ssrEmitAssets: true,
vite:config     reportCompressedSize: true,
vite:config     chunkSizeWarningLimit: 500,
vite:config     watch: null,
vite:config     cssMinify: true,
vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },
vite:config     modulePreload: { polyfill: true }
vite:config   },
vite:config   resolve: {
vite:config     mainFields: [ 'svelte', 'module', 'jsnext:main', 'jsnext' ],
vite:config     browserField: true,
vite:config     conditions: [ 'svelte' ],
vite:config     extensions: [
vite:config       '.mjs',  '.js',
vite:config       '.mts',  '.ts',
vite:config       '.jsx',  '.tsx',
vite:config       '.json'
vite:config     ],
vite:config     dedupe: [
vite:config       'svelte/animate',
vite:config       'svelte/easing',
vite:config       'svelte/internal',
vite:config       'svelte/motion',
vite:config       'svelte/ssr',
vite:config       'svelte/store',
vite:config       'svelte/transition',
vite:config       'svelte',
vite:config       'svelte/internal/disclose-version',
vite:config       'svelte-hmr/runtime/hot-api-esm.js',
vite:config       'svelte-hmr/runtime/proxy-adapter-dom.js',
vite:config       'svelte-hmr'
vite:config     ],
vite:config     preserveSymlinks: false,
vite:config     alias: [ [Object], [Object], [Object], [Object], [Object] ]
vite:config   },
vite:config   ssr: {
vite:config     format: 'esm',
vite:config     target: 'node',
vite:config     external: [],
vite:config     noExternal: [ 'svelte', /^svelte//, 'esm-env', '@sveltejs/kit' ],
vite:config     optimizeDeps: { disabled: true, esbuildOptions: [Object] }
vite:config   },
vite:config   experimental: { importGlobRestoreExtension: false, hmrPartialAccept: true },
vite:config   root: '/home/ramendev/projects/just-games',
vite:config   server: {
vite:config     preTransformRequests: true,
vite:config     cors: { preflightContinue: true },
vite:config     fs: { strict: true, allow: [Array], deny: [Array] },
vite:config     sourcemapIgnoreList: [Function: sourcemapIgnoreList],
vite:config     watch: { ignored: [Array] },
vite:config     middlewareMode: false
vite:config   },
vite:config   preview: {
vite:config     port: undefined,
vite:config     strictPort: undefined,
vite:config     host: undefined,
vite:config     https: undefined,
vite:config     open: undefined,
vite:config     proxy: undefined,
vite:config     cors: { preflightContinue: true },
vite:config     headers: undefined
vite:config   },
vite:config   define: {
vite:config     SVELTEKIT_ADAPTER_NAME: '"@sveltejs/adapter-netlify"',
vite:config     SVELTEKIT_APP_VERSION_FILE: '"app/version.json"',
vite:config     SVELTEKIT_APP_VERSION_POLL_INTERVAL: '0',
vite:config     SVELTEKIT_DEV: 'false',
vite:config     SVELTEKIT_EMBEDDED: 'false'
vite:config   },
vite:config   base: './',
vite:config   publicDir: '/home/ramendev/projects/just-games/static',
vite:config   worker: {
vite:config     format: 'iife',
vite:config     plugins: [
vite:config       'vite:optimized-deps-build',
vite:config       'vite:build-metadata',
vite:config       'vite:watch-package-data',
vite:config       'vite:pre-alias',
vite:config       'alias',
vite:config       'vite:modulepreload-polyfill',
vite:config       'vite:resolve',
vite:config       'vite:html-inline-proxy',
vite:config       'vite:css',
vite:config       'vite:esbuild',
vite:config       'vite:json',
vite:config       'vite:wasm-helper',
vite:config       'vite:worker',
vite:config       'vite:asset',
vite:config       'vite:wasm-fallback',
vite:config       'vite:define',
vite:config       'vite:css-post',
vite:config       'vite:build-html',
vite:config       'vite:worker-import-meta-url',
vite:config       'vite:asset-import-meta-url',
vite:config       'vite:force-systemjs-wrap-complete',
vite:config       'commonjs',
vite:config       'vite:data-uri',
vite:config       'vite:worker-post',
vite:config       'vite:dynamic-import-vars',
vite:config       'vite:import-glob',
vite:config       'vite:build-import-analysis',
vite:config       'vite:esbuild-transpile',
vite:config       'vite:terser',
vite:config       'vite:load-fallback'
vite:config     ],
vite:config     rollupOptions: { output: [Object] },
vite:config     getSortedPlugins: [Function: getSortedPlugins],
vite:config     getSortedPluginHooks: [Function: getSortedPluginHooks]
vite:config   },
vite:config   configFileDependencies: [ '/home/ramendev/projects/just-games/vite.config.ts' ],
vite:config   inlineConfig: {
vite:config     configFile: '/home/ramendev/projects/just-games/vite.config.ts',
vite:config     mode: 'production',
vite:config     logLevel: undefined,
vite:config     clearScreen: undefined,
vite:config     build: { minify: undefined, assetsInlineLimit: 4096, sourcemap: false },
vite:config     optimizeDeps: { force: undefined }
vite:config   },
vite:config   rawBase: './',
vite:config   cacheDir: '/home/ramendev/projects/just-games/node_modules/.vite',
vite:config   command: 'build',
vite:config   isWorker: false,
vite:config   mainConfig: null,
vite:config   isProduction: true,
vite:config   css: undefined,
vite:config   esbuild: { jsxDev: false },
vite:config   envDir: '/home/ramendev/projects/just-games',
vite:config   env: { BASE_URL: './', MODE: 'production', DEV: false, PROD: true },
vite:config   assetsInclude: [Function: assetsInclude],
vite:config   logger: {
vite:config     hasWarned: true,
vite:config     info: [Function: info],
vite:config     warn: [Function: warn],
vite:config     warnOnce: [Function: warnOnce],
vite:config     error: [Function: error],
vite:config     clearScreen: [Function: clearScreen],
vite:config     hasErrorLogged: [Function: hasErrorLogged]
vite:config   },
vite:config   packageCache: Map(1) {
vite:config     'fnpd/home/ramendev/projects/just-games' => {
vite:config       dir: '/home/ramendev/projects/just-games',
vite:config       data: [Object],
vite:config       hasSideEffects: [Function: hasSideEffects],
vite:config       webResolvedImports: {},
vite:config       nodeResolvedImports: {},
vite:config       setResolvedCache: [Function: setResolvedCache],
vite:config       getResolvedCache: [Function: getResolvedCache]
vite:config     },
vite:config     set: [Function (anonymous)]
vite:config   },
vite:config   createResolver: [Function: createResolver],
vite:config   appType: 'spa',
vite:config   getSortedPlugins: [Function: getSortedPlugins],
vite:config   getSortedPluginHooks: [Function: getSortedPluginHooks]
vite:config } +14ms
vite v4.4.9 building for production...
vite:resolve 5.27ms svelte/animate -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/animate/index.js +0ms
vite:resolve 0.29ms svelte/easing -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/easing/index.js +0ms
vite:resolve 0.19ms svelte/internal -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/internal/index.js +1ms
vite:resolve 0.18ms svelte/motion -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/motion/index.js +0ms
vite:resolve 0.17ms svelte/store -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/store/index.js +1ms
vite:resolve 0.21ms svelte/transition -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/transition/index.js +0ms
vite:resolve 0.21ms svelte -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/index.js +0ms
vite:resolve 0.24ms svelte/internal/disclose-version -> /home/ramendev/projects/just-games/node_modules/svelte/src/runtime/internal/disclose-version/index.js +1ms
transforming (1) .svelte-kit/generated/client-optimized/app.js  vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/.svelte-kit/generated/root.svelte +236ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+layout.svelte +23ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+error.svelte +59ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/+page.svelte +18ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/about/+page.svelte +8ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/games/+page.svelte +12ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/login/+page.svelte +13ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/resources/+page.svelte +12ms
vite:vite-plugin-svelte transform returns compiled js for /home/ramendev/projects/just-games/src/routes/signup/+page.svelte +9ms
transforming (12) node_modules/esm-env/prod-browser.jsUnexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(commonjs--resolver) resolveId "/home/ramendev/projects/just-games/node_modules/@sveltejs/kit/src/runtime/client/start.js" undefined
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/node_modules/@sveltejs/kit/src/runtime/client/start.js"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/.svelte-kit/generated/root.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/.svelte-kit/generated/root.svelte"
(vite:optimized-deps-build) load "/home/ramendev/projects/just-games/node_modules/.vite/deps_build-e2ef5bc8/svelte_internal.js"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/+layout.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/+layout.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/+error.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/+error.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/+page.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/about/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/about/+page.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/games/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/games/+page.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/login/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/login/+page.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/resources/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/resources/+page.svelte"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/src/routes/signup/+page.svelte"
(commonjs--resolver) resolveId "svelte/internal" "/home/ramendev/projects/just-games/src/routes/signup/+page.svelte"
(commonjs--resolver) resolveId "./client.js" "/home/ramendev/projects/just-games/node_modules/@sveltejs/kit/src/runtime/client/start.js"
(vite:build-import-analysis) transform "/home/ramendev/projects/just-games/node_modules/@sveltejs/kit/src/runtime/client/client.js"
(commonjs--resolver) resolveId "svelte" "/home/ramendev/projects/just-games/node_modules/@sveltejs/kit/src/runtime/client/client.js"
(vite:optimized-deps-build) load "/home/ramendev/projects/just-games/node_modules/.vite/deps_build-e2ef5bc8/svelte.js"
Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(vite-plugin-sveltekit-compile) writeBundle
✓ built in 3.72s
error during build:
Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(vite-plugin-sveltekit-compile) writeBundle
at process.handleBeforeExit (file:///home/ramendev/projects/just-games/node_modules/rollup/dist/es/shared/node-entry.js:25714:28)
at Object.onceWrapper (node:events:629:26)
at process.emit (node:events:514:28)
</details>

### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitejs.dev/guide).
- [X] Check that there isn't [already an issue](https://github.com/vitejs/vite/issues) that reports the same bug to avoid creating a duplicate.
- [X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to [vuejs/core](https://github.com/vuejs/core) instead.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/vite/discussions) or join our [Discord Chat Server](https://chat.vitejs.dev/).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

Your code includes a circular dependency. So it's correct that it doesn't work.
https://stackblitz.com/edit/node-fkfv2m?file=game.js,chess.js,index.js
I think it'd be nice to have a better error message though. (like Node: Error: Cannot access 'GameMetadata' before initialization)

Thanks for spotting the issue! Resolving the circular dependency worked.
Should I close this thread?

New error (probably related to the code) and not Vite directly:
Only happens during vite build and not vite dev:
transforming (12) node_modules/esm-env/prod-browser.js Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:

*log lines from loading svelte/internal files*

Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(vite-plugin-sveltekit-compile) writeBundle
✓ built in 2.84s
error during build:
Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(vite-plugin-sveltekit-compile) writeBundle
    at process.handleBeforeExit (file:///home/ramendev/projects/just-games/node_modules/rollup/dist/es/shared/node-entry.js:25777:28)
    at Object.onceWrapper (node:events:629:26)
    at process.emit (node:events:514:28)

prod.browser.js just toggled DEV to false and BROWSER to true:
export const BROWSER = true;
export const DEV = false;

That's completely a different thing and should be in a different issue. Also we'll need a minimal reproduction for that.

@sapphi-red it looks like the circular dependency should not error.
https://github.com/vitejs/vite/blob/8b174fdcc798092c5002d586e4f25cb2a6f8768a/playground/ssr/__tests__/ssr.spec.ts#L7
Do you have any clue why this particular case throws error?
I would like to work on this issue.
However, I am not sure if I should detect the particular case then throw new error, or just change the error message at the instantiateModule level.

@chaejunlee I was trying to reproduce the error for a different issue: StackBlitz
Just wanted to put it out there. I tried to make the example as minimal as possible.

As far as I can see, ssrImport is used as __vite_ssr_import__(source) during ssr.
https://github.com/vitejs/vite/blob/6cb397fd2de29a57ba67962b7865ff310aed4d70/packages/vite/src/node/ssr/ssrModuleLoader.ts#L145
https://github.com/vitejs/vite/blob/6cb397fd2de29a57ba67962b7865ff310aed4d70/packages/vite/src/node/ssr/ssrTransform.ts#L108
In the case of this issue, source has a circular dependency. Then, ssrImport returns moduleGraph.urlToModuleMap.get(dep)?.ssrModule which is {} in this case.
https://github.com/vitejs/vite/blob/6cb397fd2de29a57ba67962b7865ff310aed4d70/packages/vite/src/node/ssr/ssrModuleLoader.ts#L152-L172
That is why the error says __vite_ssr_import_0__.GameMetadata is not a constructor. Object __vite_ssr_import_0__ is empty.

What I am currently trying to do is throwing error at the ssrImport level, but this doesn't look good. Because, It throws the error every time the circular dependency (in this case, src/lib/core/game.ts) with empty moduleGraph.urlToModuleMap.get(dep)?.ssrModule is imported in the original javscript file.
Because this is problem of ssrImport's handling of circular dependency, I can't think of any better solution.
I would like to hear other's thought on this.

@sapphi-red it looks like the circular dependency should not error.
https://github.com/vitejs/vite/blob/8b174fdcc798092c5002d586e4f25cb2a6f8768a/playground/ssr/__tests__/ssr.spec.ts#L7
Do you have any clue why this particular case throws error?

The test case one doesn't throw any errors on Node: https://stackblitz.com/edit/node-qgbmvq?file=index.js,circular-dep-init.js,module-b.js
I don't know why it doesn't throw in this case and it throws in the OP's case. But I guess it's written in the ECMA script spec.
Maybe this part is related: https://262.ecma-international.org/14.0/#sec-example-cyclic-module-record-graphs

Because this is a problem of the nature of ssrImport handles circular dependency, I can't think of any better solution.

I guess splitting into two phases would work. Collecting the exports / linking in the first phase and executing in the second phase. Though I haven't thought this deeply yet.

I guess splitting into two phases would work. Collecting the exports / linking in the first phase and executing in the second phase. Though I haven't thought this deeply yet.

Would be nice to implement this when porting vite-node (I'm planning to resume the efforts soon). I noticed how it's implemented in VM module and quite liked the performance implications there. If you are looking to implement it, I would look into their implementation even though VM API is not perfect for memory management and HMR.

I'm getting these issues with so many modules. In SSR, the module is treated as an object, but in client-side it works

Here's minimal reproduction case without any 3rd party dependencies: https://stackblitz.com/~/edit/vite-cyclic-imports-vs-node?file=load-with-vite.mjs&file=load-with-node.mjs

$ node ./load-with-vite.mjs

10:36:04 [vite] Error when evaluating SSR module /ion-js/dom/Blob.js:
|- TypeError: Cannot read properties of undefined (reading 'BLOB')
    at eval (/home/projects/vite-cyclic-imports-vs-node/ion-js/dom/Blob.js:5:45)
    at async instantiateModule (file:///home/projects/vite-cyclic-imports-vs-node/node_modules/vite/dist/node/chunks/dep-DyBnyoVI.js:52963:5)

Loading the same setup with Node without Vite works fine:

$ node ./load-with-node.mjs

[Module: null prototype] {
  IonTypes: { BLOB: 'Blob' },
  dom: [Module: null prototype] { Blob: 'Blob' }
}

authors: AlbertMarashi AriPerkkio chaejunlee developer-ramen sapphi-red sheremet-va

repo: vitejs/vite


text:
Issues with pre transform step

Describe the bug
Vite breaks when trying to run the pre-transform step on the following code:
const brokenFunction = () => ({
	foo: 'bar',
}) as { foo: 'bar' }

This throws the following error
Plugin: vite:esbuild

  Expected ";" but found "as"
  4  |  const brokenFunction = () => {
  5  |    foo: 'bar'
  6  |  } as {foo: 'bar';};
     |    ^
  7  |
  8  |  const Broken = () => {

From the error log, it seems that at some point, the parentheses wrapping the object have been removed, which causes the broken syntax.
I have tested this on the vanilla-ts and react-ts templates, but it's only broken in the react-ts template, i don't know about any other framework.
Reproduction
https://stackblitz.com/edit/vitejs-vite-fdiygv
Steps to reproduce
No response
System Info
System:
    OS: Windows 11 10.0.22631
    CPU: (20) x64 12th Gen Intel(R) Core(TM) i7-12700H
    Memory: 1.93 GB / 15.68 GB
  Binaries:
    Node: 20.11.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.2.4 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Chromium (126.0.2592.102)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    @vitejs/plugin-react: 4.2.0 => 4.2.0
    vite: 5.0.0 => 5.0.0

Used Package Manager
npm
Logs

Full error log!
11.15.08 [vite] Internal server error: Transform failed with 1 error:
C:/Users/name/project/src/main.tsx:6:2: ERROR: Expected ";" but found "as"
  Plugin: vite:esbuild
  File: C:/Users/name/project/src/main.tsx:6:1

  Expected ";" but found "as"
  4  |  const brokenFunction = () => {
  5  |    foo: 'bar'
  6  |  } as {foo: 'bar';};
     |    ^
  7  |
  8  |  const Broken = () => {

      at failureErrorWithLog (C:\Users\name\project\node_modules\esbuild\lib\main.js:1651:15)
      at C:\Users\name\project\node_modules\esbuild\lib\main.js:849:29
      at responseCallbacks.<computed> (C:\Users\name\project\node_modules\esbuild\lib\main.js:704:9)
      at handleIncomingPacket (C:\Users\name\project\node_modules\esbuild\lib\main.js:764:9)
      at Socket.readFromStdout (C:\Users\name\project\node_modules\esbuild\lib\main.js:680:7)
      at Socket.emit (node:events:518:28)
      at addChunk (node:internal/streams/readable:559:12)
      at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
      at Readable.push (node:internal/streams/readable:390:5)
      at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)
11.15.08 [vite] Pre-transform error: Transform failed with 1 error:
C:/Users/name/project/src/main.tsx:6:2: ERROR: Expected ";" but found "as"

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Looks like some react babel transforms is affecting it:

I'll move this to the plugin-react repo for now, but it could be other dependencies affecting this.

authors: ak-adversus bluwy


text:
Library Mode in v3 now uses a .cjs extension for UMD format

Describe the bug
I upgraded one of my library-focused projects to Vite v3 (from v2) to kick the tires and noticed that Library Mode is now using .cjs extensions for the UMD format instead of .js. As far as I could tell this a new/undocumented change. I'm familiar with Rollup's configuration for build outputs so I wouldn't be surprised if this is "solvable" in config land, but wanted to flag just in case it was unintentional or unintentionally not documented.
Thank you! Looking forward to migrating to v3!
Reproduction
https://stackblitz.com/edit/vitejs-vite-14rwnd
System Info
System:
    OS: macOS 12.4
    CPU: (10) arm64 Apple M1 Pro
    Memory: 2.88 GB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.4.0 - ~/.nodenv/versions/18/bin/node
    Yarn: 1.22.18 - ~/.nodenv/versions/18/bin/yarn
    npm: 8.12.1 - ~/.nodenv/versions/18/bin/npm
  Browsers:
    Firefox: 102.0.1
    Safari: 15.5
  npmPackages:
    vite: ^3.0.0 => 3.0.0

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Just to add on to the "unintentionally not documented" path — you can see how it mismatches with the Library Mode documentation now, which suggests that the es output will have a .mjs extension by default, which is currently not true.

Sigh. 😄 I see it now.
I'd maybe suggest this should be mentioned in the library mode section of the migration guide as well? Either way, this could probably be closed. 😶


text:
fix(legacy)!: should rename x.[hash].js to x-legacy.[hash].js

Description

The previous regex has renamed x.[hash].js to x.[hash]-legacy.js.
Additional context

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

@patak-dev I have changed the implementation, which will be smarter when meeting [hash].

@aleen42 @patak-dev
Although this is a trivial problem, the new rule here will produce the following weird file names:

[hash].js -> -legacy[hash].js

eg:

->

I think it would be good to fix this, @jiadesen would you open a proper issue (and later a PR if you'd like) for this? Maybe we should revert to v4 if there is no [name] in the pattern

authors: aleen42 jiadesen patak-dev


text:
Select Box Styling Broken in Portal

Describe the bug
I think #904 may have cause a different issue with the styling in the portal where the selected option does not display properly.
To Reproduce
Install the latest Vitessce into the portal and open an imaging dataset:
Expected behavior
The box should display the selection
Screenshots

Environment:

Release or git hash: 298713b
Browser: FF
Browser version: 87.0

Related? https://github.com/mui-org/material-ui/issues/20461

Applying the suggestion of importing the ScopedCssBaseline first did not help.

For now we can revert the commit which introduced ScopedCssBaseline (https://github.com/vitessce/vitessce/commit/33f210da0ea09cc3e7687e67fd6ddf7ae3e3518a) since the portal styles seem more important than the other Vitessce environments right now

Ok, will do.

Closing because this appears to be fixed https://portal.hubmapconsortium.org/browse/dataset/dc289471333309925e46ceb9bafafaf4

authors: ilan-gold keller-mark

repo: vitessce/vitessce