@vitest/browser 1.5.3 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ .task-error[data-v-ffc45ddf]{--cm-ttc-c-thumb: #CCC}html.dark .task-error[data-v-ffc45ddf]{--cm-ttc-c-thumb: #444}.task-error[data-v-5e7bb715]{--cm-ttc-c-thumb: #CCC}html.dark .task-error[data-v-5e7bb715]{--cm-ttc-c-thumb: #444}.CodeMirror-simplescroll-horizontal div,.CodeMirror-simplescroll-vertical div{position:absolute;background:#ccc;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #bbb;border-radius:2px}.CodeMirror-simplescroll-horizontal,.CodeMirror-simplescroll-vertical{position:absolute;z-index:6;background:#eee}.CodeMirror-simplescroll-horizontal{bottom:0;left:0;height:8px}.CodeMirror-simplescroll-horizontal div{bottom:0;height:100%}.CodeMirror-simplescroll-vertical{right:0;top:0;width:8px}.CodeMirror-simplescroll-vertical div{right:0;width:100%}.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler,.CodeMirror-overlayscroll .CodeMirror-gutter-filler{display:none}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:#bcd;border-radius:3px}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:6px}.CodeMirror-overlayscroll-horizontal div{bottom:0;height:100%}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:6px}.CodeMirror-overlayscroll-vertical div{right:0;width:100%}:root{--color-link-label: var(--color-text);--color-link: #ddd;--color-node-external: #c0ad79;--color-node-inline: #8bc4a0;--color-node-root: #6e9aa5;--color-node-label: var(--color-text);--color-node-stroke: var(--color-text)}html.dark{--color-text: #fff;--color-link: #333;--color-node-external: #857a40;--color-node-inline: #468b60;--color-node-root: #467d8b}.graph{height:calc(100% - 39px)!important}.graph .node{stroke-width:2px;stroke-opacity:.5}.graph .link{stroke-width:2px}.graph .node:hover:not(.focused){filter:none!important}.graph .node__label{transform:translateY(20px);font-weight:100;filter:brightness(.5)}html.dark .graph .node__label{filter:brightness(1.2)}.details-panel{-webkit-user-select:none;user-select:none;width:100%}#vitest-ui-coverage{width:100%;height:calc(100vh - 42px);border:none}.number[data-v-09d153f7]{font-weight:400;text-align:right}.unhandled-errors[data-v-09d153f7]{--cm-ttc-c-thumb: #CCC}html.dark .unhandled-errors[data-v-09d153f7]{--cm-ttc-c-thumb: #444}.in-progress[data-v-f967c1fe]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;animation:in-progress-stripes-f967c1fe 2s linear infinite}@keyframes in-progress-stripes-f967c1fe{0%{background-position:40px 0}to{background-position:0 0}}.graph,.graph>svg{display:block}.graph{height:100%;touch-action:none;width:100%}.graph *{-webkit-touch-callout:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.link{fill:none;stroke-width:4px}.node{--color-stroke: var(--color-node-stroke, rgba(0, 0, 0, .5));cursor:pointer;stroke:none;stroke-width:2px;transition:filter .25s ease,stroke .25s ease,stroke-dasharray .25s ease}.node:hover:not(.focused){filter:brightness(80%);stroke:var(--color-stroke);stroke-dasharray:4px}.node.focused{stroke:var(--color-stroke)}.link__label,.node__label{pointer-events:none;text-anchor:middle}.grabbed{cursor:grabbing!important}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}:root{--cm-scheme: light;--cm-foreground: #6e6e6e;--cm-background: #f4f4f4;--cm-comment: #a8a8a8;--cm-string: #555555;--cm-literal: #333333;--cm-keyword: #000000;--cm-function: #4f4f4f;--cm-deleted: #333333;--cm-class: #333333;--cm-builtin: #757575;--cm-property: #333333;--cm-namespace: #4f4f4f;--cm-punctuation: #ababab;--cm-decorator: var(--cm-class);--cm-operator: var(--cm-punctuation);--cm-number: var(--cm-literal);--cm-boolean: var(--cm-literal);--cm-variable: var(--cm-literal);--cm-constant: var(--cm-literal);--cm-symbol: var(--cm-literal);--cm-interpolation: var(--cm-literal);--cm-selector: var(--cm-keyword);--cm-keyword-control: var(--cm-keyword);--cm-regex: var(--cm-string);--cm-json-property: var(--cm-property);--cm-inline-background: var(--cm-background);--cm-comment-style: italic;--cm-url-decoration: underline;--cm-line-number: #a5a5a5;--cm-line-number-gutter: #333333;--cm-line-highlight-background: #eeeeee;--cm-selection-background: #aaaaaa;--cm-marker-color: var(--cm-foreground);--cm-marker-opacity: .4;--cm-marker-font-size: .8em;--cm-font-size: 1em;--cm-line-height: 1.5em;--cm-font-family: monospace;--cm-inline-font-size: var(--cm-font-size);--cm-block-font-size: var(--cm-font-size);--cm-tab-size: 2;--cm-block-padding-x: 1em;--cm-block-padding-y: 1em;--cm-block-margin-x: 0;--cm-block-margin-y: .5em;--cm-block-radius: .3em;--cm-inline-padding-x: .3em;--cm-inline-padding-y: .1em;--cm-inline-radius: .3em}.cm-s-vars.CodeMirror{background-color:var(--cm-background);color:var(--cm-foreground)}.cm-s-vars .CodeMirror-gutters{background:var(--cm-line-number-gutter);color:var(--cm-line-number);border:none}.cm-s-vars .CodeMirror-guttermarker,.cm-s-vars .CodeMirror-guttermarker-subtle,.cm-s-vars .CodeMirror-linenumber{color:var(--cm-line-number)}.cm-s-vars div.CodeMirror-selected,.cm-s-vars.CodeMirror-focused div.CodeMirror-selected{background:var(--cm-selection-background)}.cm-s-vars .CodeMirror-line::selection,.cm-s-vars .CodeMirror-line>span::selection,.cm-s-vars .CodeMirror-line>span>span::selection{background:var(--cm-selection-background)}.cm-s-vars .CodeMirror-line::-moz-selection,.cm-s-vars .CodeMirror-line>span::-moz-selection,.cm-s-vars .CodeMirror-line>span>span::-moz-selection{background:var(--cm-selection-background)}.cm-s-vars .CodeMirror-activeline-background{background:var(--cm-line-highlight-background)}.cm-s-vars .cm-keyword{color:var(--cm-keyword)}.cm-s-vars .cm-variable,.cm-s-vars .cm-variable-2,.cm-s-vars .cm-variable-3,.cm-s-vars .cm-type{color:var(--cm-variable)}.cm-s-vars .cm-builtin{color:var(--cm-builtin)}.cm-s-vars .cm-atom{color:var(--cm-literal)}.cm-s-vars .cm-number{color:var(--cm-number)}.cm-s-vars .cm-def{color:var(--cm-decorator)}.cm-s-vars .cm-string,.cm-s-vars .cm-string-2{color:var(--cm-string)}.cm-s-vars .cm-comment{color:var(--cm-comment)}.cm-s-vars .cm-tag{color:var(--cm-builtin)}.cm-s-vars .cm-meta{color:var(--cm-namespace)}.cm-s-vars .cm-attribute,.cm-s-vars .cm-property{color:var(--cm-property)}.cm-s-vars .cm-qualifier{color:var(--cm-keyword)}.cm-s-vars .cm-error{color:var(--prism-deleted)}.cm-s-vars .cm-operator,.cm-s-vars .cm-bracket{color:var(--cm-punctuation)}.cm-s-vars .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-vars .CodeMirror-cursor{border-left:1px solid currentColor}html,body{height:100%;font-family:Readex Pro,sans-serif;scroll-behavior:smooth}:root{--color-text-light: #000;--color-text-dark: #ddd;--color-text: var(--color-text-light);--background-color: #e4e4e4}html.dark{--color-text: var(--color-text-dark);--background-color: #141414;color:var(--color-text);background-color:var(--background-color);color-scheme:dark}.CodeMirror{height:100%!important;width:100%!important;font-family:inherit}.cm-s-vars .cm-tag{color:var(--cm-keyword)}:root{--cm-foreground: #393a3480;--cm-background: transparent;--cm-comment: #a0ada0;--cm-string: #b56959;--cm-literal: #2f8a89;--cm-number: #296aa3;--cm-keyword: #1c6b48;--cm-function: #6c7834;--cm-boolean: #1c6b48;--cm-constant: #a65e2b;--cm-deleted: #a14f55;--cm-class: #2993a3;--cm-builtin: #ab5959;--cm-property: #b58451;--cm-namespace: #b05a78;--cm-punctuation: #8e8f8b;--cm-decorator: #bd8f8f;--cm-regex: #ab5e3f;--cm-json-property: #698c96;--cm-line-number-gutter: #f8f8f8;--cm-ttc-c-thumb: #eee;--cm-ttc-c-track: white}html.dark{--cm-scheme: dark;--cm-foreground: #d4cfbf80;--cm-background: transparent;--cm-comment: #758575;--cm-string: #d48372;--cm-literal: #429988;--cm-keyword: #4d9375;--cm-boolean: #1c6b48;--cm-number: #6394bf;--cm-variable: #c2b36e;--cm-function: #a1b567;--cm-deleted: #a14f55;--cm-class: #54b1bf;--cm-builtin: #e0a569;--cm-property: #dd8e6e;--cm-namespace: #db889a;--cm-punctuation: #858585;--cm-decorator: #bd8f8f;--cm-regex: #ab5e3f;--cm-json-property: #6b8b9e;--cm-line-number: #888888;--cm-line-number-gutter: #161616;--cm-line-highlight-background: #444444;--cm-selection-background: #44444450;--cm-ttc-c-thumb: #222;--cm-ttc-c-track: #111}.splitpanes__pane{background-color:unset!important}.splitpanes__splitter{position:relative;background-color:#7d7d7d1a;z-index:10}.splitpanes__splitter:before{content:"";position:absolute;left:0;top:0;transition:opacity .4s;background-color:#7d7d7d1a;opacity:0;z-index:1}.splitpanes__splitter:hover:before{opacity:1}.splitpanes--vertical>.splitpanes__splitter:before{left:0;right:-10px;height:100%}.splitpanes--horizontal>.splitpanes__splitter:before{top:0;bottom:-10px;width:100%}.splitpanes.loading .splitpanes__pane{transition:none!important;height:100%}.CodeMirror-scroll{scrollbar-width:none}.CodeMirror-scroll::-webkit-scrollbar,.codemirror-scrolls::-webkit-scrollbar{display:none}.codemirror-scrolls{overflow:auto!important;scrollbar-width:thin;scrollbar-color:var(--cm-ttc-c-thumb) var(--cm-ttc-c-track)}.CodeMirror-simplescroll-horizontal,.CodeMirror-simplescroll-vertical{background-color:var(--cm-ttc-c-track)!important;border:none!important}.CodeMirror-simplescroll-horizontal div,.CodeMirror-simplescroll-vertical div{background-color:var(--cm-ttc-c-thumb)!important;border:none!important}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:var(--cm-ttc-c-track)!important}.CodeMirror{overflow:unset!important}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar{display:none!important}.CodeMirror-scroll{margin-bottom:unset!important;margin-right:unset!important;padding-bottom:unset!important}.scrolls::-webkit-scrollbar{width:8px;height:8px}.scrolls{overflow:auto!important;scrollbar-width:thin;scrollbar-color:var(--cm-ttc-c-thumb) var(--cm-ttc-c-track)}.scrolls::-webkit-scrollbar-track{background:var(--cm-ttc-c-track)}.scrolls::-webkit-scrollbar-thumb{background-color:var(--cm-ttc-c-thumb);border:2px solid var(--cm-ttc-c-thumb)}.scrolls::-webkit-scrollbar-thumb,.scrolls-rounded::-webkit-scrollbar-track{border-radius:3px}.scrolls::-webkit-scrollbar-corner{background-color:var(--cm-ttc-c-track)}.v-popper__popper .v-popper__inner{font-size:12px;padding:4px 6px;border-radius:4px;background-color:var(--background-color);color:var(--color-text)}.v-popper__popper .v-popper__arrow-outer{border-color:var(--background-color)}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:#000c;color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-logos\:typescript-icon,[i-logos\:typescript-icon=""]{background:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='%233178C6' d='M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0'/%3E%3Cpath fill='%23FFF' d='M150.518 200.475v27.62c4.492 2.302 9.805 4.028 15.938 5.179c6.133 1.151 12.597 1.726 19.393 1.726c6.622 0 12.914-.633 18.874-1.899c5.96-1.266 11.187-3.352 15.678-6.257c4.492-2.906 8.048-6.704 10.669-11.394c2.62-4.689 3.93-10.486 3.93-17.391c0-5.006-.749-9.394-2.246-13.163a30.748 30.748 0 0 0-6.479-10.055c-2.821-2.935-6.205-5.567-10.149-7.898c-3.945-2.33-8.394-4.531-13.347-6.602c-3.628-1.497-6.881-2.949-9.761-4.359c-2.879-1.41-5.327-2.848-7.342-4.316c-2.016-1.467-3.571-3.021-4.665-4.661c-1.094-1.64-1.641-3.495-1.641-5.567c0-1.899.489-3.61 1.468-5.135s2.362-2.834 4.147-3.927c1.785-1.094 3.973-1.942 6.565-2.547c2.591-.604 5.471-.906 8.638-.906c2.304 0 4.737.173 7.299.518c2.563.345 5.14.877 7.732 1.597a53.669 53.669 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807c-4.204-1.611-8.797-2.805-13.778-3.582c-4.981-.777-10.697-1.165-17.147-1.165c-6.565 0-12.784.705-18.658 2.115c-5.874 1.409-11.043 3.61-15.506 6.602c-4.463 2.993-7.99 6.805-10.582 11.437c-2.591 4.632-3.887 10.17-3.887 16.615c0 8.228 2.375 15.248 7.127 21.06c4.751 5.811 11.963 10.731 21.638 14.759a291.458 291.458 0 0 1 10.625 4.575c3.283 1.496 6.119 3.049 8.509 4.66c2.39 1.611 4.276 3.366 5.658 5.265c1.382 1.899 2.073 4.057 2.073 6.474a9.901 9.901 0 0 1-1.296 4.963c-.863 1.524-2.174 2.848-3.93 3.97c-1.756 1.122-3.945 1.999-6.565 2.632c-2.62.633-5.687.95-9.2.95c-5.989 0-11.92-1.05-17.794-3.151c-5.875-2.1-11.317-5.25-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z'/%3E%3C/svg%3E") no-repeat;background-size:100% 100%;background-color:transparent;width:1em;height:1em}.container{width:100%}.tab-button,[tab-button=""]{height:100%;padding-left:1rem;padding-right:1rem;font-weight:300;opacity:.5}.border-base,[border~=base]{border-color:#6b72801a}.bg-active{background-color:#6b728014}.bg-base,[bg-base=""]{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.dark .bg-base,.dark [bg-base=""]{--un-bg-opacity:1;background-color:rgb(17 17 17 / var(--un-bg-opacity))}.bg-header,[bg-header=""]{background-color:#6b72800d}.bg-overlay,[bg-overlay=""],[bg~=overlay]{background-color:#eeeeee80}.dark .bg-overlay,.dark [bg-overlay=""],.dark [bg~=overlay]{background-color:#22222280}.tab-button-active{background-color:#6b72801a;opacity:1}[hover~=bg-active]:hover{background-color:#6b728014}.tab-button:hover,[tab-button=""]:hover{opacity:.8}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none,[pointer-events-none=""]{pointer-events:none}.absolute,[absolute=""]{position:absolute}.fixed,[fixed=""]{position:fixed}.relative,[relative=""]{position:relative}.sticky,[sticky=""]{position:sticky}.inset-0,[inset-0=""]{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.right-0,[right~="0"]{right:0}.right-5px,[right-5px=""]{right:5px}.top-0{top:0}.top-5px,[top-5px=""]{top:5px}[top~="-1"]{top:-.25rem}.z-10,[z-10=""]{z-index:10}.z-40{z-index:40}.z-5,[z-5=""]{z-index:5}.grid,[grid~="~"]{display:grid}.auto-cols-max,[grid~=auto-cols-max]{grid-auto-columns:max-content}.cols-\[1\.5em_1fr\],[grid~="cols-[1.5em_1fr]"]{grid-template-columns:1.5em 1fr}.cols-\[min-content_1fr_min-content\],[grid~="cols-[min-content_1fr_min-content]"]{grid-template-columns:min-content 1fr min-content}.rows-\[min-content_auto\],[grid~="rows-[min-content_auto]"]{grid-template-rows:min-content auto}.cols-2,[grid~=cols-2]{grid-template-columns:repeat(2,minmax(0,1fr))}.m-2,[m-2=""]{margin:.5rem}.ma,[ma=""]{margin:auto}.mx-1,[mx-1=""]{margin-left:.25rem;margin-right:.25rem}.my-0,[my-0=""]{margin-top:0;margin-bottom:0}.my-2,[my-2=""]{margin-top:.5rem;margin-bottom:.5rem}[m~=x-2]{margin-left:.5rem;margin-right:.5rem}[m~=y-4]{margin-top:1rem;margin-bottom:1rem}.mb-1,[mb-1=""]{margin-bottom:.25rem}.mb-2,[mb-2=""]{margin-bottom:.5rem}.mr-1,[mr-1=""]{margin-right:.25rem}.mr-2,[mr-2=""]{margin-right:.5rem}.ms,[ms=""]{margin-inline-start:1rem}.mt-2,[m~=t2],[mt-2=""]{margin-top:.5rem}.inline,[inline=""]{display:inline}.hidden{display:none}.h-1\.4em{height:1.4em}.h-1\.5em{height:1.5em}.h-10,[h-10=""]{height:2.5rem}.h-1px,[h-1px=""]{height:1px}.h-3px,[h-3px=""]{height:3px}.h-41px,[h-41px=""]{height:41px}.h-6,[h-6=""]{height:1.5rem}.h-full,[h-full=""],[h~=full]{height:100%}.h-screen,[h-screen=""]{height:100vh}.h3{height:.75rem}.h4{height:1rem}.max-h-full,[max-h-full=""]{max-height:100%}.max-w-screen,[max-w-screen=""]{max-width:100vw}.max-w-xl,[max-w-xl=""]{max-width:36rem}.min-h-1em{min-height:1em}.min-h-75,[min-h-75=""]{min-height:18.75rem}.min-w-1em{min-width:1em}.min-w-2em,[min-w-2em=""]{min-width:2em}.w-1\.4em{width:1.4em}.w-1\.5em{width:1.5em}.w-2px,[w-2px=""]{width:2px}.w-350,[w-350=""]{width:87.5rem}.w-6,[w-6=""]{width:1.5rem}.w-80,[w-80=""]{width:20rem}.w-full,[w-full=""]{width:100%}.w-screen,[w-screen=""]{width:100vw}.open\:max-h-52[open],[open\:max-h-52=""][open]{max-height:13rem}.flex,[flex=""],[flex~="~"]{display:flex}.flex-1,[flex-1=""]{flex:1 1 0%}.flex-auto,[flex-auto=""]{flex:1 1 auto}.flex-shrink-0,[flex-shrink-0=""]{flex-shrink:0}[flex~=row]{flex-direction:row}.flex-col,[flex-col=""],[flex~=col]{flex-direction:column}[flex~=wrap]{flex-wrap:wrap}.origin-center,[origin-center=""]{transform-origin:center}.translate-x-3,[translate-x-3=""]{--un-translate-x:.75rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.rotate-0,[rotate-0=""]{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:0;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.rotate-90,[rotate-90=""]{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:90deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin,[animate-spin=""]{animation:spin 1s linear infinite}.animate-reverse{animation-direction:reverse}.animate-count-1,[animate-count-1=""]{animation-iteration-count:1}.cursor-help{cursor:help}.cursor-pointer,[cursor-pointer=""],.hover\:cursor-pointer:hover{cursor:pointer}.select-none,[select-none=""]{-webkit-user-select:none;user-select:none}.resize{resize:both}.items-end,[items-end=""]{align-items:flex-end}.items-center,[grid~=items-center],[items-center=""]{align-items:center}.justify-center,[justify-center=""]{justify-content:center}.justify-evenly,[justify-evenly=""]{justify-content:space-evenly}.justify-items-center,[justify-items-center=""]{justify-items:center}.gap-0,[gap-0=""]{gap:0}.gap-1,[flex~=gap-1]{gap:.25rem}.gap-2,[flex~=gap-2],[gap-2=""]{gap:.5rem}.gap-4,[flex~=gap-4],[gap-4=""]{gap:1rem}.gap-x-2,[gap~=x-2]{column-gap:.5rem}[gap~=y-3]{row-gap:.75rem}.overflow-auto,[overflow-auto=""]{overflow:auto}.overflow-hidden,[overflow-hidden=""],[overflow~=hidden]{overflow:hidden}.truncate,[truncate=""]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre,[whitespace-pre=""]{white-space:pre}.ws-nowrap,[ws-nowrap=""]{white-space:nowrap}.b,.border,[border~="~"]{border-width:1px}.b-2{border-width:2px}.border-b,[border~=b]{border-bottom-width:1px}.border-b-2,[border-b-2=""],[border~=b-2]{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r,[border~=r]{border-right-width:1px}.border-t,[border~=t]{border-top-width:1px}[border~="gray-400/50"]{border-color:#9ca3af80}.border-rounded,.rounded,[border-rounded=""],[border~=rounded],[rounded=""]{border-radius:.25rem}.rounded-lg,[rounded-lg=""]{border-radius:.5rem}.\!bg-gray-4{--un-bg-opacity:1 !important;background-color:rgb(156 163 175 / var(--un-bg-opacity))!important}.bg-current,[bg-current=""]{background-color:currentColor}.bg-green5,[bg-green5=""]{--un-bg-opacity:1;background-color:rgb(34 197 94 / var(--un-bg-opacity))}.bg-red-500\/10,[bg~="red-500/10"],[bg~="red500/10"]{background-color:#ef44441a}.bg-red5,[bg-red5=""]{--un-bg-opacity:1;background-color:rgb(239 68 68 / var(--un-bg-opacity))}.bg-white,[bg-white=""]{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.bg-yellow5,[bg-yellow5=""]{--un-bg-opacity:1;background-color:rgb(234 179 8 / var(--un-bg-opacity))}.dark .\!dark\:bg-gray-7{--un-bg-opacity:1 !important;background-color:rgb(55 65 81 / var(--un-bg-opacity))!important}[bg~="green-500/10"]{background-color:#22c55e1a}[bg~=transparent]{background-color:transparent}.p-0,[p-0=""]{padding:0}.p-1,[p-1=""]{padding:.25rem}.p-2,.p2,[p-2=""],[p~="2"],[p2=""]{padding:.5rem}.p-4,[p-4=""]{padding:1rem}.p-5,[p-5=""]{padding:1.25rem}.p6,[p6=""]{padding:1.5rem}[p~="3"]{padding:.75rem}.p-y-1,.py-1,[p~=y-1],[p~=y1],[py-1=""]{padding-top:.25rem;padding-bottom:.25rem}.px,[p~=x-4],[p~=x4]{padding-left:1rem;padding-right:1rem}.px-0{padding-left:0;padding-right:0}.px-3,[p~=x3],[px-3=""]{padding-left:.75rem;padding-right:.75rem}.py,[p~=y4]{padding-top:1rem;padding-bottom:1rem}.py-2,[p~=y2],[py-2=""]{padding-top:.5rem;padding-bottom:.5rem}[p~=x-2],[p~=x2]{padding-left:.5rem;padding-right:.5rem}[p~="y0.5"]{padding-top:.125rem;padding-bottom:.125rem}.pb-2,[pb-2=""]{padding-bottom:.5rem}.pe-2\.5,[pe-2\.5=""]{padding-inline-end:.625rem}.pl-1,[pl-1=""]{padding-left:.25rem}.pt{padding-top:1rem}.pt-4px{padding-top:4px}[p~=l3]{padding-left:.75rem}[p~=r2]{padding-right:.5rem}.text-center,[text-center=""],[text~=center]{text-align:center}.indent,[indent=""]{text-indent:1.5rem}[indent~="1"]{text-indent:.25rem}.text-2xl,[text-2xl=""]{font-size:1.5rem;line-height:2rem}.text-4xl,[text-4xl=""]{font-size:2.25rem;line-height:2.5rem}.text-lg,[text-lg=""]{font-size:1.125rem;line-height:1.75rem}.text-sm,[text-sm=""],[text~=sm]{font-size:.875rem;line-height:1.25rem}.text-xs,[text-xs=""],[text~=xs]{font-size:.75rem;line-height:1rem}[text~="5xl"]{font-size:3rem;line-height:1}.dark .dark\:text-red-300{--un-text-opacity:1;color:rgb(252 165 165 / var(--un-text-opacity))}.text-gray-500,[text-gray-500=""]{--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity))}.text-green-500,.text-green5,[text-green-500=""],[text-green5=""],[text~=green-500]{--un-text-opacity:1;color:rgb(34 197 94 / var(--un-text-opacity))}.text-purple5\:50{color:#a855f780}.color-red5,.text-red-500,.text-red5,[text-red-500=""],[text-red5=""],[text~=red-500],[text~=red500]{--un-text-opacity:1;color:rgb(239 68 68 / var(--un-text-opacity))}.c-red-600,.text-red-600{--un-text-opacity:1;color:rgb(220 38 38 / var(--un-text-opacity))}.text-yellow-500,.text-yellow5,[text-yellow-500=""],[text-yellow5=""]{--un-text-opacity:1;color:rgb(234 179 8 / var(--un-text-opacity))}[text~="red500/70"]{color:#ef4444b3}.dark .dark\:c-red-400{--un-text-opacity:1;color:rgb(248 113 113 / var(--un-text-opacity))}.dark .dark\:color-\#f43f5e{--un-text-opacity:1;color:rgb(244 63 94 / var(--un-text-opacity))}.font-bold,[font-bold=""]{font-weight:700}.font-light,[font-light=""],[font~=light]{font-weight:300}.font-thin,[font-thin=""]{font-weight:100}.font-mono,[font-mono=""]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.capitalize,[capitalize=""]{text-transform:capitalize}.op-50,.op50,.opacity-50,[op-50=""],[op~="50"],[op50=""]{opacity:.5}.op100,[op~="100"]{opacity:1}.op20,[op20=""]{opacity:.2}.op30,[op30=""]{opacity:.3}.op80,[op80=""]{opacity:.8}.opacity-0{opacity:0}[opacity~="10"]{opacity:.1}[opacity~="70"]{opacity:.7}[hover~=op100]:hover,[op~="hover:100"]:hover{opacity:1}.outline{outline-style:solid}[outline~=none]{outline:2px solid transparent;outline-offset:2px}.backdrop-blur-sm,[backdrop-blur-sm=""]{--un-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.backdrop-saturate-0,[backdrop-saturate-0=""]{--un-backdrop-saturate:saturate(0);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.filter,[filter=""]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}
@@ -17,8 +17,8 @@
17
17
  })()
18
18
  </script>
19
19
  <!-- !LOAD_METADATA! -->
20
- <script type="module" crossorigin src="./assets/index-TejngHZE.js"></script>
21
- <link rel="stylesheet" crossorigin href="./assets/index-fUmMsp0O.css">
20
+ <script type="module" crossorigin src="./assets/index-BMbN3lBu.js"></script>
21
+ <link rel="stylesheet" crossorigin href="./assets/index-D0Wp7rbG.css">
22
22
  </head>
23
23
  <body>
24
24
  <div id="app"></div>
@@ -1,4 +1,4 @@
1
- import { c as client, g as getConfig, a as getBrowserState, b as channel, r as rpcDone } from "./rpc-slP7oy1q.js";
1
+ import { c as client, g as getConfig, a as getBrowserState, b as channel, r as rpcDone } from "./rpc-By4jD8av.js";
2
2
  const url = new URL(location.href);
3
3
  const ID_ALL = "__vitest_all__";
4
4
  const iframes = /* @__PURE__ */ new Map();
@@ -74,6 +74,8 @@ function createBirpc(functions, options) {
74
74
  get(_, method) {
75
75
  if (method === "$functions")
76
76
  return functions;
77
+ if (method === "then" && !eventNames.includes("then") && !("then" in functions))
78
+ return void 0;
77
79
  const sendEvent = (...args) => {
78
80
  post(serialize({ m: method, a: args, t: "q" }));
79
81
  };
@@ -84,11 +86,11 @@ function createBirpc(functions, options) {
84
86
  const sendCall = async (...args) => {
85
87
  await _promise;
86
88
  return new Promise((resolve2, reject) => {
87
- var _a, _b;
89
+ var _a;
88
90
  const id = nanoid();
89
91
  let timeoutId;
90
92
  if (timeout >= 0) {
91
- timeoutId = (_b = (_a = setTimeout$1(() => {
93
+ timeoutId = setTimeout$1(() => {
92
94
  var _a2;
93
95
  try {
94
96
  (_a2 = options.onTimeoutError) == null ? void 0 : _a2.call(options, method, args);
@@ -97,7 +99,9 @@ function createBirpc(functions, options) {
97
99
  reject(e);
98
100
  }
99
101
  rpcPromiseMap.delete(id);
100
- }, timeout)).unref) == null ? void 0 : _b.call(_a);
102
+ }, timeout);
103
+ if (typeof timeoutId === "object")
104
+ timeoutId = (_a = timeoutId.unref) == null ? void 0 : _a.call(timeoutId);
101
105
  }
102
106
  rpcPromiseMap.set(id, { resolve: resolve2, reject, timeoutId });
103
107
  post(serialize({ m: method, a: args, i: id, t: "q" }));
@@ -150,7 +154,6 @@ function nanoid(size = 21) {
150
154
  id += urlAlphabet[random() * 64 | 0];
151
155
  return id;
152
156
  }
153
- /*! (c) 2020 Andrea Giammarchi */
154
157
  const { parse: $parse, stringify: $stringify } = JSON;
155
158
  const { keys } = Object;
156
159
  const Primitive = String;
@@ -222,15 +225,17 @@ const stringify = (value, replacer, space) => {
222
225
  return after;
223
226
  }
224
227
  };
228
+ const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
225
229
  function normalizeWindowsPath(input = "") {
226
- if (!input || !input.includes("\\")) {
230
+ if (!input) {
227
231
  return input;
228
232
  }
229
- return input.replace(/\\/g, "/");
233
+ return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
230
234
  }
231
235
  const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
236
+ const _ROOT_FOLDER_RE = /^\/([A-Za-z]:)?$/;
232
237
  function cwd() {
233
- if (typeof process !== "undefined") {
238
+ if (typeof process !== "undefined" && typeof process.cwd === "function") {
234
239
  return process.cwd().replace(/\\/g, "/");
235
240
  }
236
241
  return "/";
@@ -318,8 +323,11 @@ const isAbsolute = function(p) {
318
323
  return _IS_ABSOLUTE_RE.test(p);
319
324
  };
320
325
  const relative = function(from, to) {
321
- const _from = resolve(from).split("/");
322
- const _to = resolve(to).split("/");
326
+ const _from = resolve(from).replace(_ROOT_FOLDER_RE, "$1").split("/");
327
+ const _to = resolve(to).replace(_ROOT_FOLDER_RE, "$1").split("/");
328
+ if (_to[0][1] === ":" && _from[0][1] === ":" && _from[0] !== _to[0]) {
329
+ return _to.join("/");
330
+ }
323
331
  const _fromCopy = [..._from];
324
332
  for (const segment of _fromCopy) {
325
333
  if (_to[0] !== segment) {
@@ -456,20 +464,25 @@ class StateManager {
456
464
  }).length;
457
465
  }
458
466
  cancelFiles(files, root, projectName) {
459
- this.collectFiles(files.map((filepath) => ({
460
- filepath,
461
- name: relative(root, filepath),
462
- id: filepath,
463
- mode: "skip",
464
- type: "suite",
465
- result: {
466
- state: "skip"
467
- },
468
- meta: {},
469
- // Cancelled files have not yet collected tests
470
- tasks: [],
471
- projectName
472
- })));
467
+ this.collectFiles(files.map((filepath) => {
468
+ const file = {
469
+ filepath,
470
+ name: relative(root, filepath),
471
+ id: filepath,
472
+ mode: "skip",
473
+ type: "suite",
474
+ result: {
475
+ state: "skip"
476
+ },
477
+ meta: {},
478
+ // Cancelled files have not yet collected tests
479
+ tasks: [],
480
+ projectName,
481
+ file: null
482
+ };
483
+ file.file = file;
484
+ return file;
485
+ }));
473
486
  }
474
487
  }
475
488
  function createClient(url, options = {}) {
@@ -595,7 +608,7 @@ const seen = {};
595
608
  const __vitePreload = function preload(baseModule, deps, importerUrl) {
596
609
  let promise = Promise.resolve();
597
610
  if (deps && deps.length > 0) {
598
- const links = document.getElementsByTagName("link");
611
+ document.getElementsByTagName("link");
599
612
  const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
600
613
  const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
601
614
  promise = Promise.all(deps.map((dep) => {
@@ -605,15 +618,7 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
605
618
  seen[dep] = true;
606
619
  const isCss = dep.endsWith(".css");
607
620
  const cssSelector = isCss ? '[rel="stylesheet"]' : "";
608
- const isBaseRelative = !!importerUrl;
609
- if (isBaseRelative) {
610
- for (let i = links.length - 1; i >= 0; i--) {
611
- const link2 = links[i];
612
- if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
613
- return;
614
- }
615
- }
616
- } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
621
+ if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
617
622
  return;
618
623
  }
619
624
  const link = document.createElement("link");
@@ -10,7 +10,7 @@ var __publicField = (obj, key, value) => {
10
10
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
11
  return value;
12
12
  };
13
- import { i as importId, d as rpc, g as getConfig, _ as __vitePreload, b as channel, a as getBrowserState, c as client, l as loadSafeRpc, o as onCancel } from "./rpc-slP7oy1q.js";
13
+ import { i as importId, d as rpc$1, g as getConfig, _ as __vitePreload, b as channel, a as getBrowserState, c as client, l as loadSafeRpc, o as onCancel } from "./rpc-By4jD8av.js";
14
14
  function showPopupWarning(name, value, defaultValue) {
15
15
  return (...params) => {
16
16
  const formatedParams = params.map((p) => JSON.stringify(p)).join(", ");
@@ -48,7 +48,7 @@ async function setupConsoleLogSpy() {
48
48
  return;
49
49
  const unknownTestId = "__vitest__unknown_test__";
50
50
  const taskId = ((_b = (_a = globalThis.__vitest_worker__) == null ? void 0 : _a.current) == null ? void 0 : _b.id) ?? unknownTestId;
51
- rpc().sendLog({
51
+ rpc$1().sendLog({
52
52
  content,
53
53
  time: Date$1.now(),
54
54
  taskId,
@@ -121,7 +121,7 @@ ${stack}`);
121
121
  return countReset(label);
122
122
  };
123
123
  }
124
- class BrowserSnapshotEnvironment {
124
+ class VitestBrowserSnapshotEnvironment {
125
125
  getVersion() {
126
126
  return "1";
127
127
  }
@@ -144,6 +144,9 @@ class BrowserSnapshotEnvironment {
144
144
  return rpc().removeSnapshotFile(filepath);
145
145
  }
146
146
  }
147
+ function rpc() {
148
+ return globalThis.__vitest_worker__.rpc;
149
+ }
147
150
  const browserHashMap = /* @__PURE__ */ new Map();
148
151
  function createBrowserRunner(runnerClass, coverageModule) {
149
152
  return class BrowserTestRunner extends runnerClass {
@@ -155,10 +158,10 @@ function createBrowserRunner(runnerClass, coverageModule) {
155
158
  var _a, _b, _c;
156
159
  await ((_a = super.onAfterRunTask) == null ? void 0 : _a.call(this, task));
157
160
  if (this.config.bail && ((_b = task.result) == null ? void 0 : _b.state) === "fail") {
158
- const previousFailures = await rpc().getCountOfFailedTests();
161
+ const previousFailures = await rpc$1().getCountOfFailedTests();
159
162
  const currentFailures = 1 + previousFailures;
160
163
  if (currentFailures >= this.config.bail) {
161
- rpc().onCancel("test-failure");
164
+ rpc$1().onCancel("test-failure");
162
165
  (_c = this.onCancel) == null ? void 0 : _c.call(this, "test-failure");
163
166
  }
164
167
  }
@@ -168,7 +171,7 @@ function createBrowserRunner(runnerClass, coverageModule) {
168
171
  await ((_a = super.onAfterRunFiles) == null ? void 0 : _a.call(this, files));
169
172
  const coverage = await ((_b = coverageModule == null ? void 0 : coverageModule.takeCoverage) == null ? void 0 : _b.call(coverageModule));
170
173
  if (coverage) {
171
- await rpc().onAfterSuiteRun({
174
+ await rpc$1().onAfterSuiteRun({
172
175
  coverage,
173
176
  transformMode: "web",
174
177
  projectName: this.config.name
@@ -182,10 +185,10 @@ function createBrowserRunner(runnerClass, coverageModule) {
182
185
  } catch (_) {
183
186
  }
184
187
  }
185
- return rpc().onCollected(files);
188
+ return rpc$1().onCollected(files);
186
189
  });
187
190
  __publicField(this, "onTaskUpdate", (task) => {
188
- return rpc().onTaskUpdate(task);
191
+ return rpc$1().onTaskUpdate(task);
189
192
  });
190
193
  __publicField(this, "importFile", async (filepath) => {
191
194
  let [test, hash] = this.hashMap.get(filepath) ?? [false, ""];
@@ -208,7 +211,10 @@ async function initiateRunner() {
208
211
  if (cachedRunner)
209
212
  return cachedRunner;
210
213
  const config = getConfig();
211
- const [{ VitestTestRunner, NodeBenchmarkRunner }, { takeCoverageInsideWorker, loadDiffConfig, loadSnapshotSerializers }] = await Promise.all([
214
+ const [
215
+ { VitestTestRunner, NodeBenchmarkRunner },
216
+ { takeCoverageInsideWorker, loadDiffConfig, loadSnapshotSerializers }
217
+ ] = await Promise.all([
212
218
  importId("vitest/runners"),
213
219
  importId("vitest/browser")
214
220
  ]);
@@ -217,7 +223,7 @@ async function initiateRunner() {
217
223
  takeCoverage: () => takeCoverageInsideWorker(config.coverage, { executeId: importId })
218
224
  });
219
225
  if (!config.snapshotOptions.snapshotEnvironment)
220
- config.snapshotOptions.snapshotEnvironment = new BrowserSnapshotEnvironment();
226
+ config.snapshotOptions.snapshotEnvironment = new VitestBrowserSnapshotEnvironment();
221
227
  const runner = new BrowserRunner({
222
228
  config
223
229
  });
@@ -234,7 +240,7 @@ async function updateFilesLocations(files) {
234
240
  const { loadSourceMapUtils } = await importId("vitest/utils");
235
241
  const { TraceMap, originalPositionFor } = await loadSourceMapUtils();
236
242
  const promises = files.map(async (file) => {
237
- const result = await rpc().getBrowserFileSourceMap(file.filepath);
243
+ const result = await rpc$1().getBrowserFileSourceMap(file.filepath);
238
244
  if (!result)
239
245
  return null;
240
246
  const traceMap = new TraceMap(result);
@@ -22,8 +22,9 @@
22
22
  }
23
23
  </style>
24
24
  <script>{__VITEST_INJECTOR__}</script>
25
- <script type="module" crossorigin src="/__vitest_browser__/main-v2hiOVax.js"></script>
26
- <link rel="modulepreload" crossorigin href="/__vitest_browser__/rpc-slP7oy1q.js">
25
+ {__VITEST_SCRIPTS__}
26
+ <script type="module" crossorigin src="/__vitest_browser__/main-DmAU-Uff.js"></script>
27
+ <link rel="modulepreload" crossorigin href="/__vitest_browser__/rpc-By4jD8av.js">
27
28
  </head>
28
29
  <body>
29
30
  <iframe id="vitest-ui" src=""></iframe>
@@ -16,8 +16,9 @@
16
16
  }
17
17
  </style>
18
18
  <script>{__VITEST_INJECTOR__}</script>
19
- <script type="module" crossorigin src="/__vitest_browser__/tester-2urZfMAh.js"></script>
20
- <link rel="modulepreload" crossorigin href="/__vitest_browser__/rpc-slP7oy1q.js">
19
+ {__VITEST_SCRIPTS__}
20
+ <script type="module" crossorigin src="/__vitest_browser__/tester-CrKhlp5g.js"></script>
21
+ <link rel="modulepreload" crossorigin href="/__vitest_browser__/rpc-By4jD8av.js">
21
22
  </head>
22
23
  <body>
23
24
  {__VITEST_APPEND__}
package/dist/index.js CHANGED
@@ -2,18 +2,71 @@ import { fileURLToPath } from 'node:url';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import sirv from 'sirv';
4
4
  import { coverageConfigDefaults } from 'vitest/config';
5
+ import { slash } from '@vitest/utils';
5
6
  import MagicString from 'magic-string';
6
7
  import { esmWalker } from '@vitest/utils/ast';
7
8
 
9
+ const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
8
10
  function normalizeWindowsPath(input = "") {
9
- if (!input || !input.includes("\\")) {
11
+ if (!input) {
10
12
  return input;
11
13
  }
12
- return input.replace(/\\/g, "/");
14
+ return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
13
15
  }
16
+
17
+ const _UNC_REGEX = /^[/\\]{2}/;
14
18
  const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
19
+ const _DRIVE_LETTER_RE = /^[A-Za-z]:$/;
20
+ const normalize = function(path) {
21
+ if (path.length === 0) {
22
+ return ".";
23
+ }
24
+ path = normalizeWindowsPath(path);
25
+ const isUNCPath = path.match(_UNC_REGEX);
26
+ const isPathAbsolute = isAbsolute(path);
27
+ const trailingSeparator = path[path.length - 1] === "/";
28
+ path = normalizeString(path, !isPathAbsolute);
29
+ if (path.length === 0) {
30
+ if (isPathAbsolute) {
31
+ return "/";
32
+ }
33
+ return trailingSeparator ? "./" : ".";
34
+ }
35
+ if (trailingSeparator) {
36
+ path += "/";
37
+ }
38
+ if (_DRIVE_LETTER_RE.test(path)) {
39
+ path += "/";
40
+ }
41
+ if (isUNCPath) {
42
+ if (!isPathAbsolute) {
43
+ return `//./${path}`;
44
+ }
45
+ return `//${path}`;
46
+ }
47
+ return isPathAbsolute && !isAbsolute(path) ? `/${path}` : path;
48
+ };
49
+ const join = function(...arguments_) {
50
+ if (arguments_.length === 0) {
51
+ return ".";
52
+ }
53
+ let joined;
54
+ for (const argument of arguments_) {
55
+ if (argument && argument.length > 0) {
56
+ if (joined === void 0) {
57
+ joined = argument;
58
+ } else {
59
+ joined += `/${argument}`;
60
+ }
61
+ }
62
+ }
63
+ if (joined === void 0) {
64
+ return ".";
65
+ }
66
+ return normalize(joined.replace(/\/\/+/g, "/"));
67
+ };
15
68
  function cwd() {
16
- if (typeof process !== "undefined") {
69
+ if (typeof process !== "undefined" && typeof process.cwd === "function") {
17
70
  return process.cwd().replace(/\\/g, "/");
18
71
  }
19
72
  return "/";
@@ -345,9 +398,6 @@ export { ${viInjectedKey} }`);
345
398
  };
346
399
  }
347
400
 
348
- function replacer(code, values) {
349
- return code.replace(/{\s*(\w+)\s*}/g, (_, key) => values[key] ?? "");
350
- }
351
401
  var index = (project, base = "/") => {
352
402
  const pkgRoot = resolve(fileURLToPath(import.meta.url), "../..");
353
403
  const distRoot = resolve(pkgRoot, "dist");
@@ -376,6 +426,8 @@ var index = (project, base = "/") => {
376
426
  }
377
427
  next();
378
428
  });
429
+ let indexScripts;
430
+ let testerScripts;
379
431
  server.middlewares.use(async (req, res, next) => {
380
432
  if (!req.url)
381
433
  return next();
@@ -393,9 +445,12 @@ var index = (project, base = "/") => {
393
445
  __VITEST_FILES__: JSON.stringify(files)
394
446
  });
395
447
  if (url.pathname === base) {
448
+ if (!indexScripts)
449
+ indexScripts = await formatScripts(project.config.browser.indexScripts, server);
396
450
  const html2 = replacer(await runnerHtml, {
397
451
  __VITEST_FAVICON__: favicon,
398
452
  __VITEST_TITLE__: "Vitest Browser Runner",
453
+ __VITEST_SCRIPTS__: indexScripts,
399
454
  __VITEST_INJECTOR__: injector
400
455
  });
401
456
  res.write(html2, "utf-8");
@@ -404,9 +459,12 @@ var index = (project, base = "/") => {
404
459
  }
405
460
  const decodedTestFile = decodeURIComponent(url.pathname.slice(testerPrefix.length));
406
461
  const tests = decodedTestFile === "__vitest_all__" || !files.includes(decodedTestFile) ? "__vitest_browser_runner__.files" : JSON.stringify([decodedTestFile]);
462
+ if (!testerScripts)
463
+ testerScripts = await formatScripts(project.config.browser.testerScripts, server);
407
464
  const html = replacer(await testerHtml, {
408
465
  __VITEST_FAVICON__: favicon,
409
466
  __VITEST_TITLE__: "Vitest Browser Tester",
467
+ __VITEST_SCRIPTS__: testerScripts,
410
468
  __VITEST_INJECTOR__: injector,
411
469
  __VITEST_APPEND__: (
412
470
  // TODO: have only a single global variable to not pollute the global scope
@@ -541,5 +599,20 @@ function wrapConfig(config) {
541
599
  testNamePattern: config.testNamePattern ? config.testNamePattern.toString() : void 0
542
600
  };
543
601
  }
602
+ function replacer(code, values) {
603
+ return code.replace(/{\s*(\w+)\s*}/g, (_, key) => values[key] ?? "");
604
+ }
605
+ async function formatScripts(scripts, server) {
606
+ if (!scripts?.length)
607
+ return "";
608
+ const promises = scripts.map(async ({ content, src, async, id, type = "module" }, index) => {
609
+ const srcLink = (src ? (await server.pluginContainer.resolveId(src))?.id : void 0) || src;
610
+ const transformId = srcLink || join(server.config.root, `virtual__${id || `injected-${index}.js`}`);
611
+ await server.moduleGraph.ensureEntryFromUrl(transformId);
612
+ const contentProcessed = content && type === "module" ? (await server.pluginContainer.transform(content, transformId)).code : content;
613
+ return `<script type="${type}"${async ? " async" : ""}${srcLink ? ` src="${slash(`/@fs/${srcLink}`)}"` : ""}>${contentProcessed || ""}<\/script>`;
614
+ });
615
+ return (await Promise.all(promises)).join("\n");
616
+ }
544
617
 
545
618
  export { index as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/browser",
3
3
  "type": "module",
4
- "version": "1.5.3",
4
+ "version": "2.0.0-beta.1",
5
5
  "description": "Browser running for Vitest",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -43,7 +43,7 @@
43
43
  "peerDependencies": {
44
44
  "playwright": "*",
45
45
  "webdriverio": "*",
46
- "vitest": "1.5.3"
46
+ "vitest": "2.0.0-beta.1"
47
47
  },
48
48
  "peerDependenciesMeta": {
49
49
  "playwright": {
@@ -57,22 +57,22 @@
57
57
  }
58
58
  },
59
59
  "dependencies": {
60
- "magic-string": "^0.30.5",
60
+ "magic-string": "^0.30.10",
61
61
  "sirv": "^2.0.4",
62
- "@vitest/utils": "1.5.3"
62
+ "@vitest/utils": "2.0.0-beta.1"
63
63
  },
64
64
  "devDependencies": {
65
- "@types/ws": "^8.5.9",
66
- "@wdio/protocols": "^8.29.7",
65
+ "@types/ws": "^8.5.10",
66
+ "@wdio/protocols": "^8.32.0",
67
67
  "periscopic": "^4.0.2",
68
- "playwright": "^1.41.0",
69
- "playwright-core": "^1.41.0",
68
+ "playwright": "^1.44.0",
69
+ "playwright-core": "^1.44.0",
70
70
  "safaridriver": "^0.1.2",
71
- "webdriverio": "^8.32.2",
72
- "@vitest/ui": "1.5.3",
73
- "@vitest/runner": "1.5.3",
74
- "@vitest/ws-client": "1.5.3",
75
- "vitest": "1.5.3"
71
+ "webdriverio": "^8.36.1",
72
+ "@vitest/ws-client": "2.0.0-beta.1",
73
+ "@vitest/ui": "2.0.0-beta.1",
74
+ "@vitest/runner": "2.0.0-beta.1",
75
+ "vitest": "2.0.0-beta.1"
76
76
  },
77
77
  "scripts": {
78
78
  "build": "rimraf dist && pnpm build:node && pnpm build:client",