diff --git a/404.html b/404.html index c8309b2f26..60d3849a5e 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Page Not Found | Scala CLI - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/193cf812.bc559a43.js b/assets/js/193cf812.10fb00eb.js similarity index 73% rename from assets/js/193cf812.bc559a43.js rename to assets/js/193cf812.10fb00eb.js index e10fd8ec42..cc9299488f 100644 --- a/assets/js/193cf812.bc559a43.js +++ b/assets/js/193cf812.10fb00eb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3355],{9830:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});var n=s(5893),o=s(1151);const r={title:"Index",sidebar_position:1},d="Guides",t={id:"guides/intro",title:"Index",description:"This section covers some aspects of Scala CLI that apply across various commands.",source:"@site/docs/guides/intro.md",sourceDirName:"guides",slug:"/guides/intro",permalink:"/docs/guides/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Index",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"PGP \u26a1\ufe0f",permalink:"/docs/commands/misc/pgp"},next:{title:"Configuration",permalink:"/docs/guides/introduction/configuration"}},c={},a=[{value:"Introductory guides",id:"introductory-guides",level:2},{value:"Scripting guides",id:"scripting-guides",level:2},{value:"Advanced guides",id:"advanced-guides",level:2},{value:"\u26a1\ufe0f --power mode guides",id:"\ufe0f---power-mode-guides",level:2}];function l(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"guides",children:"Guides"}),"\n",(0,n.jsx)(i.p,{children:"This section covers some aspects of Scala CLI that apply across various commands.\nWe have divided the available guides into categories, so that it's easier to find a relevant topic."}),"\n",(0,n.jsxs)(i.p,{children:["For concrete recipes that show you how to use Scala CLI in particular situations, refer to\nthe ",(0,n.jsx)(i.a,{href:"/docs/cookbooks/intro",children:"cookbooks section"}),"."]}),"\n",(0,n.jsx)(i.h2,{id:"introductory-guides",children:"Introductory guides"}),"\n",(0,n.jsx)(i.p,{children:"These few guides are a good starting point when learning how to use Scala CLI."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/configuration",children:"Configuration"})," - learn how to configure various options, and what configuration styles are best\nfor each use case"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/dependencies",children:"Dependencies"})," - learn how to define dependencies within a Scala CLI project."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/update-dependencies",children:"Updating dependencies"})," - learn about how to keep your dependencies up-to-date automatically with\nScala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsxs)(i.a,{href:"/docs/guides/introduction/using-directives",children:[(0,n.jsx)(i.code,{children:"using"})," directives"]})," - Scala CLI\u2019s syntax that lets you store configuration information\ndirectly in source files"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/ide",children:"IDE support"})," - how to import and use Scala CLI-based projects in your favorite IDE."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/toolkit",children:"Scala Toolkit"})," - how to use the ",(0,n.jsx)(i.a,{href:"https://github.com/scala/toolkit",children:"Scala Toolkit"})," dependency batch (and other dependency batches) in a Scala CLI project."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsxs)(i.a,{href:"/docs/guides/introduction/old-runner-migration",children:["Migrating from the old ",(0,n.jsx)(i.code,{children:"scala"})," runner"]})," - an in-depth look at all the differences between Scala CLI and the old ",(0,n.jsx)(i.code,{children:"scala"})," script."]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"scripting-guides",children:"Scripting guides"}),"\n",(0,n.jsx)(i.p,{children:"Guides on how to get started with Scala scripting with Scala CLI."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/scripting/scripts",children:"Scripting guide"})," - covers how Scala CLI allows for powerful scripting with Scala."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/scripting/shebang",children:"Shebang"})," - explains how to use the ",(0,n.jsx)(i.code,{children:"shebang"})," sub-command in a script's shebang header."]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"advanced-guides",children:"Advanced guides"}),"\n",(0,n.jsx)(i.p,{children:"Less introductory guides on specific topics."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/scala-js",children:"Scala.js"})," and ",(0,n.jsx)(i.a,{href:"/docs/guides/advanced/scala-native",children:"Scala Native"})," - learn how Scala CLI supports these non-JVM platforms"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/piping",children:"Piping"})," - covers how Scala CLI allows to work with piped sources."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/snippets",children:"Snippets"})," - learn how to use command line snippets with Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/verbosity",children:"Verbosity"})," - learn how to control logs verbosity in Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/java-properties",children:"Java properties"})," - learn how to pass Java properties to Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/internals",children:"Internals"})," - learn about how Scala CLI works under the hood."]}),"\n"]}),"\n",(0,n.jsxs)(i.h2,{id:"\ufe0f---power-mode-guides",children:["\u26a1\ufe0f ",(0,n.jsx)(i.code,{children:"--power"})," mode guides"]}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/sbt-mill",children:"SBT and Mill export"})," - learn how to convert your Scala CLI project into an SBT or Mill project (when\nyou need a more powerful build tool)."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/proxy",children:"proxies"})," - learn how to configure Scala CLI to work with proxies."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/markdown",children:"Markdown"})," - learn how to work with ",(0,n.jsx)(i.code,{children:".md"})," sources."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/python",children:"Python/ScalaPy"})," - learn how to use Python libraries in Scala CLI projects."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/offline",children:"offline mode"})," - learn how to use Scala CLI in offline mode."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/repositories",children:"repositories"})," - learn how to configure Scala CLI to work with custom repositories."]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,o.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,i,s)=>{s.d(i,{Z:()=>t,a:()=>d});var n=s(7294);const o={},r=n.createContext(o);function d(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function t(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3355],{9830:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});var n=s(5893),o=s(1151);const r={title:"Index",sidebar_position:1},d="Guides",t={id:"guides/intro",title:"Index",description:"This section covers some aspects of Scala CLI that apply across various commands.",source:"@site/docs/guides/intro.md",sourceDirName:"guides",slug:"/guides/intro",permalink:"/docs/guides/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Index",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"PGP \u26a1\ufe0f",permalink:"/docs/commands/misc/pgp"},next:{title:"Configuration",permalink:"/docs/guides/introduction/configuration"}},c={},a=[{value:"Introductory guides",id:"introductory-guides",level:2},{value:"Scripting guides",id:"scripting-guides",level:2},{value:"Advanced guides",id:"advanced-guides",level:2},{value:"\u26a1\ufe0f --power mode guides",id:"\ufe0f---power-mode-guides",level:2}];function l(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"guides",children:"Guides"}),"\n",(0,n.jsx)(i.p,{children:"This section covers some aspects of Scala CLI that apply across various commands.\nWe have divided the available guides into categories, so that it's easier to find a relevant topic."}),"\n",(0,n.jsxs)(i.p,{children:["For concrete recipes that show you how to use Scala CLI in particular situations, refer to\nthe ",(0,n.jsx)(i.a,{href:"/docs/cookbooks/intro",children:"cookbooks section"}),"."]}),"\n",(0,n.jsx)(i.h2,{id:"introductory-guides",children:"Introductory guides"}),"\n",(0,n.jsx)(i.p,{children:"These few guides are a good starting point when learning how to use Scala CLI."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/configuration",children:"Configuration"})," - learn how to configure various options, and what configuration styles are best\nfor each use case"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/dependencies",children:"Dependencies"})," - learn how to define dependencies within a Scala CLI project."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/update-dependencies",children:"Updating dependencies"})," - learn about how to keep your dependencies up-to-date automatically with\nScala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsxs)(i.a,{href:"/docs/guides/introduction/using-directives",children:[(0,n.jsx)(i.code,{children:"using"})," directives"]})," - Scala CLI\u2019s syntax that lets you store configuration information\ndirectly in source files"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/ide",children:"IDE support"})," - how to import and use Scala CLI-based projects in your favorite IDE."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/introduction/toolkit",children:"Scala Toolkit"})," - how to use the ",(0,n.jsx)(i.a,{href:"https://github.com/scala/toolkit",children:"Scala Toolkit"})," dependency batch (and other dependency batches) in a Scala CLI project."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsxs)(i.a,{href:"/docs/guides/introduction/old-runner-migration",children:["Migrating from the old ",(0,n.jsx)(i.code,{children:"scala"})," runner"]})," - an in-depth look at all the differences between Scala CLI and the old ",(0,n.jsx)(i.code,{children:"scala"})," script."]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"scripting-guides",children:"Scripting guides"}),"\n",(0,n.jsx)(i.p,{children:"Guides on how to get started with Scala scripting with Scala CLI."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/scripting/scripts",children:"Scripting guide"})," - covers how Scala CLI allows for powerful scripting with Scala."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/scripting/shebang",children:"Shebang"})," - explains how to use the ",(0,n.jsx)(i.code,{children:"shebang"})," sub-command in a script's shebang header."]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"advanced-guides",children:"Advanced guides"}),"\n",(0,n.jsx)(i.p,{children:"Less introductory guides on specific topics."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/scala-js",children:"Scala.js"})," and ",(0,n.jsx)(i.a,{href:"/docs/guides/advanced/scala-native",children:"Scala Native"})," - learn how Scala CLI supports these non-JVM platforms"]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/piping",children:"Piping"})," - covers how Scala CLI allows to work with piped sources."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/snippets",children:"Snippets"})," - learn how to use command line snippets with Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/verbosity",children:"Verbosity"})," - learn how to control logs verbosity in Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/java-properties",children:"Java properties"})," - learn how to pass Java properties to Scala CLI."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/internals",children:"Internals"})," - learn about how Scala CLI works under the hood."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/advanced/custom-toolkit",children:"Custom Toolkit"})," - learn how to create custom toolkits"]}),"\n"]}),"\n",(0,n.jsxs)(i.h2,{id:"\ufe0f---power-mode-guides",children:["\u26a1\ufe0f ",(0,n.jsx)(i.code,{children:"--power"})," mode guides"]}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/sbt-mill",children:"SBT and Mill export"})," - learn how to convert your Scala CLI project into an SBT or Mill project (when\nyou need a more powerful build tool)."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/proxy",children:"proxies"})," - learn how to configure Scala CLI to work with proxies."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/markdown",children:"Markdown"})," - learn how to work with ",(0,n.jsx)(i.code,{children:".md"})," sources."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/python",children:"Python/ScalaPy"})," - learn how to use Python libraries in Scala CLI projects."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/offline",children:"offline mode"})," - learn how to use Scala CLI in offline mode."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.a,{href:"/docs/guides/power/repositories",children:"repositories"})," - learn how to configure Scala CLI to work with custom repositories."]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,o.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,i,s)=>{s.d(i,{Z:()=>t,a:()=>d});var n=s(7294);const o={},r=n.createContext(o);function d(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function t(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/467d2bbe.00fae0ba.js b/assets/js/467d2bbe.00fae0ba.js new file mode 100644 index 0000000000..acc6b67c14 --- /dev/null +++ b/assets/js/467d2bbe.00fae0ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2699],{9217:(e,a,r)=>{r.r(a),r.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>v,frontMatter:()=>o,metadata:()=>t,toc:()=>l});var s=r(5893),n=r(1151);const o={title:"Internals",sidebar_position:49},i=void 0,t={id:"guides/advanced/internals",title:"Internals",description:"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.",source:"@site/docs/guides/advanced/internals.md",sourceDirName:"guides/advanced",slug:"/guides/advanced/internals",permalink:"/docs/guides/advanced/internals",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/advanced/internals.md",tags:[],version:"current",sidebarPosition:49,frontMatter:{title:"Internals",sidebar_position:49},sidebar:"tutorialSidebar",previous:{title:"Java properties",permalink:"/docs/guides/advanced/java-properties"},next:{title:"custom-toolkit",permalink:"/docs/guides/advanced/custom-toolkit"}},c={},l=[{value:"Bloop",id:"bloop",level:3},{value:".scala-build directory",id:"scala-build-directory",level:3},{value:"Home directory for scala-cli",id:"home-directory-for-scala-cli",level:2},{value:"Preprocessing",id:"preprocessing",level:2},{value:"Postprocessing",id:"postprocessing",level:2},{value:"Runner",id:"runner",level:2},{value:"Logging",id:"logging",level:2}];function p(e){const a={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.\nThis page describes what happens under the hood when you run a Scala CLI command."}),"\n",(0,s.jsx)(a.h3,{id:"bloop",children:"Bloop"}),"\n",(0,s.jsxs)(a.p,{children:["Scala CLI uses Bloop to compile code.\nThat way, it doesn't interface directly with ",(0,s.jsx)(a.code,{children:"scalac"}),", and newly released Scala versions work out of the box: there's no need to update Scala CLI itself."]}),"\n",(0,s.jsxs)(a.p,{children:['Scala CLI connects to Bloop on the local machine using a domain socket. That domain socket\nlives under the "Bloop daemon directory", that is OS-dependent, and whose path is printed\nby ',(0,s.jsx)(a.code,{children:"scala-cli directories"}),".\nIf no Bloop instance is running, Scala CLI fetches Bloop if necessary (via Coursier), and starts it."]}),"\n",(0,s.jsxs)(a.p,{children:["Once it\u2019s connected to Bloop, Scala CLI writes a Bloop project file under a ",(0,s.jsx)(a.code,{children:".scala/.bloop"})," directory. This file describes the current Scala CLI project, including its Scala version, dependencies, compiler plugins and options, etc."]}),"\n",(0,s.jsxs)(a.p,{children:["It then initiates a ",(0,s.jsx)(a.a,{href:"https://github.com/build-server-protocol/build-server-protocol",children:"BSP"})," connection with Bloop.\nBSP communication happens on a domain socket too, different than the one above."]}),"\n",(0,s.jsx)(a.p,{children:"That BSP connection then allows Scala CLI to ask Bloop to compile sources, and get diagnostics (warnings / errors) and the compiled byte code."}),"\n",(0,s.jsxs)(a.h3,{id:"scala-build-directory",children:[(0,s.jsx)(a.code,{children:".scala-build"})," directory"]}),"\n",(0,s.jsxs)(a.p,{children:["In the directory where you run your Scala CLI commands, Scala CLI creates a subdirectory named ",(0,s.jsx)(a.code,{children:".scala-build"}),", where it writes:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"#bloop",children:"Bloop project files"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"#preprocessing",children:"generated sources"})}),"\n",(0,s.jsx)(a.li,{children:"byte code and TASTy files that result from compiling the user sources"}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["The typical content of the ",(0,s.jsx)(a.code,{children:".scala-build"})," directory looks like this:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:".scala-build\n\u251c\u2500\u2500 .bloop\n\u2502\xa0\xa0 \u251c\u2500\u2500 project_940fb43dce\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 bloop-internal-classes\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 main-ZWP3jgllS6y93V4HoGYa2g==\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test$.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.tasty\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc$.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 test_sc.tasty\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 project_940fb43dce-analysis.bin\n\u2502\xa0\xa0 \u251c\u2500\u2500 project_940fb43dce.json\n\u2502\xa0\xa0 \u2514\u2500\u2500 project_f643cb0bc2-test.json\n\u2514\u2500\u2500 project_940fb43dce\n \xa0\xa0 \u251c\u2500\u2500 classes\n \xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 main\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test$.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.tasty\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc$.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc.class\n \xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 test_sc.tasty\n \xa0\xa0 \u2514\u2500\u2500 src_generated\n \xa0\xa0 \u2514\u2500\u2500 main\n \xa0\xa0 \u2514\u2500\u2500 test.scala\n"})}),"\n",(0,s.jsxs)(a.p,{children:["In particular, ",(0,s.jsx)(a.code,{children:".scala-build/.bloop"})," contains Bloop project files and Bloop's own working directories, and ",(0,s.jsx)(a.code,{children:".scala-build/project_*"})," contains byte code, TASTy files, and generated sources."]}),"\n",(0,s.jsx)(a.h2,{id:"home-directory-for-scala-cli",children:"Home directory for scala-cli"}),"\n",(0,s.jsxs)(a.p,{children:["By default, Scala CLI uses the home directory to store Coursier caches, the config database, the working directory\nfor Bloop, and other internal files. To change this default behavior, set the ",(0,s.jsx)(a.code,{children:"SCALA_CLI_HOME"})," environment variable to point\nto an existing directory."]}),"\n",(0,s.jsx)(a.h2,{id:"preprocessing",children:"Preprocessing"}),"\n",(0,s.jsxs)(a.p,{children:["Some source code files that Scala CLI accepts cannot be passed as-is to ",(0,s.jsx)(a.code,{children:"scalac"}),".\nThis is the case for:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.code,{children:".sc"})," files, which can contain top-level definitions not accepted by ",(0,s.jsx)(a.code,{children:"scalac"})]}),"\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.code,{children:".scala"})," files that have uncommented ",(0,s.jsx)(a.code,{children:"using"})," directives"]}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["In all of those cases, Scala CLI parses the top of those files, and looks for ",(0,s.jsx)(a.code,{children:"using"})," directives.\nIt then replaces the non-commented ",(0,s.jsx)(a.code,{children:"using"})," directives with space characters."]}),"\n",(0,s.jsxs)(a.p,{children:["As described in ",(0,s.jsx)(a.a,{href:"/docs/guides/scripting/scripts",children:"Scripts"}),", ",(0,s.jsx)(a.code,{children:".sc"}),' files are also "wrapped" in an ',(0,s.jsx)(a.code,{children:"object"}),", and a ",(0,s.jsx)(a.code,{children:"main"})," class is added to them, so that ",(0,s.jsx)(a.code,{children:".sc"})," files can be run as-is, and can access arguments via a special ",(0,s.jsx)(a.code,{children:"args"})," variable."]}),"\n",(0,s.jsxs)(a.p,{children:["In all cases, the resulting processed sources are written in the ",(0,s.jsx)(a.code,{children:".scala-build/project_\u2026/src_generated"})," directory, and passed to Bloop from there."]}),"\n",(0,s.jsx)(a.h2,{id:"postprocessing",children:"Postprocessing"}),"\n",(0,s.jsxs)(a.p,{children:["Because of ",(0,s.jsx)(a.a,{href:"#preprocessing",children:"preprocessing"}),", some outputs we get from ",(0,s.jsx)(a.code,{children:"scalac"})," might not match the original sources.\nProcessed sources might have shifted line numbers (for ",(0,s.jsx)(a.code,{children:".sc"})," files, because\nof the wrapping in an ",(0,s.jsx)(a.code,{children:"object"}),"), or wrong relative paths (as they're written in ",(0,s.jsx)(a.code,{children:"src_generated"}),")."]}),"\n",(0,s.jsxs)(a.p,{children:["For those files, most outputs from ",(0,s.jsx)(a.code,{children:"scalac"})," are postprocessed, so they match the original sources.\nThat includes:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"diagnostics (errors/warnings, whose file names and line/column numbers are adjusted)"}),"\n",(0,s.jsx)(a.li,{children:"byte code (whole line numbers, reported in exception stack traces or used by debuggers, needs to be shifted)"}),"\n",(0,s.jsx)(a.li,{children:"semantic DBs (used for IDE support, whose path fields and positions need to be adjusted)"}),"\n",(0,s.jsx)(a.li,{children:"TASTy files (whose path fields need to be adjusted)"}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"runner",children:"Runner"}),"\n",(0,s.jsxs)(a.p,{children:["When running your code, if the code crashes, Scala CLI processes the stack traces of the exception to make them more readable.\nThis is achieved by adding a module (called ",(0,s.jsx)(a.code,{children:"runner"}),") to the class path, and this module is actually used as the entry point of your application.\nThe ",(0,s.jsxs)(a.a,{href:"https://github.com/VirtusLab/scala-cli/blob/60eae701abc74bdd634efa5157740578bd6c4162/modules/runner/src/main/scala/scala/cli/runner/Runner.scala",children:[(0,s.jsx)(a.code,{children:"Runner"})," class"]}),"\nof the ",(0,s.jsx)(a.code,{children:"runner"})," module starts your main class, catches any exceptions it might throw, and prints it."]}),"\n",(0,s.jsx)(a.h2,{id:"logging",children:"Logging"}),"\n",(0,s.jsxs)(a.p,{children:["To get a glimpse at what Scala CLI is doing, increase its verbosity with ",(0,s.jsx)(a.code,{children:"-v"}),".\nThe ",(0,s.jsx)(a.code,{children:"-v"})," option can be specified up to 3 times, which increases its verbosity level."]}),"\n",(0,s.jsx)(a.p,{children:"Using this option can be a good way to learn how Scala CLI works, though it's mostly meant to help debug issues.\nWhen reporting bugs, increasing the verbosity to its maximum level can be helpful."}),"\n",(0,s.jsx)(a.p,{children:"Here's some example output for the first verbosity level:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:"$ scala-cli . -v\nRunning /Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java -cp /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar scala.cli.runner.Runner test_sc\nHello\n"})}),"\n",(0,s.jsxs)(a.p,{children:["Next, this output shows how much more detail is available when ",(0,s.jsx)(a.code,{children:"-v"})," is specified twice:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:'$ scala-cli . -v -v\nFetching List(ch.epfl.scala:bloop-frontend_2.12:1.4.8-124-49a6348a)\nFound 127 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-frontend_2.12/1.4.8-124-49a6348a/bloop-frontend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/sockets/1.4.8-124-49a6348a/sockets-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-shared_2.12/1.4.8-124-49a6348a/bloop-shared_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-backend_2.12/1.4.8-124-49a6348a/bloop-backend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.4.8-124-49a6348a/bloop-config_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.20/scalaz-core_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/2.3.3/monix_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/1.1.3/scala-debug-adapter_2.12-1.1.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.0.0-M13/bsp4s_2.12-2.0.0-M13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc_2.12/1.3.0-M4%2B46-edbe573e/zinc_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/soc/directories/10/directories-10.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.4.4/test-agent-1.4.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.3/pprint_2.12-0.5.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.21.0%2B1-7f1080f1/com-microsoft-java-debug-core-0.21.0%2B1-7f1080f1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/nailgun-server/ee3c4343/nailgun-server-ee3c4343.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.20/scalaz-concurrent_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/2.0.16/coursier_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/2.0.16/coursier-cache_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.0.0/librarymanagement-ivy_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.6.1/brave-5.6.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.7.15/zipkin-sender-urlconnection-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-core_2.12-2.4.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-types_2.12/2.3.3/monix-types_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/2.3.3/monix-execution_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/2.3.3/monix-eval_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/2.3.3/monix-reactive_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.12/0.9.3/circe-core_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-derivation_2.12/0.9.0-M4/circe-derivation_2.12-0.9.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/lsp4s_2.12/0.2.0/lsp4s_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-persist_2.12/1.3.0-M4%2B46-edbe573e/zinc-persist_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-compile-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-compile-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classfile_2.12/1.3.0-M4%2B46-edbe573e/zinc-classfile_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.5/fansi_2.12-0.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.1.1/rxjava-2.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.0/reactive-streams-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.5/commons-io-2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.20/scalaz-effect_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-core_2.12/2.0.16/coursier-core_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/argonaut-shapeless_6.2_2.12/1.2.0/argonaut-shapeless_6.2_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-util_2.12/2.0.16/coursier-util_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/windows-ansi/windows-ansi/0.0.3/windows-ansi-0.0.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.0.0/librarymanagement-core_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.8.2/sjson-new-core_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd/ivy-2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.12.1/zipkin-2.12.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.7.15/zipkin-reporter-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.0.1/jctools-core-2.0.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.12/0.9.3/circe-numbers_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.1.0/cats-core_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/jsonrpc_2.12/0.2.0/jsonrpc_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.12/1.5.13/enumeratum_2.12-1.5.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-circe_2.12/1.5.17/enumeratum-circe_2.12-1.5.17.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-apiinfo_2.12/1.3.0-M4%2B46-edbe573e/zinc-apiinfo_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classpath_2.12/1.3.0-M4%2B46-edbe573e/zinc-classpath_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-interface/1.3.0-M4%2B46-edbe573e/compiler-interface-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.12/0.8.0-RC1/scalapb-runtime_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.2.0/io_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.2.2/util-logging_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.2.2/util-relation_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.0/sbinary_2.12-0.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.0.0/launcher-interface-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.5/scala-parser-combinators_2.12-1.0.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.2.2/util-control_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/concurrent-reference-hash-map/1.0.0/concurrent-reference-hash-map-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.3.0/scala-xml_2.12-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/argonaut/argonaut_2.12/6.2.5/argonaut_2.12-6.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.2.0/scala-collection-compat_2.12-2.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.18/jansi-1.18.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.11/scala-compiler-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.11/scala-reflect-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.0.0/util-position_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.0.0/util-cache_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/1.1.0/cats-macros_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/1.1.0/cats-kernel_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/machinist_2.12/0.6.2/machinist_2.12-0.6.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/2.5.0/scribe_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.12/0.9.3/circe-parser_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.12/1.5.9/enumeratum-macros_2.12-1.5.9.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-bridge_2.12/1.3.0-M4%2B46-edbe573e/compiler-bridge_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.2.2/util-interface-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.12/0.8.0-RC1/lenses_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/swoval/apple-file-events/1.3.2/apple-file-events-1.3.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.4/jline-2.14.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.3.6/disruptor-3.3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.8.2/sjson-new-scalajson_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.0/sjson-new-murmurhash_2.12-0.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe-macros_2.12/2.5.0/scribe-macros_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.0.2/perfolation_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.12/0.9.3/circe-jawn_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/spire-math/jawn-parser_2.12/0.11.1/jawn-parser_2.12-0.11.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation-macros_2.12/1.0.2/perfolation-macros_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar\n\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce.json\nListing BSP build targets\nCompiling project_940fb43dce with Bloop\nReceived onBuildTaskStart from bloop: TaskStartParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309123019\n message = "Compiling project_940fb43dce (1 Scala source)"\n dataKind = "compile-task"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"}}\n]\nCompiling project (Scala 3.0.2, JVM)\nReceived onBuildTaskFinish from bloop: TaskFinishParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309127394\n message = "Compiled \'project_940fb43dce\'"\n status = OK\n dataKind = "compile-report"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/","analysisOut":"file:///Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce/project_940fb43dce-analysis.bin"}\n]\nCompiled project (Scala 3.0.2, JVM)\nCompilation succeeded\nPost-processing class files of pre-processed sources\nOverwriting .scala/project_940fb43dce/classes/main/test$.class\nOverwriting .scala/project_940fb43dce/classes/main/test.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc$.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.class\nMoving semantic DBs around\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test.tasty\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.tasty\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_f643cb0bc2-test.json\nListing BSP build targets\nCompiling project_f643cb0bc2-test with Bloop\nCompilation succeeded\nPost-processing class files of pre-processed sources\nMoving semantic DBs around\n Running\n/Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java\n-cp\n/Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\nscala.cli.runner.Runner\ntest_sc\n\nexecve available\nHello\n'})}),"\n",(0,s.jsxs)(a.p,{children:["Finally, this example shows the detail that's available when ",(0,s.jsx)(a.code,{children:"-v"})," is specified three times:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:'$ scala-cli . -v -v -v\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nNo bloop daemon found on 127.0.0.1:8212\nStarting bloop server\nFetching List(ch.epfl.scala:bloop-frontend_2.12:1.4.8-124-49a6348a)\nFound 127 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-frontend_2.12/1.4.8-124-49a6348a/bloop-frontend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/sockets/1.4.8-124-49a6348a/sockets-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-shared_2.12/1.4.8-124-49a6348a/bloop-shared_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-backend_2.12/1.4.8-124-49a6348a/bloop-backend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.4.8-124-49a6348a/bloop-config_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.20/scalaz-core_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/2.3.3/monix_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/1.1.3/scala-debug-adapter_2.12-1.1.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.0.0-M13/bsp4s_2.12-2.0.0-M13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc_2.12/1.3.0-M4%2B46-edbe573e/zinc_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/soc/directories/10/directories-10.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.4.4/test-agent-1.4.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.3/pprint_2.12-0.5.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.21.0%2B1-7f1080f1/com-microsoft-java-debug-core-0.21.0%2B1-7f1080f1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/nailgun-server/ee3c4343/nailgun-server-ee3c4343.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.20/scalaz-concurrent_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/2.0.16/coursier_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/2.0.16/coursier-cache_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.0.0/librarymanagement-ivy_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.6.1/brave-5.6.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.7.15/zipkin-sender-urlconnection-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-core_2.12-2.4.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-types_2.12/2.3.3/monix-types_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/2.3.3/monix-execution_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/2.3.3/monix-eval_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/2.3.3/monix-reactive_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.12/0.9.3/circe-core_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-derivation_2.12/0.9.0-M4/circe-derivation_2.12-0.9.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/lsp4s_2.12/0.2.0/lsp4s_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-persist_2.12/1.3.0-M4%2B46-edbe573e/zinc-persist_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-compile-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-compile-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classfile_2.12/1.3.0-M4%2B46-edbe573e/zinc-classfile_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.5/fansi_2.12-0.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.1.1/rxjava-2.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.0/reactive-streams-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.5/commons-io-2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.20/scalaz-effect_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-core_2.12/2.0.16/coursier-core_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/argonaut-shapeless_6.2_2.12/1.2.0/argonaut-shapeless_6.2_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-util_2.12/2.0.16/coursier-util_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/windows-ansi/windows-ansi/0.0.3/windows-ansi-0.0.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.0.0/librarymanagement-core_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.8.2/sjson-new-core_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd/ivy-2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.12.1/zipkin-2.12.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.7.15/zipkin-reporter-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.0.1/jctools-core-2.0.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.12/0.9.3/circe-numbers_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.1.0/cats-core_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/jsonrpc_2.12/0.2.0/jsonrpc_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.12/1.5.13/enumeratum_2.12-1.5.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-circe_2.12/1.5.17/enumeratum-circe_2.12-1.5.17.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-apiinfo_2.12/1.3.0-M4%2B46-edbe573e/zinc-apiinfo_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classpath_2.12/1.3.0-M4%2B46-edbe573e/zinc-classpath_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-interface/1.3.0-M4%2B46-edbe573e/compiler-interface-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.12/0.8.0-RC1/scalapb-runtime_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.2.0/io_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.2.2/util-logging_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.2.2/util-relation_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.0/sbinary_2.12-0.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.0.0/launcher-interface-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.5/scala-parser-combinators_2.12-1.0.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.2.2/util-control_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/concurrent-reference-hash-map/1.0.0/concurrent-reference-hash-map-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.3.0/scala-xml_2.12-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/argonaut/argonaut_2.12/6.2.5/argonaut_2.12-6.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.2.0/scala-collection-compat_2.12-2.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.18/jansi-1.18.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.11/scala-compiler-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.11/scala-reflect-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.0.0/util-position_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.0.0/util-cache_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/1.1.0/cats-macros_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/1.1.0/cats-kernel_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/machinist_2.12/0.6.2/machinist_2.12-0.6.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/2.5.0/scribe_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.12/0.9.3/circe-parser_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.12/1.5.9/enumeratum-macros_2.12-1.5.9.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-bridge_2.12/1.3.0-M4%2B46-edbe573e/compiler-bridge_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.2.2/util-interface-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.12/0.8.0-RC1/lenses_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/swoval/apple-file-events/1.3.2/apple-file-events-1.3.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.4/jline-2.14.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.3.6/disruptor-3.3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.8.2/sjson-new-scalajson_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.0/sjson-new-murmurhash_2.12-0.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe-macros_2.12/2.5.0/scribe-macros_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.0.2/perfolation_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.12/0.9.3/circe-jawn_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/spire-math/jawn-parser_2.12/0.11.1/jawn-parser_2.12-0.11.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation-macros_2.12/1.0.2/perfolation-macros_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar\n\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nUnable to load nailgun-version.properties.\nNGServer [UNKNOWN] started on address /127.0.0.1 port 8212.\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nBloop server started\nOpening BSP connection with bloop\nBloop BSP connection waiting at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nnailgun debug: Sending arguments \'--protocol local --socket /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\' to Nailgun server\nnailgun debug: Sending environment variables to Nailgun server\nnailgun debug: Sending working directory /Users/alexandre/projects/scala-cli/test/.scala to Nailgun server\nnailgun debug: Sending command to bsp Nailgun server\nnailgun debug: Finished sending command information to Nailgun server\nnailgun debug: Starting thread to read stdin...\n[W] Internal error in session\njava.io.EOFException\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\n\tat java.base/java.io.DataInputStream.readInt(DataInputStream.java:397)\n\tat com.martiansoftware.nailgun.NGCommunicator.readCommandContext(NGCommunicator.java:140)\n\tat com.martiansoftware.nailgun.NGSession.run(NGSession.java:197)\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 opened\nConnected to Bloop via BSP at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nConnected to Bloop via BSP at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nnailgun debug: Received action Print([B@1c79f3a7) from Nailgun server\nThe server is listening for incoming connections at local:///Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511...\nnailgun debug: Received action Print([B@274c0297) from Nailgun server\nAccepted incoming BSP client connection at local:///Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nSending buildInitialize BSP command to Bloop\nnailgun debug: Received action Print([B@7af46130) from Nailgun server\nrequest received: build/initialize\nnailgun debug: Received action Print([B@29f9d46d) from Nailgun server\nBSP initialization handshake complete.\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce.json\nListing BSP build targets\nCompiling project_940fb43dce with Bloop\nReceived onBuildTaskStart from bloop: TaskStartParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309020072\n message = "Compiling project_940fb43dce (1 Scala source)"\n dataKind = "compile-task"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"}}\n]\nCompiling project (Scala 3.0.2, JVM)\nReceived onBuildTaskFinish from bloop: TaskFinishParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309023968\n message = "Compiled \'project_940fb43dce\'"\n status = OK\n dataKind = "compile-report"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/","analysisOut":"file:///Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce/project_940fb43dce-analysis.bin"}\n]\nCompiled project (Scala 3.0.2, JVM)\nCompilation succeeded\nPost-processing class files of pre-processed sources\nOverwriting .scala/project_940fb43dce/classes/main/test$.class\nOverwriting .scala/project_940fb43dce/classes/main/test.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc$.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.class\nMoving semantic DBs around\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test.tasty\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.tasty\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_f643cb0bc2-test.json\nListing BSP build targets\nCompiling project_f643cb0bc2-test with Bloop\nCompilation succeeded\nPost-processing class files of pre-processed sources\nMoving semantic DBs around\n Running\n/Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java\n-cp\n/Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\nscala.cli.runner.Runner\ntest_sc\n\nexecve available\nHello\nClient in /Users/alexandre/projects/scala-cli/test/.scala/.bloop disconnected with a \'SocketError\' event. Cancelling tasks...\n'})}),"\n",(0,s.jsxs)(a.p,{children:["If you want to understand how Scala CLI works, the ",(0,s.jsx)(a.code,{children:"-v"})," option shows you the details of what's happening when your command is run."]})]})}function v(e={}){const{wrapper:a}={...(0,n.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,a,r)=>{r.d(a,{Z:()=>t,a:()=>i});var s=r(7294);const n={},o=s.createContext(n);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function t(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/467d2bbe.cc49bd70.js b/assets/js/467d2bbe.cc49bd70.js deleted file mode 100644 index ce1e622473..0000000000 --- a/assets/js/467d2bbe.cc49bd70.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2699],{9217:(e,a,r)=>{r.r(a),r.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>v,frontMatter:()=>o,metadata:()=>t,toc:()=>l});var s=r(5893),n=r(1151);const o={title:"Internals",sidebar_position:49},i=void 0,t={id:"guides/advanced/internals",title:"Internals",description:"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.",source:"@site/docs/guides/advanced/internals.md",sourceDirName:"guides/advanced",slug:"/guides/advanced/internals",permalink:"/docs/guides/advanced/internals",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/advanced/internals.md",tags:[],version:"current",sidebarPosition:49,frontMatter:{title:"Internals",sidebar_position:49},sidebar:"tutorialSidebar",previous:{title:"Java properties",permalink:"/docs/guides/advanced/java-properties"},next:{title:"SBT and Mill \u26a1\ufe0f",permalink:"/docs/guides/power/sbt-mill"}},c={},l=[{value:"Bloop",id:"bloop",level:3},{value:".scala-build directory",id:"scala-build-directory",level:3},{value:"Home directory for scala-cli",id:"home-directory-for-scala-cli",level:2},{value:"Preprocessing",id:"preprocessing",level:2},{value:"Postprocessing",id:"postprocessing",level:2},{value:"Runner",id:"runner",level:2},{value:"Logging",id:"logging",level:2}];function p(e){const a={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.p,{children:"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.\nThis page describes what happens under the hood when you run a Scala CLI command."}),"\n",(0,s.jsx)(a.h3,{id:"bloop",children:"Bloop"}),"\n",(0,s.jsxs)(a.p,{children:["Scala CLI uses Bloop to compile code.\nThat way, it doesn't interface directly with ",(0,s.jsx)(a.code,{children:"scalac"}),", and newly released Scala versions work out of the box: there's no need to update Scala CLI itself."]}),"\n",(0,s.jsxs)(a.p,{children:['Scala CLI connects to Bloop on the local machine using a domain socket. That domain socket\nlives under the "Bloop daemon directory", that is OS-dependent, and whose path is printed\nby ',(0,s.jsx)(a.code,{children:"scala-cli directories"}),".\nIf no Bloop instance is running, Scala CLI fetches Bloop if necessary (via Coursier), and starts it."]}),"\n",(0,s.jsxs)(a.p,{children:["Once it\u2019s connected to Bloop, Scala CLI writes a Bloop project file under a ",(0,s.jsx)(a.code,{children:".scala/.bloop"})," directory. This file describes the current Scala CLI project, including its Scala version, dependencies, compiler plugins and options, etc."]}),"\n",(0,s.jsxs)(a.p,{children:["It then initiates a ",(0,s.jsx)(a.a,{href:"https://github.com/build-server-protocol/build-server-protocol",children:"BSP"})," connection with Bloop.\nBSP communication happens on a domain socket too, different than the one above."]}),"\n",(0,s.jsx)(a.p,{children:"That BSP connection then allows Scala CLI to ask Bloop to compile sources, and get diagnostics (warnings / errors) and the compiled byte code."}),"\n",(0,s.jsxs)(a.h3,{id:"scala-build-directory",children:[(0,s.jsx)(a.code,{children:".scala-build"})," directory"]}),"\n",(0,s.jsxs)(a.p,{children:["In the directory where you run your Scala CLI commands, Scala CLI creates a subdirectory named ",(0,s.jsx)(a.code,{children:".scala-build"}),", where it writes:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"#bloop",children:"Bloop project files"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"#preprocessing",children:"generated sources"})}),"\n",(0,s.jsx)(a.li,{children:"byte code and TASTy files that result from compiling the user sources"}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["The typical content of the ",(0,s.jsx)(a.code,{children:".scala-build"})," directory looks like this:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:".scala-build\n\u251c\u2500\u2500 .bloop\n\u2502\xa0\xa0 \u251c\u2500\u2500 project_940fb43dce\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 bloop-internal-classes\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 main-ZWP3jgllS6y93V4HoGYa2g==\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test$.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.tasty\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc$.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc.class\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 test_sc.tasty\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 project_940fb43dce-analysis.bin\n\u2502\xa0\xa0 \u251c\u2500\u2500 project_940fb43dce.json\n\u2502\xa0\xa0 \u2514\u2500\u2500 project_f643cb0bc2-test.json\n\u2514\u2500\u2500 project_940fb43dce\n \xa0\xa0 \u251c\u2500\u2500 classes\n \xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 main\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test$.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test.tasty\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc$.class\n \xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 test_sc.class\n \xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 test_sc.tasty\n \xa0\xa0 \u2514\u2500\u2500 src_generated\n \xa0\xa0 \u2514\u2500\u2500 main\n \xa0\xa0 \u2514\u2500\u2500 test.scala\n"})}),"\n",(0,s.jsxs)(a.p,{children:["In particular, ",(0,s.jsx)(a.code,{children:".scala-build/.bloop"})," contains Bloop project files and Bloop's own working directories, and ",(0,s.jsx)(a.code,{children:".scala-build/project_*"})," contains byte code, TASTy files, and generated sources."]}),"\n",(0,s.jsx)(a.h2,{id:"home-directory-for-scala-cli",children:"Home directory for scala-cli"}),"\n",(0,s.jsxs)(a.p,{children:["By default, Scala CLI uses the home directory to store Coursier caches, the config database, the working directory\nfor Bloop, and other internal files. To change this default behavior, set the ",(0,s.jsx)(a.code,{children:"SCALA_CLI_HOME"})," environment variable to point\nto an existing directory."]}),"\n",(0,s.jsx)(a.h2,{id:"preprocessing",children:"Preprocessing"}),"\n",(0,s.jsxs)(a.p,{children:["Some source code files that Scala CLI accepts cannot be passed as-is to ",(0,s.jsx)(a.code,{children:"scalac"}),".\nThis is the case for:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.code,{children:".sc"})," files, which can contain top-level definitions not accepted by ",(0,s.jsx)(a.code,{children:"scalac"})]}),"\n",(0,s.jsxs)(a.li,{children:[(0,s.jsx)(a.code,{children:".scala"})," files that have uncommented ",(0,s.jsx)(a.code,{children:"using"})," directives"]}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["In all of those cases, Scala CLI parses the top of those files, and looks for ",(0,s.jsx)(a.code,{children:"using"})," directives.\nIt then replaces the non-commented ",(0,s.jsx)(a.code,{children:"using"})," directives with space characters."]}),"\n",(0,s.jsxs)(a.p,{children:["As described in ",(0,s.jsx)(a.a,{href:"/docs/guides/scripting/scripts",children:"Scripts"}),", ",(0,s.jsx)(a.code,{children:".sc"}),' files are also "wrapped" in an ',(0,s.jsx)(a.code,{children:"object"}),", and a ",(0,s.jsx)(a.code,{children:"main"})," class is added to them, so that ",(0,s.jsx)(a.code,{children:".sc"})," files can be run as-is, and can access arguments via a special ",(0,s.jsx)(a.code,{children:"args"})," variable."]}),"\n",(0,s.jsxs)(a.p,{children:["In all cases, the resulting processed sources are written in the ",(0,s.jsx)(a.code,{children:".scala-build/project_\u2026/src_generated"})," directory, and passed to Bloop from there."]}),"\n",(0,s.jsx)(a.h2,{id:"postprocessing",children:"Postprocessing"}),"\n",(0,s.jsxs)(a.p,{children:["Because of ",(0,s.jsx)(a.a,{href:"#preprocessing",children:"preprocessing"}),", some outputs we get from ",(0,s.jsx)(a.code,{children:"scalac"})," might not match the original sources.\nProcessed sources might have shifted line numbers (for ",(0,s.jsx)(a.code,{children:".sc"})," files, because\nof the wrapping in an ",(0,s.jsx)(a.code,{children:"object"}),"), or wrong relative paths (as they're written in ",(0,s.jsx)(a.code,{children:"src_generated"}),")."]}),"\n",(0,s.jsxs)(a.p,{children:["For those files, most outputs from ",(0,s.jsx)(a.code,{children:"scalac"})," are postprocessed, so they match the original sources.\nThat includes:"]}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:"diagnostics (errors/warnings, whose file names and line/column numbers are adjusted)"}),"\n",(0,s.jsx)(a.li,{children:"byte code (whole line numbers, reported in exception stack traces or used by debuggers, needs to be shifted)"}),"\n",(0,s.jsx)(a.li,{children:"semantic DBs (used for IDE support, whose path fields and positions need to be adjusted)"}),"\n",(0,s.jsx)(a.li,{children:"TASTy files (whose path fields need to be adjusted)"}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"runner",children:"Runner"}),"\n",(0,s.jsxs)(a.p,{children:["When running your code, if the code crashes, Scala CLI processes the stack traces of the exception to make them more readable.\nThis is achieved by adding a module (called ",(0,s.jsx)(a.code,{children:"runner"}),") to the class path, and this module is actually used as the entry point of your application.\nThe ",(0,s.jsxs)(a.a,{href:"https://github.com/VirtusLab/scala-cli/blob/60eae701abc74bdd634efa5157740578bd6c4162/modules/runner/src/main/scala/scala/cli/runner/Runner.scala",children:[(0,s.jsx)(a.code,{children:"Runner"})," class"]}),"\nof the ",(0,s.jsx)(a.code,{children:"runner"})," module starts your main class, catches any exceptions it might throw, and prints it."]}),"\n",(0,s.jsx)(a.h2,{id:"logging",children:"Logging"}),"\n",(0,s.jsxs)(a.p,{children:["To get a glimpse at what Scala CLI is doing, increase its verbosity with ",(0,s.jsx)(a.code,{children:"-v"}),".\nThe ",(0,s.jsx)(a.code,{children:"-v"})," option can be specified up to 3 times, which increases its verbosity level."]}),"\n",(0,s.jsx)(a.p,{children:"Using this option can be a good way to learn how Scala CLI works, though it's mostly meant to help debug issues.\nWhen reporting bugs, increasing the verbosity to its maximum level can be helpful."}),"\n",(0,s.jsx)(a.p,{children:"Here's some example output for the first verbosity level:"}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:"$ scala-cli . -v\nRunning /Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java -cp /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar scala.cli.runner.Runner test_sc\nHello\n"})}),"\n",(0,s.jsxs)(a.p,{children:["Next, this output shows how much more detail is available when ",(0,s.jsx)(a.code,{children:"-v"})," is specified twice:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:'$ scala-cli . -v -v\nFetching List(ch.epfl.scala:bloop-frontend_2.12:1.4.8-124-49a6348a)\nFound 127 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-frontend_2.12/1.4.8-124-49a6348a/bloop-frontend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/sockets/1.4.8-124-49a6348a/sockets-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-shared_2.12/1.4.8-124-49a6348a/bloop-shared_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-backend_2.12/1.4.8-124-49a6348a/bloop-backend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.4.8-124-49a6348a/bloop-config_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.20/scalaz-core_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/2.3.3/monix_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/1.1.3/scala-debug-adapter_2.12-1.1.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.0.0-M13/bsp4s_2.12-2.0.0-M13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc_2.12/1.3.0-M4%2B46-edbe573e/zinc_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/soc/directories/10/directories-10.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.4.4/test-agent-1.4.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.3/pprint_2.12-0.5.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.21.0%2B1-7f1080f1/com-microsoft-java-debug-core-0.21.0%2B1-7f1080f1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/nailgun-server/ee3c4343/nailgun-server-ee3c4343.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.20/scalaz-concurrent_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/2.0.16/coursier_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/2.0.16/coursier-cache_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.0.0/librarymanagement-ivy_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.6.1/brave-5.6.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.7.15/zipkin-sender-urlconnection-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-core_2.12-2.4.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-types_2.12/2.3.3/monix-types_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/2.3.3/monix-execution_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/2.3.3/monix-eval_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/2.3.3/monix-reactive_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.12/0.9.3/circe-core_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-derivation_2.12/0.9.0-M4/circe-derivation_2.12-0.9.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/lsp4s_2.12/0.2.0/lsp4s_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-persist_2.12/1.3.0-M4%2B46-edbe573e/zinc-persist_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-compile-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-compile-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classfile_2.12/1.3.0-M4%2B46-edbe573e/zinc-classfile_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.5/fansi_2.12-0.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.1.1/rxjava-2.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.0/reactive-streams-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.5/commons-io-2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.20/scalaz-effect_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-core_2.12/2.0.16/coursier-core_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/argonaut-shapeless_6.2_2.12/1.2.0/argonaut-shapeless_6.2_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-util_2.12/2.0.16/coursier-util_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/windows-ansi/windows-ansi/0.0.3/windows-ansi-0.0.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.0.0/librarymanagement-core_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.8.2/sjson-new-core_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd/ivy-2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.12.1/zipkin-2.12.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.7.15/zipkin-reporter-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.0.1/jctools-core-2.0.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.12/0.9.3/circe-numbers_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.1.0/cats-core_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/jsonrpc_2.12/0.2.0/jsonrpc_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.12/1.5.13/enumeratum_2.12-1.5.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-circe_2.12/1.5.17/enumeratum-circe_2.12-1.5.17.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-apiinfo_2.12/1.3.0-M4%2B46-edbe573e/zinc-apiinfo_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classpath_2.12/1.3.0-M4%2B46-edbe573e/zinc-classpath_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-interface/1.3.0-M4%2B46-edbe573e/compiler-interface-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.12/0.8.0-RC1/scalapb-runtime_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.2.0/io_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.2.2/util-logging_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.2.2/util-relation_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.0/sbinary_2.12-0.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.0.0/launcher-interface-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.5/scala-parser-combinators_2.12-1.0.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.2.2/util-control_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/concurrent-reference-hash-map/1.0.0/concurrent-reference-hash-map-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.3.0/scala-xml_2.12-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/argonaut/argonaut_2.12/6.2.5/argonaut_2.12-6.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.2.0/scala-collection-compat_2.12-2.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.18/jansi-1.18.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.11/scala-compiler-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.11/scala-reflect-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.0.0/util-position_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.0.0/util-cache_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/1.1.0/cats-macros_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/1.1.0/cats-kernel_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/machinist_2.12/0.6.2/machinist_2.12-0.6.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/2.5.0/scribe_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.12/0.9.3/circe-parser_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.12/1.5.9/enumeratum-macros_2.12-1.5.9.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-bridge_2.12/1.3.0-M4%2B46-edbe573e/compiler-bridge_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.2.2/util-interface-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.12/0.8.0-RC1/lenses_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/swoval/apple-file-events/1.3.2/apple-file-events-1.3.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.4/jline-2.14.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.3.6/disruptor-3.3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.8.2/sjson-new-scalajson_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.0/sjson-new-murmurhash_2.12-0.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe-macros_2.12/2.5.0/scribe-macros_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.0.2/perfolation_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.12/0.9.3/circe-jawn_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/spire-math/jawn-parser_2.12/0.11.1/jawn-parser_2.12-0.11.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation-macros_2.12/1.0.2/perfolation-macros_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar\n\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce.json\nListing BSP build targets\nCompiling project_940fb43dce with Bloop\nReceived onBuildTaskStart from bloop: TaskStartParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309123019\n message = "Compiling project_940fb43dce (1 Scala source)"\n dataKind = "compile-task"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"}}\n]\nCompiling project (Scala 3.0.2, JVM)\nReceived onBuildTaskFinish from bloop: TaskFinishParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309127394\n message = "Compiled \'project_940fb43dce\'"\n status = OK\n dataKind = "compile-report"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/","analysisOut":"file:///Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce/project_940fb43dce-analysis.bin"}\n]\nCompiled project (Scala 3.0.2, JVM)\nCompilation succeeded\nPost-processing class files of pre-processed sources\nOverwriting .scala/project_940fb43dce/classes/main/test$.class\nOverwriting .scala/project_940fb43dce/classes/main/test.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc$.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.class\nMoving semantic DBs around\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test.tasty\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.tasty\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_f643cb0bc2-test.json\nListing BSP build targets\nCompiling project_f643cb0bc2-test with Bloop\nCompilation succeeded\nPost-processing class files of pre-processed sources\nMoving semantic DBs around\n Running\n/Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java\n-cp\n/Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\nscala.cli.runner.Runner\ntest_sc\n\nexecve available\nHello\n'})}),"\n",(0,s.jsxs)(a.p,{children:["Finally, this example shows the detail that's available when ",(0,s.jsx)(a.code,{children:"-v"})," is specified three times:"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{className:"language-text",children:'$ scala-cli . -v -v -v\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nNo bloop daemon found on 127.0.0.1:8212\nStarting bloop server\nFetching List(ch.epfl.scala:bloop-frontend_2.12:1.4.8-124-49a6348a)\nFound 127 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-frontend_2.12/1.4.8-124-49a6348a/bloop-frontend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.13/scala-library-2.12.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/sockets/1.4.8-124-49a6348a/sockets-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-shared_2.12/1.4.8-124-49a6348a/bloop-shared_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-backend_2.12/1.4.8-124-49a6348a/bloop-backend_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bloop-config_2.12/1.4.8-124-49a6348a/bloop-config_2.12-1.4.8-124-49a6348a.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.20/scalaz-core_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/2.3.3/monix_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/1.1.3/scala-debug-adapter_2.12-1.1.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.0.0-M13/bsp4s_2.12-2.0.0-M13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc_2.12/1.3.0-M4%2B46-edbe573e/zinc_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/soc/directories/10/directories-10.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.4.4/test-agent-1.4.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.3/pprint_2.12-0.5.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.21.0%2B1-7f1080f1/com-microsoft-java-debug-core-0.21.0%2B1-7f1080f1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/nailgun-server/ee3c4343/nailgun-server-ee3c4343.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.20/scalaz-concurrent_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/2.0.16/coursier_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/2.0.16/coursier-cache_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.0.0/librarymanagement-ivy_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.6.1/brave-5.6.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.7.15/zipkin-sender-urlconnection-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-core_2.12-2.4.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-types_2.12/2.3.3/monix-types_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/2.3.3/monix-execution_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/2.3.3/monix-eval_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/2.3.3/monix-reactive_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.12/0.9.3/circe-core_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-derivation_2.12/0.9.0-M4/circe-derivation_2.12-0.9.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/lsp4s_2.12/0.2.0/lsp4s_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-persist_2.12/1.3.0-M4%2B46-edbe573e/zinc-persist_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-compile-core_2.12/1.3.0-M4%2B46-edbe573e/zinc-compile-core_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classfile_2.12/1.3.0-M4%2B46-edbe573e/zinc-classfile_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.5/fansi_2.12-0.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.1.1/rxjava-2.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.0/reactive-streams-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.5/commons-io-2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.20/scalaz-effect_2.12-7.2.20.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-core_2.12/2.0.16/coursier-core_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/argonaut-shapeless_6.2_2.12/1.2.0/argonaut-shapeless_6.2_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-util_2.12/2.0.16/coursier-util_2.12-2.0.16.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/windows-ansi/windows-ansi/0.0.3/windows-ansi-0.0.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.0.0/librarymanagement-core_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.8.2/sjson-new-core_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd/ivy-2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.12.1/zipkin-2.12.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.7.15/zipkin-reporter-2.7.15.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.0.1/jctools-core-2.0.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.12/0.9.3/circe-numbers_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.1.0/cats-core_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalameta/jsonrpc_2.12/0.2.0/jsonrpc_2.12-0.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.12/1.5.13/enumeratum_2.12-1.5.13.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-circe_2.12/1.5.17/enumeratum-circe_2.12-1.5.17.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-apiinfo_2.12/1.3.0-M4%2B46-edbe573e/zinc-apiinfo_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/zinc-classpath_2.12/1.3.0-M4%2B46-edbe573e/zinc-classpath_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-interface/1.3.0-M4%2B46-edbe573e/compiler-interface-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/scalapb-runtime_2.12/0.8.0-RC1/scalapb-runtime_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.2.0/io_2.12-1.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.2.2/util-logging_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.2.2/util-relation_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.0/sbinary_2.12-0.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.0.0/launcher-interface-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.5/scala-parser-combinators_2.12-1.0.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.2.2/util-control_2.12-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/concurrent-reference-hash-map/1.0.0/concurrent-reference-hash-map-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.3.0/scala-xml_2.12-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/argonaut/argonaut_2.12/6.2.5/argonaut_2.12-6.2.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.12/2.2.0/scala-collection-compat_2.12-2.2.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.18/jansi-1.18.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.11/scala-compiler-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.11/scala-reflect-2.12.11.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.0.0/util-position_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.0.0/util-cache_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/1.1.0/cats-macros_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/1.1.0/cats-kernel_2.12-1.1.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/machinist_2.12/0.6.2/machinist_2.12-0.6.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/2.5.0/scribe_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.12/0.9.3/circe-parser_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.12/1.5.9/enumeratum-macros_2.12-1.5.9.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/compiler-bridge_2.12/1.3.0-M4%2B46-edbe573e/compiler-bridge_2.12-1.3.0-M4%2B46-edbe573e.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.2.2/util-interface-1.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/thesamet/scalapb/lenses_2.12/0.8.0-RC1/lenses_2.12-0.8.0-RC1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/swoval/apple-file-events/1.3.2/apple-file-events-1.3.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.4/jline-2.14.4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.3.6/disruptor-3.3.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.8.2/sjson-new-scalajson_2.12-0.8.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.0/sjson-new-murmurhash_2.12-0.8.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe-macros_2.12/2.5.0/scribe-macros_2.12-2.5.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.0.2/perfolation_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.12/0.9.3/circe-jawn_2.12-0.9.3.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/spire-math/jawn-parser_2.12/0.11.1/jawn-parser_2.12-0.11.1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation-macros_2.12/1.0.2/perfolation-macros_2.12-1.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar\n\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nUnable to load nailgun-version.properties.\nNGServer [UNKNOWN] started on address /127.0.0.1 port 8212.\nAttempting a connection to bloop server 127.0.0.1:8212 ...\nBloop server started\nOpening BSP connection with bloop\nBloop BSP connection waiting at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nnailgun debug: Sending arguments \'--protocol local --socket /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\' to Nailgun server\nnailgun debug: Sending environment variables to Nailgun server\nnailgun debug: Sending working directory /Users/alexandre/projects/scala-cli/test/.scala to Nailgun server\nnailgun debug: Sending command to bsp Nailgun server\nnailgun debug: Finished sending command information to Nailgun server\nnailgun debug: Starting thread to read stdin...\n[W] Internal error in session\njava.io.EOFException\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\n\tat java.base/java.io.DataInputStream.readInt(DataInputStream.java:397)\n\tat com.martiansoftware.nailgun.NGCommunicator.readCommandContext(NGCommunicator.java:140)\n\tat com.martiansoftware.nailgun.NGSession.run(NGSession.java:197)\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 not found, waiting 100 milliseconds\nBSP connection at /Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511 opened\nConnected to Bloop via BSP at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nConnected to Bloop via BSP at local:/Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nnailgun debug: Received action Print([B@1c79f3a7) from Nailgun server\nThe server is listening for incoming connections at local:///Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511...\nnailgun debug: Received action Print([B@274c0297) from Nailgun server\nAccepted incoming BSP client connection at local:///Users/alexandre/Library/Caches/ScalaCli/bsp-sockets/proc-80511\nSending buildInitialize BSP command to Bloop\nnailgun debug: Received action Print([B@7af46130) from Nailgun server\nrequest received: build/initialize\nnailgun debug: Received action Print([B@29f9d46d) from Nailgun server\nBSP initialization handshake complete.\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce.json\nListing BSP build targets\nCompiling project_940fb43dce with Bloop\nReceived onBuildTaskStart from bloop: TaskStartParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309020072\n message = "Compiling project_940fb43dce (1 Scala source)"\n dataKind = "compile-task"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"}}\n]\nCompiling project (Scala 3.0.2, JVM)\nReceived onBuildTaskFinish from bloop: TaskFinishParams [\n taskId = TaskId [\n id = "1"\n parents = null\n ]\n eventTime = 1634309023968\n message = "Compiled \'project_940fb43dce\'"\n status = OK\n dataKind = "compile-report"\n data = {"target":{"uri":"file:/Users/alexandre/projects/scala-cli/test/.scala/?id=project_940fb43dce"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/","analysisOut":"file:///Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_940fb43dce/project_940fb43dce-analysis.bin"}\n]\nCompiled project (Scala 3.0.2, JVM)\nCompilation succeeded\nPost-processing class files of pre-processed sources\nOverwriting .scala/project_940fb43dce/classes/main/test$.class\nOverwriting .scala/project_940fb43dce/classes/main/test.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc$.class\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.class\nMoving semantic DBs around\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test.tasty\nReading TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nParsed TASTy file /Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main/test_sc.tasty\nOverwriting .scala/project_940fb43dce/classes/main/test_sc.tasty\nFetching List(org.scala-lang::scala3-compiler:3.0.2), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 13 artifacts:\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.2/scala3-compiler_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.2/scala3-interfaces-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.2/tasty-core_3-3.0.2.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar\n /Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar\n\nFetching List(org.scala-lang::scala3-library::3.0.2, org.virtuslab.scala-cli::runner:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFetching List(org.virtuslab.scala-cli:stubs:0.0.5+43-g60eae701-SNAPSHOT), adding List(https://oss.sonatype.org/content/repositories/snapshots, ivy:file:///Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7//[defaultPattern])\nFound 1 artifacts:\n /Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\n\nWriting bloop project in /Users/alexandre/projects/scala-cli/test/.scala/.bloop/project_f643cb0bc2-test.json\nListing BSP build targets\nCompiling project_f643cb0bc2-test with Bloop\nCompilation succeeded\nPost-processing class files of pre-processed sources\nMoving semantic DBs around\n Running\n/Users/alexandre/Library/Caches/Coursier/jvm/adopt@1.11.0-7/Contents/Home/bin/java\n-cp\n/Users/alexandre/projects/scala-cli/test/.scala/project_940fb43dce/classes/main:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.2/scala3-library_3-3.0.2.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/runner_3/0.0.5+43-g60eae701-SNAPSHOT/jars/runner_3.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/oss.sonatype.org/content/repositories/snapshots/org/virtuslab/pretty-stacktraces_3/0.0.0%2B27-b9d69198-SNAPSHOT/pretty-stacktraces_3-0.0.0%2B27-b9d69198-SNAPSHOT.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-tasty-inspector_3/3.0.0/scala3-tasty-inspector_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.0/scala3-compiler_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.0/scala3-interfaces-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.0/tasty-core_3-3.0.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar:/Users/alexandre/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar:/Users/alexandre/Library/Caches/ScalaCli/local-repo/v0.0.5-43-60eae7/org.virtuslab.scala-cli/stubs/0.0.5+43-g60eae701-SNAPSHOT/jars/stubs.jar\nscala.cli.runner.Runner\ntest_sc\n\nexecve available\nHello\nClient in /Users/alexandre/projects/scala-cli/test/.scala/.bloop disconnected with a \'SocketError\' event. Cancelling tasks...\n'})}),"\n",(0,s.jsxs)(a.p,{children:["If you want to understand how Scala CLI works, the ",(0,s.jsx)(a.code,{children:"-v"})," option shows you the details of what's happening when your command is run."]})]})}function v(e={}){const{wrapper:a}={...(0,n.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,a,r)=>{r.d(a,{Z:()=>t,a:()=>i});var s=r(7294);const n={},o=s.createContext(n);function i(e){const a=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function t(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.06e0876a.js b/assets/js/935f2afb.06e0876a.js deleted file mode 100644 index ec044459c0..0000000000 --- a/assets/js/935f2afb.06e0876a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/docs/overview","docId":"overview","unlisted":false},{"type":"link","label":"Getting started","href":"/docs/getting_started","docId":"getting_started","unlisted":false},{"type":"category","label":"Commands","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/docs/commands/basics","docId":"commands/basics","unlisted":false},{"type":"link","label":"Compile","href":"/docs/commands/compile","docId":"commands/compile","unlisted":false},{"type":"link","label":"Run","href":"/docs/commands/run","docId":"commands/run","unlisted":false},{"type":"link","label":"Test","href":"/docs/commands/test","docId":"commands/test","unlisted":false},{"type":"link","label":"REPL","href":"/docs/commands/repl","docId":"commands/repl","unlisted":false},{"type":"link","label":"IDE Setup","href":"/docs/commands/setup-ide","docId":"commands/setup-ide","unlisted":false},{"type":"link","label":"Format","href":"/docs/commands/fmt","docId":"commands/fmt","unlisted":false},{"type":"link","label":"Clean","href":"/docs/commands/clean","docId":"commands/clean","unlisted":false},{"type":"link","label":"Config","href":"/docs/commands/config","docId":"commands/config","unlisted":false},{"type":"link","label":"Doc","href":"/docs/commands/doc","docId":"commands/doc","unlisted":false},{"type":"link","label":"Completions","href":"/docs/commands/completions","docId":"commands/completions","unlisted":false},{"type":"link","label":"Version","href":"/docs/commands/version","docId":"commands/version","unlisted":false},{"type":"link","label":"Shebang","href":"/docs/commands/shebang","docId":"commands/shebang","unlisted":false},{"type":"link","label":"Export \u26a1\ufe0f","href":"/docs/commands/export","docId":"commands/export","unlisted":false},{"type":"link","label":"Fix \u26a1\ufe0f","href":"/docs/commands/fix","docId":"commands/fix","unlisted":false},{"type":"link","label":"Package \u26a1\ufe0f","href":"/docs/commands/package","docId":"commands/package","unlisted":false},{"type":"category","label":"Publishing \u26a1\ufe0f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Publish Setup \u26a1\ufe0f","href":"/docs/commands/publishing/publish-setup","docId":"commands/publishing/publish-setup","unlisted":false},{"type":"link","label":"Publish \u26a1\ufe0f","href":"/docs/commands/publishing/publish","docId":"commands/publishing/publish","unlisted":false},{"type":"link","label":"Publish Local \u26a1\ufe0f","href":"/docs/commands/publishing/publish-local","docId":"commands/publishing/publish-local","unlisted":false}]},{"type":"category","label":"Miscellaneous \u26a1\ufe0f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bloop \u26a1\ufe0f","href":"/docs/commands/misc/bloop","docId":"commands/misc/bloop","unlisted":false},{"type":"link","label":"Default File \u26a1\ufe0f","href":"/docs/commands/misc/default-file","docId":"commands/misc/default-file","unlisted":false},{"type":"link","label":"PGP \u26a1\ufe0f","href":"/docs/commands/misc/pgp","docId":"commands/misc/pgp","unlisted":false}]}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Index","href":"/docs/guides/intro","docId":"guides/intro","unlisted":false},{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuration","href":"/docs/guides/introduction/configuration","docId":"guides/introduction/configuration","unlisted":false},{"type":"link","label":"Managing dependencies","href":"/docs/guides/introduction/dependencies","docId":"guides/introduction/dependencies","unlisted":false},{"type":"link","label":"Updating dependencies","href":"/docs/guides/introduction/update-dependencies","docId":"guides/introduction/update-dependencies","unlisted":false},{"type":"link","label":"Using directives","href":"/docs/guides/introduction/using-directives","docId":"guides/introduction/using-directives","unlisted":false},{"type":"link","label":"IDE support","href":"/docs/guides/introduction/ide","docId":"guides/introduction/ide","unlisted":false},{"type":"link","label":"Scala Toolkit","href":"/docs/guides/introduction/toolkit","docId":"guides/introduction/toolkit","unlisted":false},{"type":"link","label":"Migrating from the old Scala runner","href":"/docs/guides/introduction/old-runner-migration","docId":"guides/introduction/old-runner-migration","unlisted":false}]},{"type":"category","label":"Scripting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scripts","href":"/docs/guides/scripting/scripts","docId":"guides/scripting/scripts","unlisted":false},{"type":"link","label":"Shebang","href":"/docs/guides/scripting/shebang","docId":"guides/scripting/shebang","unlisted":false}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scala.js","href":"/docs/guides/advanced/scala-js","docId":"guides/advanced/scala-js","unlisted":false},{"type":"link","label":"Scala Native","href":"/docs/guides/advanced/scala-native","docId":"guides/advanced/scala-native","unlisted":false},{"type":"link","label":"Piping","href":"/docs/guides/advanced/piping","docId":"guides/advanced/piping","unlisted":false},{"type":"link","label":"Snippets","href":"/docs/guides/advanced/snippets","docId":"guides/advanced/snippets","unlisted":false},{"type":"link","label":"Verbosity","href":"/docs/guides/advanced/verbosity","docId":"guides/advanced/verbosity","unlisted":false},{"type":"link","label":"Java properties","href":"/docs/guides/advanced/java-properties","docId":"guides/advanced/java-properties","unlisted":false},{"type":"link","label":"Internals","href":"/docs/guides/advanced/internals","docId":"guides/advanced/internals","unlisted":false}]},{"type":"category","label":"--power \u26a1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SBT and Mill \u26a1\ufe0f","href":"/docs/guides/power/sbt-mill","docId":"guides/power/sbt-mill","unlisted":false},{"type":"link","label":"Offline mode \u26a1\ufe0f","href":"/docs/guides/power/offline","docId":"guides/power/offline","unlisted":false},{"type":"link","label":"HTTP Proxies \u26a1\ufe0f","href":"/docs/guides/power/proxy","docId":"guides/power/proxy","unlisted":false},{"type":"link","label":"Repositories \u26a1\ufe0f","href":"/docs/guides/power/repositories","docId":"guides/power/repositories","unlisted":false},{"type":"link","label":"Markdown \u26a1\ufe0f","href":"/docs/guides/power/markdown","docId":"guides/power/markdown","unlisted":false},{"type":"link","label":"Python/ScalaPy \u26a1\ufe0f","href":"/docs/guides/power/python","docId":"guides/power/python","unlisted":false}]}]},{"type":"category","label":"Cookbook","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Index","href":"/docs/cookbooks/intro","docId":"cookbooks/intro","unlisted":false},{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Picking the Scala version","href":"/docs/cookbooks/introduction/scala-versions","docId":"cookbooks/introduction/scala-versions","unlisted":false},{"type":"link","label":"Changing Java versions","href":"/docs/cookbooks/introduction/scala-jvm","docId":"cookbooks/introduction/scala-jvm","unlisted":false},{"type":"link","label":"Debugging","href":"/docs/cookbooks/introduction/debugging","docId":"cookbooks/introduction/debugging","unlisted":false},{"type":"link","label":"Filter the test suites to run","href":"/docs/cookbooks/introduction/test-only","docId":"cookbooks/introduction/test-only","unlisted":false},{"type":"link","label":"Running Scala Scripts","href":"/docs/cookbooks/introduction/scala-scripts","docId":"cookbooks/introduction/scala-scripts","unlisted":false},{"type":"link","label":"Scripts with instant startup","href":"/docs/cookbooks/introduction/instant-startup-scala-scripts","docId":"cookbooks/introduction/instant-startup-scala-scripts","unlisted":false},{"type":"link","label":"GitHub gists","href":"/docs/cookbooks/introduction/gists","docId":"cookbooks/introduction/gists","unlisted":false},{"type":"link","label":"GitHub Actions","href":"/docs/cookbooks/introduction/gh-action","docId":"cookbooks/introduction/gh-action","unlisted":false}]},{"type":"category","label":"IDE","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"VSCode setup","href":"/docs/cookbooks/ide/vscode","docId":"cookbooks/ide/vscode","unlisted":false},{"type":"link","label":"IntelliJ IDEA setup","href":"/docs/cookbooks/ide/intellij","docId":"cookbooks/ide/intellij","unlisted":false},{"type":"link","label":"Scala CLI project in IntelliJ alongside your existing SBT project","href":"/docs/cookbooks/ide/intellij-sbt-with-bsp","docId":"cookbooks/ide/intellij-sbt-with-bsp","unlisted":false},{"type":"link","label":"Setup multiple projects in IDEA IntelliJ as separate modules","href":"/docs/cookbooks/ide/intellij-multi-bsp","docId":"cookbooks/ide/intellij-multi-bsp","unlisted":false},{"type":"link","label":"Emacs","href":"/docs/cookbooks/ide/emacs","docId":"cookbooks/ide/emacs","unlisted":false}]},{"type":"category","label":"Packaging \u26a1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Packaging as executable files \u26a1","href":"/docs/cookbooks/package/scala-package","docId":"cookbooks/package/scala-package","unlisted":false},{"type":"link","label":"Packaging as Docker images \u26a1","href":"/docs/cookbooks/package/scala-docker","docId":"cookbooks/package/scala-docker","unlisted":false},{"type":"link","label":"Packaging as GraalVM native images \u26a1","href":"/docs/cookbooks/package/native-images","docId":"cookbooks/package/native-images","unlisted":false}]}]},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command-line options","href":"/docs/reference/cli-options","docId":"reference/cli-options","unlisted":false},{"type":"link","label":"Directives","href":"/docs/reference/directives","docId":"reference/directives","unlisted":false},{"type":"link","label":"Commands","href":"/docs/reference/commands","docId":"reference/commands","unlisted":false},{"type":"link","label":"Dependency format","href":"/docs/reference/dependency","docId":"reference/dependency","unlisted":false},{"type":"link","label":"Project root directory","href":"/docs/reference/root-dir","docId":"reference/root-dir","unlisted":false},{"type":"link","label":"BuildInfo","href":"/docs/reference/build-info","docId":"reference/build-info","unlisted":false},{"type":"link","label":"Supported scala versions","href":"/docs/reference/scala-versions","docId":"reference/scala-versions","unlisted":false},{"type":"link","label":"Password options \u26a1\ufe0f","href":"/docs/reference/password-options","docId":"reference/password-options","unlisted":false},{"type":"category","label":"Scala CLI as scala","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command-line options","href":"/docs/reference/scala-command/cli-options","docId":"reference/scala-command/cli-options","unlisted":false},{"type":"link","label":"Scala Runner specification","href":"/docs/reference/scala-command/runner-specification","docId":"reference/scala-command/runner-specification","unlisted":false},{"type":"link","label":"Directives","href":"/docs/reference/scala-command/directives","docId":"reference/scala-command/directives","unlisted":false},{"type":"link","label":"Commands","href":"/docs/reference/scala-command/commands","docId":"reference/scala-command/commands","unlisted":false}],"href":"/docs/reference/scala-command/"}]},{"type":"link","label":"Under the hood","href":"/docs/under-the-hood","docId":"under-the-hood","unlisted":false},{"type":"link","label":"Release notes","href":"/docs/release_notes","docId":"release_notes","unlisted":false}]},"docs":{"commands/basics":{"id":"commands/basics","title":"Basics","description":"Scala CLI is a command line tool that executes a given sub-command on the inputs it\u2019s provided with, using a","sidebar":"tutorialSidebar"},"commands/clean":{"id":"commands/clean","title":"Clean","description":"The clean command deletes all of the files generated by Scala CLI. This includes the .scala-build directory where Scala CLI writes outputs and stores its caches, and .bsp/scala-cli.json file which contains details for the BSP connection (necessary for importing a Scala CLI build to your IDE of choice).","sidebar":"tutorialSidebar"},"commands/compile":{"id":"commands/compile","title":"Compile","description":"Scala CLI compiles your code with its compile command:","sidebar":"tutorialSidebar"},"commands/completions":{"id":"commands/completions","title":"Completions","description":"The completions commands can be used to install Scala CLI completions into your shell and uninstall them.","sidebar":"tutorialSidebar"},"commands/config":{"id":"commands/config","title":"Config","description":"The config sub-command makes it possible to get and set various configuration values, used by","sidebar":"tutorialSidebar"},"commands/doc":{"id":"commands/doc","title":"Doc","description":"Scala CLI can generate the API documentation of your Scala 2, Scala 3, and Java projects. It provides features similar to javadoc.","sidebar":"tutorialSidebar"},"commands/export":{"id":"commands/export","title":"Export \u26a1\ufe0f","description":"In case your project outgrows the cabapilities of Scala CLI (e.g support for modules) it may be beneficial","sidebar":"tutorialSidebar"},"commands/fix":{"id":"commands/fix","title":"Fix \u26a1\ufe0f","description":"The Fix command is experimental and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/fmt":{"id":"commands/fmt","title":"Format","description":"Scala CLI supports formatting your code using Scalafmt:","sidebar":"tutorialSidebar"},"commands/misc/bloop":{"id":"commands/misc/bloop","title":"Bloop \u26a1\ufe0f","description":"Scala CLI by default uses Bloop as a build server for compiling code. This approach has its advantages over the scalac compiler such as advanced caching and fast compile times, but the process is more complex.","sidebar":"tutorialSidebar"},"commands/misc/default-file":{"id":"commands/misc/default-file","title":"Default File \u26a1\ufe0f","description":"The Default File is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/misc/pgp":{"id":"commands/misc/pgp","title":"PGP \u26a1\ufe0f","description":"The PGP command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/package":{"id":"commands/package","title":"Package \u26a1\ufe0f","description":"The Package command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish":{"id":"commands/publishing/publish","title":"Publish \u26a1\ufe0f","description":"The Publish command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish-local":{"id":"commands/publishing/publish-local","title":"Publish Local \u26a1\ufe0f","description":"The Publish Local command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish-setup":{"id":"commands/publishing/publish-setup","title":"Publish Setup \u26a1\ufe0f","description":"The Publish Setup command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/repl":{"id":"commands/repl","title":"REPL","description":"The repl command starts a Scala REPL, which lets you interactively run your code and inspect its results:","sidebar":"tutorialSidebar"},"commands/run":{"id":"commands/run","title":"Run","description":"The run command runs your Scala code:","sidebar":"tutorialSidebar"},"commands/setup-ide":{"id":"commands/setup-ide","title":"IDE Setup","description":"Whether it\'s VS Code or IntelliJ, Scala CLI can help you setup your IDE of choice by generating the files that are necessary for it, providing you with full-blown IDE support.","sidebar":"tutorialSidebar"},"commands/shebang":{"id":"commands/shebang","title":"Shebang","description":"This command is equivalent to run, but it changes the way Scala CLI parses options (used to configure the tool) and","sidebar":"tutorialSidebar"},"commands/test":{"id":"commands/test","title":"Test","description":"The test command runs test suites in the test sources.","sidebar":"tutorialSidebar"},"commands/version":{"id":"commands/version","title":"Version","description":"The version sub-command prints the currently used Scala CLI version and the associated Scala version.","sidebar":"tutorialSidebar"},"cookbooks/ide/emacs":{"id":"cookbooks/ide/emacs","title":"Emacs","description":"Emacs users can make it easier to use Scala CLI from within their editor by","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij":{"id":"cookbooks/ide/intellij","title":"IntelliJ IDEA setup","description":"It is possible to import a Scala CLI project into IDEA IntelliJ. The import is done","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij-multi-bsp":{"id":"cookbooks/ide/intellij-multi-bsp","title":"Setup multiple projects in IDEA IntelliJ as separate modules","description":"If you\'ve read through the basic IDEA IntelliJ cookbook, then you already know how to import a Scala CLI","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij-sbt-with-bsp":{"id":"cookbooks/ide/intellij-sbt-with-bsp","title":"Scala CLI project in IntelliJ alongside your existing SBT project","description":"If you\'ve read through the basic IDEA IntelliJ cookbook, then you already know how to import a Scala CLI","sidebar":"tutorialSidebar"},"cookbooks/ide/vscode":{"id":"cookbooks/ide/vscode","title":"VSCode setup","description":"Scala CLI can generate the files that are necessary for providing IDE support in Visual Studio Code.","sidebar":"tutorialSidebar"},"cookbooks/intro":{"id":"cookbooks/intro","title":"Index","description":"This section of the documentation contains a set of recipes that show how to use Scala CLI in particular situations.","sidebar":"tutorialSidebar"},"cookbooks/introduction/debugging":{"id":"cookbooks/introduction/debugging","title":"Debugging","description":"Debugging with Scala CLI is very simple. All one needs to do is to pass the --debug option, which is available for the run and test sub-commands.","sidebar":"tutorialSidebar"},"cookbooks/introduction/gh-action":{"id":"cookbooks/introduction/gh-action","title":"GitHub Actions","description":"Preparing simple aplication","sidebar":"tutorialSidebar"},"cookbooks/introduction/gists":{"id":"cookbooks/introduction/gists","title":"GitHub gists","description":"Running code from gists","sidebar":"tutorialSidebar"},"cookbooks/introduction/instant-startup-scala-scripts":{"id":"cookbooks/introduction/instant-startup-scala-scripts","title":"Scripts with instant startup","description":"Scala CLI allows to easly compile and run Scala Scripts.","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-jvm":{"id":"cookbooks/introduction/scala-jvm","title":"Changing Java versions","description":"You can use Scala CLI to test your code compatibility with various versions of java, with a key point being that manual installation of a JDK/SDK is not required(!).","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-scripts":{"id":"cookbooks/introduction/scala-scripts","title":"Running Scala Scripts","description":"Scala Scripts","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-versions":{"id":"cookbooks/introduction/scala-versions","title":"Picking the Scala version","description":"By default, Scala CLI runs the latest supported scala version. See our list of Supported Scala Versions in Scala CLI.","sidebar":"tutorialSidebar"},"cookbooks/introduction/test-only":{"id":"cookbooks/introduction/test-only","title":"Filter the test suites to run","description":"The --test-only option is useful for when you only want to run a specific subset of tests.","sidebar":"tutorialSidebar"},"cookbooks/package/native-images":{"id":"cookbooks/package/native-images","title":"Packaging as GraalVM native images \u26a1","description":"Scala CLI lets you package your applications as native executables","sidebar":"tutorialSidebar"},"cookbooks/package/scala-docker":{"id":"cookbooks/package/scala-docker","title":"Packaging as Docker images \u26a1","description":"Scala CLI can create an executable application and package it into a Docker image.","sidebar":"tutorialSidebar"},"cookbooks/package/scala-package":{"id":"cookbooks/package/scala-package","title":"Packaging as executable files \u26a1","description":"Scala CLI lets you package your application into a lightweight JAR file that can be easily run.","sidebar":"tutorialSidebar"},"getting_started":{"id":"getting_started","title":"Getting started","description":"This article requires knowledge of the Scala language (how to define a class or method) as well as Scala tooling (the REPL, and basics of dependency management and unit tests).","sidebar":"tutorialSidebar"},"guides/advanced/internals":{"id":"guides/advanced/internals","title":"Internals","description":"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.","sidebar":"tutorialSidebar"},"guides/advanced/java-properties":{"id":"guides/advanced/java-properties","title":"Java properties","description":"Although the Scala CLI runner can be used as a native image and thus will not always be run on the JVM it still supports Java properties.","sidebar":"tutorialSidebar"},"guides/advanced/piping":{"id":"guides/advanced/piping","title":"Piping","description":"Instead of passing paths to your sources, you can also pipe your code via standard input:","sidebar":"tutorialSidebar"},"guides/advanced/scala-js":{"id":"guides/advanced/scala-js","title":"Scala.js","description":"Scala CLI can compile, run, test, and package Scala.js sources.","sidebar":"tutorialSidebar"},"guides/advanced/scala-native":{"id":"guides/advanced/scala-native","title":"Scala Native","description":"Scala Native works with Scala 3.1.x, 2.13.x and 2.12.x. Scripts are unavailable for Scala 2.12.x.","sidebar":"tutorialSidebar"},"guides/advanced/snippets":{"id":"guides/advanced/snippets","title":"Snippets","description":"Instead of passing paths to your sources, you can also pass the code itself with the appropriate option.","sidebar":"tutorialSidebar"},"guides/advanced/verbosity":{"id":"guides/advanced/verbosity","title":"Verbosity","description":"Logging in Scala CLI can be controlled in a number of ways.","sidebar":"tutorialSidebar"},"guides/intro":{"id":"guides/intro","title":"Index","description":"This section covers some aspects of Scala CLI that apply across various commands.","sidebar":"tutorialSidebar"},"guides/introduction/configuration":{"id":"guides/introduction/configuration","title":"Configuration","description":"Scala CLI can be configured in two ways:","sidebar":"tutorialSidebar"},"guides/introduction/dependencies":{"id":"guides/introduction/dependencies","title":"Managing dependencies","description":"Dependency syntax","sidebar":"tutorialSidebar"},"guides/introduction/ide":{"id":"guides/introduction/ide","title":"IDE support","description":"Scala CLI currently integrates a build server using the BSP protocol.","sidebar":"tutorialSidebar"},"guides/introduction/old-runner-migration":{"id":"guides/introduction/old-runner-migration","title":"Migrating from the old Scala runner","description":"As of SIP-46, Scala CLI has been accepted as the new scala","sidebar":"tutorialSidebar"},"guides/introduction/toolkit":{"id":"guides/introduction/toolkit","title":"Scala Toolkit","description":"Newer versions of toolkits dropped support for Scala 2.12","sidebar":"tutorialSidebar"},"guides/introduction/update-dependencies":{"id":"guides/introduction/update-dependencies","title":"Updating dependencies","description":"To check if dependencies in using directives are up-to-date, use dependency-update command:","sidebar":"tutorialSidebar"},"guides/introduction/using-directives":{"id":"guides/introduction/using-directives","title":"Using directives","description":"The using directives mechanism lets you define configuration information within .scala source code files,","sidebar":"tutorialSidebar"},"guides/power/markdown":{"id":"guides/power/markdown","title":"Markdown \u26a1\ufe0f","description":"Markdown support is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/offline":{"id":"guides/power/offline","title":"Offline mode \u26a1\ufe0f","description":"Offline mode is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/proxy":{"id":"guides/power/proxy","title":"HTTP Proxies \u26a1\ufe0f","description":"Scala CLI can download dependencies via HTTP proxies. Proxies can be setup in several ways:","sidebar":"tutorialSidebar"},"guides/power/python":{"id":"guides/power/python","title":"Python/ScalaPy \u26a1\ufe0f","description":"ScalaPy support is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/repositories":{"id":"guides/power/repositories","title":"Repositories \u26a1\ufe0f","description":"Scala CLI downloads the dependencies declared in your projects using Coursier.","sidebar":"tutorialSidebar"},"guides/power/sbt-mill":{"id":"guides/power/sbt-mill","title":"SBT and Mill \u26a1\ufe0f","description":"The export sub-command is an experimental feature.","sidebar":"tutorialSidebar"},"guides/scripting/scripts":{"id":"guides/scripting/scripts","title":"Scripts","description":"Scala CLI accepts Scala scripts as files that end in .sc.","sidebar":"tutorialSidebar"},"guides/scripting/shebang":{"id":"guides/scripting/shebang","title":"Shebang","description":"This guide explains the differences between the run and shebang sub-commands, mainly covering how each of them","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"The Scala CLI makes it easier to compile, run, test, and package Scala code.","sidebar":"tutorialSidebar"},"reference/build-info":{"id":"reference/build-info","title":"BuildInfo","description":"BuildInfo is a restricted feature and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"reference/cli-options":{"id":"reference/cli-options","title":"Command-line options","description":"This is a summary of options that are available for each subcommand of the scala-cli command.","sidebar":"tutorialSidebar"},"reference/commands":{"id":"reference/commands","title":"Commands","description":"clean","sidebar":"tutorialSidebar"},"reference/dependency":{"id":"reference/dependency","title":"Dependency format","description":"- Same as Mill","sidebar":"tutorialSidebar"},"reference/directives":{"id":"reference/directives","title":"Directives","description":"using directives","sidebar":"tutorialSidebar"},"reference/password-options":{"id":"reference/password-options","title":"Password options \u26a1\ufe0f","description":"Using password options is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"reference/root-dir":{"id":"reference/root-dir","title":"Project root directory","description":"Usage","sidebar":"tutorialSidebar"},"reference/scala-command/cli-options":{"id":"reference/scala-command/cli-options","title":"Command-line options","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/commands":{"id":"reference/scala-command/commands","title":"Commands","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/directives":{"id":"reference/scala-command/directives","title":"Directives","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/index":{"id":"reference/scala-command/index","title":"Scala CLI as scala","description":"Scala CLI is designed to be a replacement for script that is currently installed as scala. Since Scala CLI is","sidebar":"tutorialSidebar"},"reference/scala-command/runner-specification":{"id":"reference/scala-command/runner-specification","title":"Scala Runner specification","description":"This document describes proposed specification for Scala runner based on Scala CLI documentation as requested per SIP-46","sidebar":"tutorialSidebar"},"reference/scala-versions":{"id":"reference/scala-versions","title":"Supported scala versions","description":"Currently, Scala CLI supports Scala 3, 2.13 and 2.12. The table below lists the last supported version of Scala in Scala","sidebar":"tutorialSidebar"},"release_notes":{"id":"release_notes","title":"Release notes","description":"v1.1.2","sidebar":"tutorialSidebar"},"under-the-hood":{"id":"under-the-hood","title":"Under the hood","description":"This page is for people who are already familiar with the Scala/JVM ecosystem.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.cf41fe81.js b/assets/js/935f2afb.cf41fe81.js new file mode 100644 index 0000000000..14fede9aa9 --- /dev/null +++ b/assets/js/935f2afb.cf41fe81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/docs/overview","docId":"overview","unlisted":false},{"type":"link","label":"Getting started","href":"/docs/getting_started","docId":"getting_started","unlisted":false},{"type":"category","label":"Commands","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/docs/commands/basics","docId":"commands/basics","unlisted":false},{"type":"link","label":"Compile","href":"/docs/commands/compile","docId":"commands/compile","unlisted":false},{"type":"link","label":"Run","href":"/docs/commands/run","docId":"commands/run","unlisted":false},{"type":"link","label":"Test","href":"/docs/commands/test","docId":"commands/test","unlisted":false},{"type":"link","label":"REPL","href":"/docs/commands/repl","docId":"commands/repl","unlisted":false},{"type":"link","label":"IDE Setup","href":"/docs/commands/setup-ide","docId":"commands/setup-ide","unlisted":false},{"type":"link","label":"Format","href":"/docs/commands/fmt","docId":"commands/fmt","unlisted":false},{"type":"link","label":"Clean","href":"/docs/commands/clean","docId":"commands/clean","unlisted":false},{"type":"link","label":"Config","href":"/docs/commands/config","docId":"commands/config","unlisted":false},{"type":"link","label":"Doc","href":"/docs/commands/doc","docId":"commands/doc","unlisted":false},{"type":"link","label":"Completions","href":"/docs/commands/completions","docId":"commands/completions","unlisted":false},{"type":"link","label":"Version","href":"/docs/commands/version","docId":"commands/version","unlisted":false},{"type":"link","label":"Shebang","href":"/docs/commands/shebang","docId":"commands/shebang","unlisted":false},{"type":"link","label":"Export \u26a1\ufe0f","href":"/docs/commands/export","docId":"commands/export","unlisted":false},{"type":"link","label":"Fix \u26a1\ufe0f","href":"/docs/commands/fix","docId":"commands/fix","unlisted":false},{"type":"link","label":"Package \u26a1\ufe0f","href":"/docs/commands/package","docId":"commands/package","unlisted":false},{"type":"category","label":"Publishing \u26a1\ufe0f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Publish Setup \u26a1\ufe0f","href":"/docs/commands/publishing/publish-setup","docId":"commands/publishing/publish-setup","unlisted":false},{"type":"link","label":"Publish \u26a1\ufe0f","href":"/docs/commands/publishing/publish","docId":"commands/publishing/publish","unlisted":false},{"type":"link","label":"Publish Local \u26a1\ufe0f","href":"/docs/commands/publishing/publish-local","docId":"commands/publishing/publish-local","unlisted":false}]},{"type":"category","label":"Miscellaneous \u26a1\ufe0f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bloop \u26a1\ufe0f","href":"/docs/commands/misc/bloop","docId":"commands/misc/bloop","unlisted":false},{"type":"link","label":"Default File \u26a1\ufe0f","href":"/docs/commands/misc/default-file","docId":"commands/misc/default-file","unlisted":false},{"type":"link","label":"PGP \u26a1\ufe0f","href":"/docs/commands/misc/pgp","docId":"commands/misc/pgp","unlisted":false}]}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Index","href":"/docs/guides/intro","docId":"guides/intro","unlisted":false},{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuration","href":"/docs/guides/introduction/configuration","docId":"guides/introduction/configuration","unlisted":false},{"type":"link","label":"Managing dependencies","href":"/docs/guides/introduction/dependencies","docId":"guides/introduction/dependencies","unlisted":false},{"type":"link","label":"Updating dependencies","href":"/docs/guides/introduction/update-dependencies","docId":"guides/introduction/update-dependencies","unlisted":false},{"type":"link","label":"Using directives","href":"/docs/guides/introduction/using-directives","docId":"guides/introduction/using-directives","unlisted":false},{"type":"link","label":"IDE support","href":"/docs/guides/introduction/ide","docId":"guides/introduction/ide","unlisted":false},{"type":"link","label":"Scala Toolkit","href":"/docs/guides/introduction/toolkit","docId":"guides/introduction/toolkit","unlisted":false},{"type":"link","label":"Migrating from the old Scala runner","href":"/docs/guides/introduction/old-runner-migration","docId":"guides/introduction/old-runner-migration","unlisted":false}]},{"type":"category","label":"Scripting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scripts","href":"/docs/guides/scripting/scripts","docId":"guides/scripting/scripts","unlisted":false},{"type":"link","label":"Shebang","href":"/docs/guides/scripting/shebang","docId":"guides/scripting/shebang","unlisted":false}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scala.js","href":"/docs/guides/advanced/scala-js","docId":"guides/advanced/scala-js","unlisted":false},{"type":"link","label":"Scala Native","href":"/docs/guides/advanced/scala-native","docId":"guides/advanced/scala-native","unlisted":false},{"type":"link","label":"Piping","href":"/docs/guides/advanced/piping","docId":"guides/advanced/piping","unlisted":false},{"type":"link","label":"Snippets","href":"/docs/guides/advanced/snippets","docId":"guides/advanced/snippets","unlisted":false},{"type":"link","label":"Verbosity","href":"/docs/guides/advanced/verbosity","docId":"guides/advanced/verbosity","unlisted":false},{"type":"link","label":"Java properties","href":"/docs/guides/advanced/java-properties","docId":"guides/advanced/java-properties","unlisted":false},{"type":"link","label":"Internals","href":"/docs/guides/advanced/internals","docId":"guides/advanced/internals","unlisted":false},{"type":"link","label":"custom-toolkit","href":"/docs/guides/advanced/custom-toolkit","docId":"guides/advanced/custom-toolkit","unlisted":false}]},{"type":"category","label":"--power \u26a1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SBT and Mill \u26a1\ufe0f","href":"/docs/guides/power/sbt-mill","docId":"guides/power/sbt-mill","unlisted":false},{"type":"link","label":"Offline mode \u26a1\ufe0f","href":"/docs/guides/power/offline","docId":"guides/power/offline","unlisted":false},{"type":"link","label":"HTTP Proxies \u26a1\ufe0f","href":"/docs/guides/power/proxy","docId":"guides/power/proxy","unlisted":false},{"type":"link","label":"Repositories \u26a1\ufe0f","href":"/docs/guides/power/repositories","docId":"guides/power/repositories","unlisted":false},{"type":"link","label":"Markdown \u26a1\ufe0f","href":"/docs/guides/power/markdown","docId":"guides/power/markdown","unlisted":false},{"type":"link","label":"Python/ScalaPy \u26a1\ufe0f","href":"/docs/guides/power/python","docId":"guides/power/python","unlisted":false}]}]},{"type":"category","label":"Cookbook","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Index","href":"/docs/cookbooks/intro","docId":"cookbooks/intro","unlisted":false},{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Picking the Scala version","href":"/docs/cookbooks/introduction/scala-versions","docId":"cookbooks/introduction/scala-versions","unlisted":false},{"type":"link","label":"Changing Java versions","href":"/docs/cookbooks/introduction/scala-jvm","docId":"cookbooks/introduction/scala-jvm","unlisted":false},{"type":"link","label":"Debugging","href":"/docs/cookbooks/introduction/debugging","docId":"cookbooks/introduction/debugging","unlisted":false},{"type":"link","label":"Filter the test suites to run","href":"/docs/cookbooks/introduction/test-only","docId":"cookbooks/introduction/test-only","unlisted":false},{"type":"link","label":"Running Scala Scripts","href":"/docs/cookbooks/introduction/scala-scripts","docId":"cookbooks/introduction/scala-scripts","unlisted":false},{"type":"link","label":"Scripts with instant startup","href":"/docs/cookbooks/introduction/instant-startup-scala-scripts","docId":"cookbooks/introduction/instant-startup-scala-scripts","unlisted":false},{"type":"link","label":"GitHub gists","href":"/docs/cookbooks/introduction/gists","docId":"cookbooks/introduction/gists","unlisted":false},{"type":"link","label":"GitHub Actions","href":"/docs/cookbooks/introduction/gh-action","docId":"cookbooks/introduction/gh-action","unlisted":false}]},{"type":"category","label":"IDE","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"VSCode setup","href":"/docs/cookbooks/ide/vscode","docId":"cookbooks/ide/vscode","unlisted":false},{"type":"link","label":"IntelliJ IDEA setup","href":"/docs/cookbooks/ide/intellij","docId":"cookbooks/ide/intellij","unlisted":false},{"type":"link","label":"Scala CLI project in IntelliJ alongside your existing SBT project","href":"/docs/cookbooks/ide/intellij-sbt-with-bsp","docId":"cookbooks/ide/intellij-sbt-with-bsp","unlisted":false},{"type":"link","label":"Setup multiple projects in IDEA IntelliJ as separate modules","href":"/docs/cookbooks/ide/intellij-multi-bsp","docId":"cookbooks/ide/intellij-multi-bsp","unlisted":false},{"type":"link","label":"Emacs","href":"/docs/cookbooks/ide/emacs","docId":"cookbooks/ide/emacs","unlisted":false}]},{"type":"category","label":"Packaging \u26a1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Packaging as executable files \u26a1","href":"/docs/cookbooks/package/scala-package","docId":"cookbooks/package/scala-package","unlisted":false},{"type":"link","label":"Packaging as Docker images \u26a1","href":"/docs/cookbooks/package/scala-docker","docId":"cookbooks/package/scala-docker","unlisted":false},{"type":"link","label":"Packaging as GraalVM native images \u26a1","href":"/docs/cookbooks/package/native-images","docId":"cookbooks/package/native-images","unlisted":false}]}]},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command-line options","href":"/docs/reference/cli-options","docId":"reference/cli-options","unlisted":false},{"type":"link","label":"Directives","href":"/docs/reference/directives","docId":"reference/directives","unlisted":false},{"type":"link","label":"Commands","href":"/docs/reference/commands","docId":"reference/commands","unlisted":false},{"type":"link","label":"Dependency format","href":"/docs/reference/dependency","docId":"reference/dependency","unlisted":false},{"type":"link","label":"Project root directory","href":"/docs/reference/root-dir","docId":"reference/root-dir","unlisted":false},{"type":"link","label":"BuildInfo","href":"/docs/reference/build-info","docId":"reference/build-info","unlisted":false},{"type":"link","label":"Supported scala versions","href":"/docs/reference/scala-versions","docId":"reference/scala-versions","unlisted":false},{"type":"link","label":"Password options \u26a1\ufe0f","href":"/docs/reference/password-options","docId":"reference/password-options","unlisted":false},{"type":"category","label":"Scala CLI as scala","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command-line options","href":"/docs/reference/scala-command/cli-options","docId":"reference/scala-command/cli-options","unlisted":false},{"type":"link","label":"Scala Runner specification","href":"/docs/reference/scala-command/runner-specification","docId":"reference/scala-command/runner-specification","unlisted":false},{"type":"link","label":"Directives","href":"/docs/reference/scala-command/directives","docId":"reference/scala-command/directives","unlisted":false},{"type":"link","label":"Commands","href":"/docs/reference/scala-command/commands","docId":"reference/scala-command/commands","unlisted":false}],"href":"/docs/reference/scala-command/"}]},{"type":"link","label":"Under the hood","href":"/docs/under-the-hood","docId":"under-the-hood","unlisted":false},{"type":"link","label":"Release notes","href":"/docs/release_notes","docId":"release_notes","unlisted":false}]},"docs":{"commands/basics":{"id":"commands/basics","title":"Basics","description":"Scala CLI is a command line tool that executes a given sub-command on the inputs it\u2019s provided with, using a","sidebar":"tutorialSidebar"},"commands/clean":{"id":"commands/clean","title":"Clean","description":"The clean command deletes all of the files generated by Scala CLI. This includes the .scala-build directory where Scala CLI writes outputs and stores its caches, and .bsp/scala-cli.json file which contains details for the BSP connection (necessary for importing a Scala CLI build to your IDE of choice).","sidebar":"tutorialSidebar"},"commands/compile":{"id":"commands/compile","title":"Compile","description":"Scala CLI compiles your code with its compile command:","sidebar":"tutorialSidebar"},"commands/completions":{"id":"commands/completions","title":"Completions","description":"The completions commands can be used to install Scala CLI completions into your shell and uninstall them.","sidebar":"tutorialSidebar"},"commands/config":{"id":"commands/config","title":"Config","description":"The config sub-command makes it possible to get and set various configuration values, used by","sidebar":"tutorialSidebar"},"commands/doc":{"id":"commands/doc","title":"Doc","description":"Scala CLI can generate the API documentation of your Scala 2, Scala 3, and Java projects. It provides features similar to javadoc.","sidebar":"tutorialSidebar"},"commands/export":{"id":"commands/export","title":"Export \u26a1\ufe0f","description":"In case your project outgrows the cabapilities of Scala CLI (e.g support for modules) it may be beneficial","sidebar":"tutorialSidebar"},"commands/fix":{"id":"commands/fix","title":"Fix \u26a1\ufe0f","description":"The Fix command is experimental and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/fmt":{"id":"commands/fmt","title":"Format","description":"Scala CLI supports formatting your code using Scalafmt:","sidebar":"tutorialSidebar"},"commands/misc/bloop":{"id":"commands/misc/bloop","title":"Bloop \u26a1\ufe0f","description":"Scala CLI by default uses Bloop as a build server for compiling code. This approach has its advantages over the scalac compiler such as advanced caching and fast compile times, but the process is more complex.","sidebar":"tutorialSidebar"},"commands/misc/default-file":{"id":"commands/misc/default-file","title":"Default File \u26a1\ufe0f","description":"The Default File is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/misc/pgp":{"id":"commands/misc/pgp","title":"PGP \u26a1\ufe0f","description":"The PGP command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/package":{"id":"commands/package","title":"Package \u26a1\ufe0f","description":"The Package command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish":{"id":"commands/publishing/publish","title":"Publish \u26a1\ufe0f","description":"The Publish command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish-local":{"id":"commands/publishing/publish-local","title":"Publish Local \u26a1\ufe0f","description":"The Publish Local command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/publishing/publish-setup":{"id":"commands/publishing/publish-setup","title":"Publish Setup \u26a1\ufe0f","description":"The Publish Setup command is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"commands/repl":{"id":"commands/repl","title":"REPL","description":"The repl command starts a Scala REPL, which lets you interactively run your code and inspect its results:","sidebar":"tutorialSidebar"},"commands/run":{"id":"commands/run","title":"Run","description":"The run command runs your Scala code:","sidebar":"tutorialSidebar"},"commands/setup-ide":{"id":"commands/setup-ide","title":"IDE Setup","description":"Whether it\'s VS Code or IntelliJ, Scala CLI can help you setup your IDE of choice by generating the files that are necessary for it, providing you with full-blown IDE support.","sidebar":"tutorialSidebar"},"commands/shebang":{"id":"commands/shebang","title":"Shebang","description":"This command is equivalent to run, but it changes the way Scala CLI parses options (used to configure the tool) and","sidebar":"tutorialSidebar"},"commands/test":{"id":"commands/test","title":"Test","description":"The test command runs test suites in the test sources.","sidebar":"tutorialSidebar"},"commands/version":{"id":"commands/version","title":"Version","description":"The version sub-command prints the currently used Scala CLI version and the associated Scala version.","sidebar":"tutorialSidebar"},"cookbooks/ide/emacs":{"id":"cookbooks/ide/emacs","title":"Emacs","description":"Emacs users can make it easier to use Scala CLI from within their editor by","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij":{"id":"cookbooks/ide/intellij","title":"IntelliJ IDEA setup","description":"It is possible to import a Scala CLI project into IDEA IntelliJ. The import is done","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij-multi-bsp":{"id":"cookbooks/ide/intellij-multi-bsp","title":"Setup multiple projects in IDEA IntelliJ as separate modules","description":"If you\'ve read through the basic IDEA IntelliJ cookbook, then you already know how to import a Scala CLI","sidebar":"tutorialSidebar"},"cookbooks/ide/intellij-sbt-with-bsp":{"id":"cookbooks/ide/intellij-sbt-with-bsp","title":"Scala CLI project in IntelliJ alongside your existing SBT project","description":"If you\'ve read through the basic IDEA IntelliJ cookbook, then you already know how to import a Scala CLI","sidebar":"tutorialSidebar"},"cookbooks/ide/vscode":{"id":"cookbooks/ide/vscode","title":"VSCode setup","description":"Scala CLI can generate the files that are necessary for providing IDE support in Visual Studio Code.","sidebar":"tutorialSidebar"},"cookbooks/intro":{"id":"cookbooks/intro","title":"Index","description":"This section of the documentation contains a set of recipes that show how to use Scala CLI in particular situations.","sidebar":"tutorialSidebar"},"cookbooks/introduction/debugging":{"id":"cookbooks/introduction/debugging","title":"Debugging","description":"Debugging with Scala CLI is very simple. All one needs to do is to pass the --debug option, which is available for the run and test sub-commands.","sidebar":"tutorialSidebar"},"cookbooks/introduction/gh-action":{"id":"cookbooks/introduction/gh-action","title":"GitHub Actions","description":"Preparing simple aplication","sidebar":"tutorialSidebar"},"cookbooks/introduction/gists":{"id":"cookbooks/introduction/gists","title":"GitHub gists","description":"Running code from gists","sidebar":"tutorialSidebar"},"cookbooks/introduction/instant-startup-scala-scripts":{"id":"cookbooks/introduction/instant-startup-scala-scripts","title":"Scripts with instant startup","description":"Scala CLI allows to easly compile and run Scala Scripts.","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-jvm":{"id":"cookbooks/introduction/scala-jvm","title":"Changing Java versions","description":"You can use Scala CLI to test your code compatibility with various versions of java, with a key point being that manual installation of a JDK/SDK is not required(!).","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-scripts":{"id":"cookbooks/introduction/scala-scripts","title":"Running Scala Scripts","description":"Scala Scripts","sidebar":"tutorialSidebar"},"cookbooks/introduction/scala-versions":{"id":"cookbooks/introduction/scala-versions","title":"Picking the Scala version","description":"By default, Scala CLI runs the latest supported scala version. See our list of Supported Scala Versions in Scala CLI.","sidebar":"tutorialSidebar"},"cookbooks/introduction/test-only":{"id":"cookbooks/introduction/test-only","title":"Filter the test suites to run","description":"The --test-only option is useful for when you only want to run a specific subset of tests.","sidebar":"tutorialSidebar"},"cookbooks/package/native-images":{"id":"cookbooks/package/native-images","title":"Packaging as GraalVM native images \u26a1","description":"Scala CLI lets you package your applications as native executables","sidebar":"tutorialSidebar"},"cookbooks/package/scala-docker":{"id":"cookbooks/package/scala-docker","title":"Packaging as Docker images \u26a1","description":"Scala CLI can create an executable application and package it into a Docker image.","sidebar":"tutorialSidebar"},"cookbooks/package/scala-package":{"id":"cookbooks/package/scala-package","title":"Packaging as executable files \u26a1","description":"Scala CLI lets you package your application into a lightweight JAR file that can be easily run.","sidebar":"tutorialSidebar"},"getting_started":{"id":"getting_started","title":"Getting started","description":"This article requires knowledge of the Scala language (how to define a class or method) as well as Scala tooling (the REPL, and basics of dependency management and unit tests).","sidebar":"tutorialSidebar"},"guides/advanced/custom-toolkit":{"id":"guides/advanced/custom-toolkit","title":"custom-toolkit","description":"title: Custom Toolkit","sidebar":"tutorialSidebar"},"guides/advanced/internals":{"id":"guides/advanced/internals","title":"Internals","description":"Even though Scala CLI exposes a simple interface to users, quite a number of steps happen when compiling or running even a single source file.","sidebar":"tutorialSidebar"},"guides/advanced/java-properties":{"id":"guides/advanced/java-properties","title":"Java properties","description":"Although the Scala CLI runner can be used as a native image and thus will not always be run on the JVM it still supports Java properties.","sidebar":"tutorialSidebar"},"guides/advanced/piping":{"id":"guides/advanced/piping","title":"Piping","description":"Instead of passing paths to your sources, you can also pipe your code via standard input:","sidebar":"tutorialSidebar"},"guides/advanced/scala-js":{"id":"guides/advanced/scala-js","title":"Scala.js","description":"Scala CLI can compile, run, test, and package Scala.js sources.","sidebar":"tutorialSidebar"},"guides/advanced/scala-native":{"id":"guides/advanced/scala-native","title":"Scala Native","description":"Scala Native works with Scala 3.1.x, 2.13.x and 2.12.x. Scripts are unavailable for Scala 2.12.x.","sidebar":"tutorialSidebar"},"guides/advanced/snippets":{"id":"guides/advanced/snippets","title":"Snippets","description":"Instead of passing paths to your sources, you can also pass the code itself with the appropriate option.","sidebar":"tutorialSidebar"},"guides/advanced/verbosity":{"id":"guides/advanced/verbosity","title":"Verbosity","description":"Logging in Scala CLI can be controlled in a number of ways.","sidebar":"tutorialSidebar"},"guides/intro":{"id":"guides/intro","title":"Index","description":"This section covers some aspects of Scala CLI that apply across various commands.","sidebar":"tutorialSidebar"},"guides/introduction/configuration":{"id":"guides/introduction/configuration","title":"Configuration","description":"Scala CLI can be configured in two ways:","sidebar":"tutorialSidebar"},"guides/introduction/dependencies":{"id":"guides/introduction/dependencies","title":"Managing dependencies","description":"Dependency syntax","sidebar":"tutorialSidebar"},"guides/introduction/ide":{"id":"guides/introduction/ide","title":"IDE support","description":"Scala CLI currently integrates a build server using the BSP protocol.","sidebar":"tutorialSidebar"},"guides/introduction/old-runner-migration":{"id":"guides/introduction/old-runner-migration","title":"Migrating from the old Scala runner","description":"As of SIP-46, Scala CLI has been accepted as the new scala","sidebar":"tutorialSidebar"},"guides/introduction/toolkit":{"id":"guides/introduction/toolkit","title":"Scala Toolkit","description":"Newer versions of toolkits dropped support for Scala 2.12","sidebar":"tutorialSidebar"},"guides/introduction/update-dependencies":{"id":"guides/introduction/update-dependencies","title":"Updating dependencies","description":"To check if dependencies in using directives are up-to-date, use dependency-update command:","sidebar":"tutorialSidebar"},"guides/introduction/using-directives":{"id":"guides/introduction/using-directives","title":"Using directives","description":"The using directives mechanism lets you define configuration information within .scala source code files,","sidebar":"tutorialSidebar"},"guides/power/markdown":{"id":"guides/power/markdown","title":"Markdown \u26a1\ufe0f","description":"Markdown support is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/offline":{"id":"guides/power/offline","title":"Offline mode \u26a1\ufe0f","description":"Offline mode is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/proxy":{"id":"guides/power/proxy","title":"HTTP Proxies \u26a1\ufe0f","description":"Scala CLI can download dependencies via HTTP proxies. Proxies can be setup in several ways:","sidebar":"tutorialSidebar"},"guides/power/python":{"id":"guides/power/python","title":"Python/ScalaPy \u26a1\ufe0f","description":"ScalaPy support is an experimental feature.","sidebar":"tutorialSidebar"},"guides/power/repositories":{"id":"guides/power/repositories","title":"Repositories \u26a1\ufe0f","description":"Scala CLI downloads the dependencies declared in your projects using Coursier.","sidebar":"tutorialSidebar"},"guides/power/sbt-mill":{"id":"guides/power/sbt-mill","title":"SBT and Mill \u26a1\ufe0f","description":"The export sub-command is an experimental feature.","sidebar":"tutorialSidebar"},"guides/scripting/scripts":{"id":"guides/scripting/scripts","title":"Scripts","description":"Scala CLI accepts Scala scripts as files that end in .sc.","sidebar":"tutorialSidebar"},"guides/scripting/shebang":{"id":"guides/scripting/shebang","title":"Shebang","description":"This guide explains the differences between the run and shebang sub-commands, mainly covering how each of them","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"The Scala CLI makes it easier to compile, run, test, and package Scala code.","sidebar":"tutorialSidebar"},"reference/build-info":{"id":"reference/build-info","title":"BuildInfo","description":"BuildInfo is a restricted feature and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"reference/cli-options":{"id":"reference/cli-options","title":"Command-line options","description":"This is a summary of options that are available for each subcommand of the scala-cli command.","sidebar":"tutorialSidebar"},"reference/commands":{"id":"reference/commands","title":"Commands","description":"clean","sidebar":"tutorialSidebar"},"reference/dependency":{"id":"reference/dependency","title":"Dependency format","description":"- Same as Mill","sidebar":"tutorialSidebar"},"reference/directives":{"id":"reference/directives","title":"Directives","description":"using directives","sidebar":"tutorialSidebar"},"reference/password-options":{"id":"reference/password-options","title":"Password options \u26a1\ufe0f","description":"Using password options is restricted and requires setting the --power option to be used.","sidebar":"tutorialSidebar"},"reference/root-dir":{"id":"reference/root-dir","title":"Project root directory","description":"Usage","sidebar":"tutorialSidebar"},"reference/scala-command/cli-options":{"id":"reference/scala-command/cli-options","title":"Command-line options","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/commands":{"id":"reference/scala-command/commands","title":"Commands","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/directives":{"id":"reference/scala-command/directives","title":"Directives","description":"This document describes as scala-cli behaves if run as scala command. See more information in SIP-46","sidebar":"tutorialSidebar"},"reference/scala-command/index":{"id":"reference/scala-command/index","title":"Scala CLI as scala","description":"Scala CLI is designed to be a replacement for script that is currently installed as scala. Since Scala CLI is","sidebar":"tutorialSidebar"},"reference/scala-command/runner-specification":{"id":"reference/scala-command/runner-specification","title":"Scala Runner specification","description":"This document describes proposed specification for Scala runner based on Scala CLI documentation as requested per SIP-46","sidebar":"tutorialSidebar"},"reference/scala-versions":{"id":"reference/scala-versions","title":"Supported scala versions","description":"Currently, Scala CLI supports Scala 3, 2.13 and 2.12. The table below lists the last supported version of Scala in Scala","sidebar":"tutorialSidebar"},"release_notes":{"id":"release_notes","title":"Release notes","description":"v1.1.2","sidebar":"tutorialSidebar"},"under-the-hood":{"id":"under-the-hood","title":"Under the hood","description":"This page is for people who are already familiar with the Scala/JVM ecosystem.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a24cb2d6.16ce8a86.js b/assets/js/a24cb2d6.16ce8a86.js new file mode 100644 index 0000000000..0a51281d9e --- /dev/null +++ b/assets/js/a24cb2d6.16ce8a86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2983],{4716:(e,i,o)=>{o.r(i),o.d(i,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var t=o(5893),n=o(1151);const s={},l=void 0,a={id:"guides/advanced/custom-toolkit",title:"custom-toolkit",description:"title: Custom Toolkit",source:"@site/docs/guides/advanced/custom-toolkit.md",sourceDirName:"guides/advanced",slug:"/guides/advanced/custom-toolkit",permalink:"/docs/guides/advanced/custom-toolkit",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/advanced/custom-toolkit.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Internals",permalink:"/docs/guides/advanced/internals"},next:{title:"SBT and Mill \u26a1\ufe0f",permalink:"/docs/guides/power/sbt-mill"}},c={},d=[{value:"title: Custom Toolkit\nsidebar_position: 44",id:"title-custom-toolkitsidebar_position-44",level:2}];function r(e){const i={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h2,{id:"title-custom-toolkitsidebar_position-44",children:"title: Custom Toolkit\nsidebar_position: 44"}),"\n",(0,t.jsx)(i.p,{children:"Similar to the Scala Toolkit and Typelevel toolkit, it is possible to create your own, custom toolkit.\nHaving a custom toolkit with common libraries can speed up the development using scala-cli."}),"\n",(0,t.jsx)(i.p,{children:"Let's look at how we can create a new toolkit."}),"\n",(0,t.jsxs)(i.p,{children:["For example, to create a LiHaoyi ecosystem toolkit, we can name the file as ",(0,t.jsx)(i.code,{children:"LiHaoyiToolkit.scala"})," and add the required libraries as dependency directives:"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-scala",children:"//> using scala 2.13, 3\n//> using publish.name toolkit\n//> using dep com.lihaoyi::upickle::3.1.3\n//> using dep com.lihaoyi::os-lib::0.9.2\n//> using dep com.lihaoyi::requests::0.8.0\n//> using dep com.lihaoyi::fansi::0.4.0\n"})}),"\n",(0,t.jsxs)(i.p,{children:["This toolkit is a combination of 4 libraries from ",(0,t.jsx)(i.code,{children:"com.lihaoyi"})," organization as defined before. The key ",(0,t.jsx)(i.code,{children:"publish.name"})," must have the value ",(0,t.jsx)(i.code,{children:"toolkit"})," to be used as a toolkit."]}),"\n",(0,t.jsxs)(i.p,{children:["Similarly, define the scalajs version of toolkit in ",(0,t.jsx)(i.code,{children:"LiHaoyiToolkit.js.scala"})," file. Notice the ",(0,t.jsx)(i.code,{children:"js.scala"})," extension. It should also have ",(0,t.jsx)(i.code,{children:"publish.name"})," as ",(0,t.jsx)(i.code,{children:"toolkit"}),"."]}),"\n",(0,t.jsxs)(i.p,{children:["If testkit is supported, it can also be added as another file, ",(0,t.jsx)(i.code,{children:"LiHaoyiToolkitTest.scala"})," with ",(0,t.jsx)(i.code,{children:"publish.name"})," as ",(0,t.jsx)(i.code,{children:"toolkit-test"}),":"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{children:"//> using scala 2.13, 3\n//> using publish.name toolkit-test\n//> using dep com.lihaoyi::utest::0.8.2\n"})}),"\n",(0,t.jsxs)(i.p,{children:["Additionally, more configurations needed for publishing the toolkit can be kept in a conf file, for example, ",(0,t.jsx)(i.code,{children:"publish-conf.scala"}),":"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{children:'//> using publish.organization com.yadavan88\n//> using publish.version 0.1.0\n//> using publish.url https://github.com/yadavan88/lihaoyi-toolkit\n//> using publish.license Apache-2.0\n//> using publish.repository central\n//> using publish.developer "yadavan88|Yadu Krishnan|https://github.com/yadavan88"\n//> using repository sonatype:public\n'})}),"\n",(0,t.jsx)(i.p,{children:"The toolkit can be published locally using the command:"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{children:"scala-cli --power publish local --cross LiHaoyiToolkit.scala publish-conf.scala\n"})}),"\n",(0,t.jsxs)(i.p,{children:["Similarly, it is also possible to publish to a central repository. Refer to the ",(0,t.jsx)(i.a,{href:"https://github.com/scala/toolkit/blob/main/.github/workflows/deploy.yaml",children:"GitHub Action workflow"})," for more details."]}),"\n",(0,t.jsxs)(i.p,{children:["Once it is published, it can be accessed using the org-name with which it got published. For example, with the published toolkit under the organization ",(0,t.jsx)(i.code,{children:"com.yadavan88"}),", it can be accessed as:"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{children:'//> using toolkit com.yadavan88:0.1.0\n\n@main\ndef main() = {\n println(fansi.Color.Blue("Hello world!"))\n println("path is : " + os.pwd)\n}\n\n'})}),"\n",(0,t.jsx)(i.p,{children:"This brings in all the dependencies mentioned in the custom toolkit file."})]})}function h(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(r,{...e})}):r(e)}},1151:(e,i,o)=>{o.d(i,{Z:()=>a,a:()=>l});var t=o(7294);const n={},s=t.createContext(n);function l(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eb5c744b.dfa6bf31.js b/assets/js/eb5c744b.dfa6bf31.js new file mode 100644 index 0000000000..a463b18bf4 --- /dev/null +++ b/assets/js/eb5c744b.dfa6bf31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9038],{6547:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var n=o(5893),s=o(1151);const i={title:"SBT and Mill \u26a1\ufe0f",sidebar_position:50},r=void 0,a={id:"guides/power/sbt-mill",title:"SBT and Mill \u26a1\ufe0f",description:"The export sub-command is an experimental feature.",source:"@site/docs/guides/power/sbt-mill.md",sourceDirName:"guides/power",slug:"/guides/power/sbt-mill",permalink:"/docs/guides/power/sbt-mill",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/power/sbt-mill.md",tags:[],version:"current",sidebarPosition:50,frontMatter:{title:"SBT and Mill \u26a1\ufe0f",sidebar_position:50},sidebar:"tutorialSidebar",previous:{title:"custom-toolkit",permalink:"/docs/guides/advanced/custom-toolkit"},next:{title:"Offline mode \u26a1\ufe0f",permalink:"/docs/guides/power/offline"}},c={},d=[];function l(e){const t={a:"a",admonition:"admonition",code:"code",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.admonition,{type:"caution",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"export"})," sub-command is an experimental feature."]}),(0,n.jsxs)(t.p,{children:["Please bear in mind that non-ideal user experience should be expected.\nIf you encounter any bugs or have feedback to share, make sure to reach out to the maintenance team\non ",(0,n.jsx)(t.a,{href:"https://github.com/VirtusLab/scala-cli",children:"GitHub"}),"."]})]}),"\n",(0,n.jsx)(t.p,{children:"Scala CLI lets you export your current build into sbt or Mill.\nThis means that if your project needs something that Scala CLI doesn\u2019t provide \u2014 such as a second module \u2014 you can export your project to your build tool of choice."}),"\n",(0,n.jsx)(t.p,{children:"Why do we need this?\nBasically we don\u2019t want to block the development of your project.\nBut at the same time, we don\u2019t want to introduce the complexity that multi-module builds and tasks and plugin systems introduce \u2014 at least not until that complexity is needed."}),"\n",(0,n.jsx)(t.p,{children:"To export a project, run this command to export to sbt:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"scala-cli export --sbt \n"})}),"\n",(0,n.jsx)(t.p,{children:"Or use this command to export to Mill:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"scala-cli export --mill \n"})}),"\n",(0,n.jsxs)(t.p,{children:["These commands create a copy of your sources, resources, and local JARs.\nThey also download gists and other non-local inputs.\nBy default the project is exported to a ",(0,n.jsx)(t.code,{children:"dest"})," directory, but you can control that with the ",(0,n.jsx)(t.code,{children:"-o"})," option."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>a,a:()=>r});var n=o(7294);const s={},i=n.createContext(s);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eb5c744b.e8e46937.js b/assets/js/eb5c744b.e8e46937.js deleted file mode 100644 index 173eed6e19..0000000000 --- a/assets/js/eb5c744b.e8e46937.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9038],{6547:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=n(5893),s=n(1151);const i={title:"SBT and Mill \u26a1\ufe0f",sidebar_position:50},r=void 0,a={id:"guides/power/sbt-mill",title:"SBT and Mill \u26a1\ufe0f",description:"The export sub-command is an experimental feature.",source:"@site/docs/guides/power/sbt-mill.md",sourceDirName:"guides/power",slug:"/guides/power/sbt-mill",permalink:"/docs/guides/power/sbt-mill",draft:!1,unlisted:!1,editUrl:"https://github.com/Virtuslab/scala-cli/edit/main/website/docs/guides/power/sbt-mill.md",tags:[],version:"current",sidebarPosition:50,frontMatter:{title:"SBT and Mill \u26a1\ufe0f",sidebar_position:50},sidebar:"tutorialSidebar",previous:{title:"Internals",permalink:"/docs/guides/advanced/internals"},next:{title:"Offline mode \u26a1\ufe0f",permalink:"/docs/guides/power/offline"}},c={},d=[];function l(e){const t={a:"a",admonition:"admonition",code:"code",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.admonition,{type:"caution",children:[(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"export"})," sub-command is an experimental feature."]}),(0,o.jsxs)(t.p,{children:["Please bear in mind that non-ideal user experience should be expected.\nIf you encounter any bugs or have feedback to share, make sure to reach out to the maintenance team\non ",(0,o.jsx)(t.a,{href:"https://github.com/VirtusLab/scala-cli",children:"GitHub"}),"."]})]}),"\n",(0,o.jsx)(t.p,{children:"Scala CLI lets you export your current build into sbt or Mill.\nThis means that if your project needs something that Scala CLI doesn\u2019t provide \u2014 such as a second module \u2014 you can export your project to your build tool of choice."}),"\n",(0,o.jsx)(t.p,{children:"Why do we need this?\nBasically we don\u2019t want to block the development of your project.\nBut at the same time, we don\u2019t want to introduce the complexity that multi-module builds and tasks and plugin systems introduce \u2014 at least not until that complexity is needed."}),"\n",(0,o.jsx)(t.p,{children:"To export a project, run this command to export to sbt:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-sh",children:"scala-cli export --sbt \n"})}),"\n",(0,o.jsx)(t.p,{children:"Or use this command to export to Mill:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-sh",children:"scala-cli export --mill \n"})}),"\n",(0,o.jsxs)(t.p,{children:["These commands create a copy of your sources, resources, and local JARs.\nThey also download gists and other non-local inputs.\nBy default the project is exported to a ",(0,o.jsx)(t.code,{children:"dest"})," directory, but you can control that with the ",(0,o.jsx)(t.code,{children:"-o"})," option."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var o=n(7294);const s={},i=o.createContext(s);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.4f257a64.js b/assets/js/main.4f257a64.js new file mode 100644 index 0000000000..42abd03cc4 --- /dev/null +++ b/assets/js/main.4f257a64.js @@ -0,0 +1,2 @@ +/*! For license information please see main.4f257a64.js.LICENSE.txt */ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"043a06fe":[()=>n.e(4631).then(n.bind(n,7317)),"@site/docs/commands/shebang.md",7317],"05390651":[()=>Promise.all([n.e(532),n.e(3232)]).then(n.bind(n,9655)),"@site/src/pages/install.js",9655],"076bc082":[()=>n.e(4796).then(n.bind(n,7961)),"@site/docs/cookbooks/package/scala-docker.md",7961],"0a4c121b":[()=>Promise.all([n.e(4148),n.e(6713)]).then(n.bind(n,8370)),"@site/docs/guides/scripting/shebang.md",8370],"11e5aa22":[()=>Promise.all([n.e(4148),n.e(6393)]).then(n.bind(n,300)),"@site/docs/commands/publishing/publish-setup.md",300],"12ff2c4b":[()=>n.e(3946).then(n.bind(n,5765)),"@site/docs/cookbooks/introduction/scala-versions.md",5765],"14cf683c":[()=>n.e(590).then(n.bind(n,9666)),"@site/docs/cookbooks/introduction/gh-action.md",9666],17896441:[()=>Promise.all([n.e(532),n.e(325),n.e(7918)]).then(n.bind(n,903)),"@theme/DocItem",903],"18bccaf0":[()=>n.e(2128).then(n.bind(n,4834)),"@site/docs/reference/scala-command/cli-options.md",4834],"193cf812":[()=>n.e(3355).then(n.bind(n,9830)),"@site/docs/guides/intro.md",9830],"19769ae2":[()=>n.e(3865).then(n.bind(n,30)),"@site/docs/guides/introduction/ide.md",30],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1b346546":[()=>n.e(8870).then(n.bind(n,124)),"@site/docs/cookbooks/introduction/debugging.md",124],"1db64337":[()=>Promise.all([n.e(532),n.e(1372)]).then(n.bind(n,9674)),"@site/docs/overview.md",9674],"1dbcb464":[()=>n.e(1486).then(n.bind(n,596)),"@site/docs/cookbooks/introduction/scala-scripts.md",596],"1f391b9e":[()=>Promise.all([n.e(532),n.e(325),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"2245b6ac":[()=>n.e(2301).then(n.t.bind(n,3769,19)),"/home/runner/work/scala-cli/scala-cli/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"2bb906b8":[()=>n.e(8109).then(n.bind(n,4108)),"@site/docs/cookbooks/package/scala-package.md",4108],"2ef1a504":[()=>n.e(3289).then(n.bind(n,1531)),"@site/docs/reference/password-options.md",1531],"31c3d7dc":[()=>n.e(8591).then(n.bind(n,336)),"@site/docs/commands/misc/bloop.md",336],"38cdd915":[()=>n.e(7600).then(n.bind(n,366)),"@site/docs/cookbooks/ide/vscode.md",366],"393be207":[()=>n.e(7414).then(n.bind(n,1181)),"@site/src/pages/markdown-page.md",1181],"418740e5":[()=>Promise.all([n.e(4148),n.e(6915)]).then(n.bind(n,1730)),"@site/docs/cookbooks/ide/intellij-multi-bsp.md",1730],"44d5a4ef":[()=>n.e(5296).then(n.bind(n,5421)),"@site/docs/guides/power/repositories.md",5421],"44e56df9":[()=>n.e(1786).then(n.bind(n,7835)),"@site/docs/reference/cli-options.md",7835],"467d2bbe":[()=>n.e(2699).then(n.bind(n,9217)),"@site/docs/guides/advanced/internals.md",9217],"4a108a36":[()=>Promise.all([n.e(4148),n.e(8534)]).then(n.bind(n,4505)),"@site/docs/guides/introduction/dependencies.md",4505],"4a26cc46":[()=>n.e(9962).then(n.bind(n,7590)),"@site/docs/reference/scala-versions.md",7590],"4a611cfe":[()=>Promise.all([n.e(4148),n.e(3813)]).then(n.bind(n,8886)),"@site/docs/commands/fmt.md",8886],"4f000067":[()=>Promise.all([n.e(4148),n.e(980)]).then(n.bind(n,6379)),"@site/docs/commands/run.md",6379],"541fc7cd":[()=>Promise.all([n.e(4148),n.e(8557)]).then(n.bind(n,8299)),"@site/docs/guides/introduction/configuration.md",8299],"542b4994":[()=>n.e(1976).then(n.bind(n,605)),"@site/docs/commands/doc.md",605],"546b99d6":[()=>Promise.all([n.e(4148),n.e(6280)]).then(n.bind(n,8505)),"@site/docs/guides/power/markdown.md",8505],"550e4c4f":[()=>Promise.all([n.e(4148),n.e(2293)]).then(n.bind(n,8421)),"@site/src/pages/spark.md",8421],"57e81883":[()=>Promise.all([n.e(4148),n.e(6782)]).then(n.bind(n,3298)),"@site/docs/guides/scripting/scripts.md",3298],"586747f7":[()=>n.e(309).then(n.bind(n,2523)),"@site/docs/guides/advanced/scala-native.md",2523],"5889486f":[()=>n.e(4307).then(n.bind(n,3160)),"@site/docs/guides/introduction/using-directives.md",3160],"58f8a033":[()=>n.e(4051).then(n.bind(n,6238)),"@site/docs/guides/power/python.md",6238],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5efa792e":[()=>Promise.all([n.e(4148),n.e(1476)]).then(n.bind(n,2450)),"@site/docs/commands/version.md",2450],"5f07a975":[()=>n.e(8276).then(n.bind(n,4157)),"@site/docs/reference/scala-command/directives.md",4157],"6c1c26e7":[()=>n.e(2259).then(n.bind(n,5557)),"@site/docs/cookbooks/introduction/test-only.md",5557],"73d3f252":[()=>Promise.all([n.e(4148),n.e(2816)]).then(n.bind(n,6159)),"@site/docs/guides/introduction/update-dependencies.md",6159],"747d4895":[()=>n.e(1815).then(n.bind(n,6133)),"@site/src/pages/prototyping.js",6133],"764f8c7a":[()=>n.e(5746).then(n.bind(n,9396)),"@site/docs/guides/advanced/java-properties.md",9396],"765ea124":[()=>n.e(7726).then(n.bind(n,5511)),"@site/docs/commands/fix.md",5511],"7898142e":[()=>n.e(415).then(n.bind(n,6262)),"@site/src/pages/education.js",6262],"7950829e":[()=>Promise.all([n.e(4148),n.e(2314)]).then(n.bind(n,6175)),"@site/docs/cookbooks/ide/intellij.md",6175],"7cbbe09b":[()=>n.e(1614).then(n.bind(n,8879)),"@site/docs/reference/scala-command/runner-specification.md",8879],"7f814673":[()=>n.e(9497).then(n.bind(n,4979)),"@site/docs/reference/build-info.md",4979],"822c7e90":[()=>Promise.all([n.e(4148),n.e(1611)]).then(n.bind(n,7280)),"@site/docs/commands/config.md",7280],"852a0352":[()=>n.e(9379).then(n.bind(n,4884)),"@site/docs/reference/scala-command/commands.md",4884],"878f699c":[()=>Promise.all([n.e(4148),n.e(5672)]).then(n.bind(n,6121)),"@site/docs/commands/package.md",6121],"88065e49":[()=>Promise.all([n.e(4148),n.e(9345)]).then(n.bind(n,5728)),"@site/docs/cookbooks/ide/intellij-sbt-with-bsp.md",5728],"887b28d2":[()=>n.e(2114).then(n.bind(n,5055)),"@site/src/pages/scripting.js",5055],"8c4eb8fa":[()=>n.e(5627).then(n.bind(n,5007)),"@site/docs/commands/misc/pgp.md",5007],"90c7d31f":[()=>n.e(5698).then(n.bind(n,75)),"@site/docs/reference/root-dir.md",75],"92bb876c":[()=>Promise.all([n.e(4148),n.e(6347)]).then(n.bind(n,8090)),"@site/docs/getting_started.md",8090],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"93f256be":[()=>n.e(4602).then(n.bind(n,1831)),"@site/docs/commands/misc/default-file.md",1831],"962a7b5d":[()=>Promise.all([n.e(4148),n.e(9945)]).then(n.bind(n,5017)),"@site/docs/commands/publishing/publish.md",5017],"98f6c6be":[()=>n.e(8003).then(n.bind(n,2425)),"@site/docs/reference/scala-command/index.md",2425],"9a2cec18":[()=>Promise.all([n.e(4148),n.e(8618)]).then(n.bind(n,8959)),"@site/docs/release_notes.md",8959],a0ec8f61:[()=>n.e(201).then(n.t.bind(n,5745,19)),"/home/runner/work/scala-cli/scala-cli/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],a1a07729:[()=>n.e(4982).then(n.bind(n,3088)),"@site/docs/reference/commands.md",3088],a1c89c5c:[()=>n.e(36).then(n.bind(n,9992)),"@site/docs/cookbooks/intro.md",9992],a24cb2d6:[()=>n.e(2983).then(n.bind(n,4716)),"@site/docs/guides/advanced/custom-toolkit.md",4716],a6a0cecd:[()=>Promise.all([n.e(4148),n.e(8368)]).then(n.bind(n,8977)),"@site/docs/commands/test.md",8977],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a977e4a7:[()=>n.e(7898).then(n.bind(n,2741)),"@site/docs/commands/setup-ide.md",2741],af3e6bad:[()=>Promise.all([n.e(4148),n.e(1613)]).then(n.bind(n,9786)),"@site/docs/guides/introduction/old-runner-migration.md",9786],b09f0486:[()=>Promise.all([n.e(4148),n.e(993)]).then(n.bind(n,3822)),"@site/docs/commands/publishing/publish-local.md",3822],b31813b0:[()=>Promise.all([n.e(4148),n.e(8702)]).then(n.bind(n,7044)),"@site/docs/commands/basics.md",7044],b75b8a81:[()=>n.e(9149).then(n.bind(n,3774)),"@site/docs/under-the-hood.md",3774],b863b110:[()=>n.e(8119).then(n.bind(n,4235)),"@site/docs/reference/directives.md",4235],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,7302)),"@site/src/pages/index.js",7302],c601bb92:[()=>n.e(557).then(n.bind(n,1780)),"@site/docs/commands/clean.md",1780],d2579eb1:[()=>n.e(2217).then(n.bind(n,9662)),"@site/docs/reference/dependency.md",9662],d2cb90df:[()=>Promise.all([n.e(4148),n.e(1166)]).then(n.bind(n,1525)),"@site/docs/guides/advanced/piping.md",1525],d31dbc43:[()=>n.e(739).then(n.bind(n,9143)),"@site/docs/cookbooks/package/native-images.md",9143],d37d8529:[()=>Promise.all([n.e(4148),n.e(3303)]).then(n.bind(n,3289)),"@site/docs/commands/compile.md",3289],d567b1da:[()=>n.e(3819).then(n.t.bind(n,2776,19)),"/home/runner/work/scala-cli/scala-cli/website/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],d8b23d63:[()=>Promise.all([n.e(4148),n.e(4637)]).then(n.bind(n,7316)),"@site/docs/guides/advanced/snippets.md",7316],dab365ce:[()=>n.e(1103).then(n.bind(n,1353)),"@site/docs/commands/export.md",1353],e4a75451:[()=>Promise.all([n.e(4148),n.e(4808)]).then(n.bind(n,5328)),"@site/docs/guides/advanced/verbosity.md",5328],e720adfb:[()=>n.e(2974).then(n.bind(n,9847)),"@site/docs/cookbooks/introduction/scala-jvm.md",9847],e7ff3c53:[()=>n.e(4865).then(n.bind(n,4054)),"@site/docs/guides/power/proxy.md",4054],e8002ede:[()=>n.e(4944).then(n.bind(n,5669)),"@site/docs/cookbooks/ide/emacs.md",5669],e9e3ad82:[()=>n.e(9277).then(n.bind(n,9277)),"@site/docs/commands/completions.md",9277],eb5c744b:[()=>n.e(9038).then(n.bind(n,6547)),"@site/docs/guides/power/sbt-mill.md",6547],ee7ef1d2:[()=>n.e(5769).then(n.bind(n,8895)),"@site/src/pages/projects.js",8895],f5e5b6d4:[()=>Promise.all([n.e(4148),n.e(4262)]).then(n.bind(n,874)),"@site/docs/commands/repl.md",874],f7f459b5:[()=>Promise.all([n.e(4148),n.e(4407)]).then(n.bind(n,5847)),"@site/docs/guides/advanced/scala-js.md",5847],fbe734b0:[()=>Promise.all([n.e(4148),n.e(4102)]).then(n.bind(n,6466)),"@site/docs/cookbooks/introduction/instant-startup-scala-scripts.md",6466],fd654483:[()=>Promise.all([n.e(4148),n.e(8770)]).then(n.bind(n,1357)),"@site/docs/cookbooks/introduction/gists.md",1357],fe183f37:[()=>Promise.all([n.e(4148),n.e(4450)]).then(n.bind(n,4343)),"@site/docs/guides/introduction/toolkit.md",4343],fff092db:[()=>n.e(9370).then(n.bind(n,3249)),"@site/docs/guides/power/offline.md",3249]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],h=(0,c.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/education",component:d("/education","d51"),exact:!0},{path:"/install",component:d("/install","2c0"),exact:!0},{path:"/markdown-page",component:d("/markdown-page","882"),exact:!0},{path:"/projects",component:d("/projects","fb8"),exact:!0},{path:"/prototyping",component:d("/prototyping","a81"),exact:!0},{path:"/scripting",component:d("/scripting","e6d"),exact:!0},{path:"/search",component:d("/search","ba9"),exact:!0},{path:"/spark",component:d("/spark","2d7"),exact:!0},{path:"/docs",component:d("/docs","7cc"),routes:[{path:"/docs",component:d("/docs","c7e"),routes:[{path:"/docs",component:d("/docs","af3"),routes:[{path:"/docs/commands/basics",component:d("/docs/commands/basics","888"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/clean",component:d("/docs/commands/clean","b33"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/compile",component:d("/docs/commands/compile","d47"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/completions",component:d("/docs/commands/completions","c5d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/config",component:d("/docs/commands/config","b0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/doc",component:d("/docs/commands/doc","9e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/export",component:d("/docs/commands/export","490"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/fix",component:d("/docs/commands/fix","808"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/fmt",component:d("/docs/commands/fmt","c18"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/misc/bloop",component:d("/docs/commands/misc/bloop","bf9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/misc/default-file",component:d("/docs/commands/misc/default-file","908"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/misc/pgp",component:d("/docs/commands/misc/pgp","58e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/package",component:d("/docs/commands/package","17c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/publishing/publish",component:d("/docs/commands/publishing/publish","88d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/publishing/publish-local",component:d("/docs/commands/publishing/publish-local","e9c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/publishing/publish-setup",component:d("/docs/commands/publishing/publish-setup","96f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/repl",component:d("/docs/commands/repl","5c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/run",component:d("/docs/commands/run","472"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/setup-ide",component:d("/docs/commands/setup-ide","23d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/shebang",component:d("/docs/commands/shebang","204"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/test",component:d("/docs/commands/test","3f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/commands/version",component:d("/docs/commands/version","e0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/ide/emacs",component:d("/docs/cookbooks/ide/emacs","28c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/ide/intellij",component:d("/docs/cookbooks/ide/intellij","671"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/ide/intellij-multi-bsp",component:d("/docs/cookbooks/ide/intellij-multi-bsp","227"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/ide/intellij-sbt-with-bsp",component:d("/docs/cookbooks/ide/intellij-sbt-with-bsp","041"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/ide/vscode",component:d("/docs/cookbooks/ide/vscode","ec0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/intro",component:d("/docs/cookbooks/intro","0ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/debugging",component:d("/docs/cookbooks/introduction/debugging","d02"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/gh-action",component:d("/docs/cookbooks/introduction/gh-action","01b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/gists",component:d("/docs/cookbooks/introduction/gists","fd9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/instant-startup-scala-scripts",component:d("/docs/cookbooks/introduction/instant-startup-scala-scripts","985"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/scala-jvm",component:d("/docs/cookbooks/introduction/scala-jvm","6ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/scala-scripts",component:d("/docs/cookbooks/introduction/scala-scripts","7b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/scala-versions",component:d("/docs/cookbooks/introduction/scala-versions","a46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/introduction/test-only",component:d("/docs/cookbooks/introduction/test-only","fda"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/package/native-images",component:d("/docs/cookbooks/package/native-images","0cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/package/scala-docker",component:d("/docs/cookbooks/package/scala-docker","009"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cookbooks/package/scala-package",component:d("/docs/cookbooks/package/scala-package","650"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting_started",component:d("/docs/getting_started","fdc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/custom-toolkit",component:d("/docs/guides/advanced/custom-toolkit","a5e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/internals",component:d("/docs/guides/advanced/internals","ec3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/java-properties",component:d("/docs/guides/advanced/java-properties","e9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/piping",component:d("/docs/guides/advanced/piping","c0a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/scala-js",component:d("/docs/guides/advanced/scala-js","287"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/scala-native",component:d("/docs/guides/advanced/scala-native","9e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/snippets",component:d("/docs/guides/advanced/snippets","82c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/advanced/verbosity",component:d("/docs/guides/advanced/verbosity","915"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/intro",component:d("/docs/guides/intro","3bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/configuration",component:d("/docs/guides/introduction/configuration","790"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/dependencies",component:d("/docs/guides/introduction/dependencies","db9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/ide",component:d("/docs/guides/introduction/ide","ece"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/old-runner-migration",component:d("/docs/guides/introduction/old-runner-migration","359"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/toolkit",component:d("/docs/guides/introduction/toolkit","fa0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/update-dependencies",component:d("/docs/guides/introduction/update-dependencies","b2d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/introduction/using-directives",component:d("/docs/guides/introduction/using-directives","34a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/markdown",component:d("/docs/guides/power/markdown","748"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/offline",component:d("/docs/guides/power/offline","a62"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/proxy",component:d("/docs/guides/power/proxy","b9c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/python",component:d("/docs/guides/power/python","cd7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/repositories",component:d("/docs/guides/power/repositories","f9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/power/sbt-mill",component:d("/docs/guides/power/sbt-mill","ed9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/scripting/scripts",component:d("/docs/guides/scripting/scripts","789"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/guides/scripting/shebang",component:d("/docs/guides/scripting/shebang","afe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/overview",component:d("/docs/overview","9fa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/build-info",component:d("/docs/reference/build-info","53f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/cli-options",component:d("/docs/reference/cli-options","868"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/commands",component:d("/docs/reference/commands","f53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/dependency",component:d("/docs/reference/dependency","bcb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/directives",component:d("/docs/reference/directives","f80"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/password-options",component:d("/docs/reference/password-options","3b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/root-dir",component:d("/docs/reference/root-dir","f1f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-command/",component:d("/docs/reference/scala-command/","9c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-command/cli-options",component:d("/docs/reference/scala-command/cli-options","f0d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-command/commands",component:d("/docs/reference/scala-command/commands","c4a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-command/directives",component:d("/docs/reference/scala-command/directives","29a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-command/runner-specification",component:d("/docs/reference/scala-command/runner-specification","da9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reference/scala-versions",component:d("/docs/reference/scala-versions","2e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/release_notes",component:d("/docs/release_notes","0f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/under-the-hood",component:d("/docs/under-the-hood","bfa"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/",component:d("/","e8d"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},442:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2961)];var c=n(723),u=n(6550),d=n(8790),p=n(5742),f=n(5893);const h=function(e){let{children:t}=e;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(p.Z,{children:(0,f.jsx)("script",{children:"(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-5TZTCGF');"})}),t]})};var m=n(2263),g=n(4996),b=n(6668),y=n(1944),v=n(4711),k=n(9727),w=n(3320),x=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(p.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(p.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(p.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.h})]}),n&&(0,f.jsx)(y.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.Z,{tag:w.HX,locale:e}),(0,f.jsx)(p.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var P=n(8934),N=n(8940),j=n(469);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,j.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(u.AW,{location:t,render:()=>e})})}}const F=I,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),R(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(a.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};R(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"overview","docs":[{"id":"commands/basics","path":"/docs/commands/basics","sidebar":"tutorialSidebar"},{"id":"commands/clean","path":"/docs/commands/clean","sidebar":"tutorialSidebar"},{"id":"commands/compile","path":"/docs/commands/compile","sidebar":"tutorialSidebar"},{"id":"commands/completions","path":"/docs/commands/completions","sidebar":"tutorialSidebar"},{"id":"commands/config","path":"/docs/commands/config","sidebar":"tutorialSidebar"},{"id":"commands/doc","path":"/docs/commands/doc","sidebar":"tutorialSidebar"},{"id":"commands/export","path":"/docs/commands/export","sidebar":"tutorialSidebar"},{"id":"commands/fix","path":"/docs/commands/fix","sidebar":"tutorialSidebar"},{"id":"commands/fmt","path":"/docs/commands/fmt","sidebar":"tutorialSidebar"},{"id":"commands/misc/bloop","path":"/docs/commands/misc/bloop","sidebar":"tutorialSidebar"},{"id":"commands/misc/default-file","path":"/docs/commands/misc/default-file","sidebar":"tutorialSidebar"},{"id":"commands/misc/pgp","path":"/docs/commands/misc/pgp","sidebar":"tutorialSidebar"},{"id":"commands/package","path":"/docs/commands/package","sidebar":"tutorialSidebar"},{"id":"commands/publishing/publish","path":"/docs/commands/publishing/publish","sidebar":"tutorialSidebar"},{"id":"commands/publishing/publish-local","path":"/docs/commands/publishing/publish-local","sidebar":"tutorialSidebar"},{"id":"commands/publishing/publish-setup","path":"/docs/commands/publishing/publish-setup","sidebar":"tutorialSidebar"},{"id":"commands/repl","path":"/docs/commands/repl","sidebar":"tutorialSidebar"},{"id":"commands/run","path":"/docs/commands/run","sidebar":"tutorialSidebar"},{"id":"commands/setup-ide","path":"/docs/commands/setup-ide","sidebar":"tutorialSidebar"},{"id":"commands/shebang","path":"/docs/commands/shebang","sidebar":"tutorialSidebar"},{"id":"commands/test","path":"/docs/commands/test","sidebar":"tutorialSidebar"},{"id":"commands/version","path":"/docs/commands/version","sidebar":"tutorialSidebar"},{"id":"cookbooks/ide/emacs","path":"/docs/cookbooks/ide/emacs","sidebar":"tutorialSidebar"},{"id":"cookbooks/ide/intellij","path":"/docs/cookbooks/ide/intellij","sidebar":"tutorialSidebar"},{"id":"cookbooks/ide/intellij-multi-bsp","path":"/docs/cookbooks/ide/intellij-multi-bsp","sidebar":"tutorialSidebar"},{"id":"cookbooks/ide/intellij-sbt-with-bsp","path":"/docs/cookbooks/ide/intellij-sbt-with-bsp","sidebar":"tutorialSidebar"},{"id":"cookbooks/ide/vscode","path":"/docs/cookbooks/ide/vscode","sidebar":"tutorialSidebar"},{"id":"cookbooks/intro","path":"/docs/cookbooks/intro","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/debugging","path":"/docs/cookbooks/introduction/debugging","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/gh-action","path":"/docs/cookbooks/introduction/gh-action","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/gists","path":"/docs/cookbooks/introduction/gists","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/instant-startup-scala-scripts","path":"/docs/cookbooks/introduction/instant-startup-scala-scripts","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/scala-jvm","path":"/docs/cookbooks/introduction/scala-jvm","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/scala-scripts","path":"/docs/cookbooks/introduction/scala-scripts","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/scala-versions","path":"/docs/cookbooks/introduction/scala-versions","sidebar":"tutorialSidebar"},{"id":"cookbooks/introduction/test-only","path":"/docs/cookbooks/introduction/test-only","sidebar":"tutorialSidebar"},{"id":"cookbooks/package/native-images","path":"/docs/cookbooks/package/native-images","sidebar":"tutorialSidebar"},{"id":"cookbooks/package/scala-docker","path":"/docs/cookbooks/package/scala-docker","sidebar":"tutorialSidebar"},{"id":"cookbooks/package/scala-package","path":"/docs/cookbooks/package/scala-package","sidebar":"tutorialSidebar"},{"id":"getting_started","path":"/docs/getting_started","sidebar":"tutorialSidebar"},{"id":"guides/advanced/custom-toolkit","path":"/docs/guides/advanced/custom-toolkit","sidebar":"tutorialSidebar"},{"id":"guides/advanced/internals","path":"/docs/guides/advanced/internals","sidebar":"tutorialSidebar"},{"id":"guides/advanced/java-properties","path":"/docs/guides/advanced/java-properties","sidebar":"tutorialSidebar"},{"id":"guides/advanced/piping","path":"/docs/guides/advanced/piping","sidebar":"tutorialSidebar"},{"id":"guides/advanced/scala-js","path":"/docs/guides/advanced/scala-js","sidebar":"tutorialSidebar"},{"id":"guides/advanced/scala-native","path":"/docs/guides/advanced/scala-native","sidebar":"tutorialSidebar"},{"id":"guides/advanced/snippets","path":"/docs/guides/advanced/snippets","sidebar":"tutorialSidebar"},{"id":"guides/advanced/verbosity","path":"/docs/guides/advanced/verbosity","sidebar":"tutorialSidebar"},{"id":"guides/intro","path":"/docs/guides/intro","sidebar":"tutorialSidebar"},{"id":"guides/introduction/configuration","path":"/docs/guides/introduction/configuration","sidebar":"tutorialSidebar"},{"id":"guides/introduction/dependencies","path":"/docs/guides/introduction/dependencies","sidebar":"tutorialSidebar"},{"id":"guides/introduction/ide","path":"/docs/guides/introduction/ide","sidebar":"tutorialSidebar"},{"id":"guides/introduction/old-runner-migration","path":"/docs/guides/introduction/old-runner-migration","sidebar":"tutorialSidebar"},{"id":"guides/introduction/toolkit","path":"/docs/guides/introduction/toolkit","sidebar":"tutorialSidebar"},{"id":"guides/introduction/update-dependencies","path":"/docs/guides/introduction/update-dependencies","sidebar":"tutorialSidebar"},{"id":"guides/introduction/using-directives","path":"/docs/guides/introduction/using-directives","sidebar":"tutorialSidebar"},{"id":"guides/power/markdown","path":"/docs/guides/power/markdown","sidebar":"tutorialSidebar"},{"id":"guides/power/offline","path":"/docs/guides/power/offline","sidebar":"tutorialSidebar"},{"id":"guides/power/proxy","path":"/docs/guides/power/proxy","sidebar":"tutorialSidebar"},{"id":"guides/power/python","path":"/docs/guides/power/python","sidebar":"tutorialSidebar"},{"id":"guides/power/repositories","path":"/docs/guides/power/repositories","sidebar":"tutorialSidebar"},{"id":"guides/power/sbt-mill","path":"/docs/guides/power/sbt-mill","sidebar":"tutorialSidebar"},{"id":"guides/scripting/scripts","path":"/docs/guides/scripting/scripts","sidebar":"tutorialSidebar"},{"id":"guides/scripting/shebang","path":"/docs/guides/scripting/shebang","sidebar":"tutorialSidebar"},{"id":"overview","path":"/docs/overview","sidebar":"tutorialSidebar"},{"id":"reference/build-info","path":"/docs/reference/build-info","sidebar":"tutorialSidebar"},{"id":"reference/cli-options","path":"/docs/reference/cli-options","sidebar":"tutorialSidebar"},{"id":"reference/commands","path":"/docs/reference/commands","sidebar":"tutorialSidebar"},{"id":"reference/dependency","path":"/docs/reference/dependency","sidebar":"tutorialSidebar"},{"id":"reference/directives","path":"/docs/reference/directives","sidebar":"tutorialSidebar"},{"id":"reference/password-options","path":"/docs/reference/password-options","sidebar":"tutorialSidebar"},{"id":"reference/root-dir","path":"/docs/reference/root-dir","sidebar":"tutorialSidebar"},{"id":"reference/scala-command/cli-options","path":"/docs/reference/scala-command/cli-options","sidebar":"tutorialSidebar"},{"id":"reference/scala-command/commands","path":"/docs/reference/scala-command/commands","sidebar":"tutorialSidebar"},{"id":"reference/scala-command/directives","path":"/docs/reference/scala-command/directives","sidebar":"tutorialSidebar"},{"id":"reference/scala-command/index","path":"/docs/reference/scala-command/","sidebar":"tutorialSidebar"},{"id":"reference/scala-command/runner-specification","path":"/docs/reference/scala-command/runner-specification","sidebar":"tutorialSidebar"},{"id":"reference/scala-versions","path":"/docs/reference/scala-versions","sidebar":"tutorialSidebar"},{"id":"release_notes","path":"/docs/release_notes","sidebar":"tutorialSidebar"},{"id":"under-the-hood","path":"/docs/under-the-hood","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/overview","label":"overview"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.38.1"}}}');var c=n(5893);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(412),a=n(5742),i=n(8780),s=n(6649),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(405),o=n(5893);function a(e){return(0,o.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(3727),a=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:k}}=(0,i.Z)(),{withBaseUrl:w}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(L=C,b&&(e=>e.startsWith("/"))(L)?w(L):L):void 0;var L;T&&_&&(T=(0,a.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:k}));const P=(0,r.useRef)(!1),N=n?o.OL:o.rU,j=l.Z.canUseIntersectionObserver,A=(0,r.useRef)(),O=()=>{P.current||null==T||(window.docusaurus.preload(T),P.current=!0)};(0,r.useEffect)((()=>(!j&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{j&&A.current&&A.current.disconnect()})),[A,T,j,_]);const R=T?.startsWith("#")??!1,I=!T||!_||R;return I||g||x.collectLink(T),I?(0,c.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(N,{...y,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,j&&e&&_&&(A.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(A.current.unobserve(e),A.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),A.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:h}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),o=n(5893);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),o=n(2263),a=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(2263),o=n(9935);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=a(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>u,_r:()=>l,Jo:()=>h,zh:()=>c,yW:()=>p,gB:()=>d});var r=n(6550),o=n(8084);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const s={},l=()=>(0,o.OD)("docusaurus-plugin-content-docs")??s,c=e=>(0,o.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function u(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function d(e){return c(e).versions}function p(e){const t=c(e);return a(t)}function f(e){const t=c(e),{pathname:n}=(0,r.TH)();return i(t,n)}function h(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(4965),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(7719)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},7955:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6905),o=n(5999),a=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,a.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(5893);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},6649:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Mt});var r=n(7294),o=n(6905),a=n(4763),i=n(1944),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),b=n(9727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(m,{className:y.skipToContent})}var k=n(6668),w=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=(0,w.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var P=n(3163),N=n(2466);var j=n(902),A=n(3102);const O=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,P.e)(),t=(0,A.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,j.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(O.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(O);if(!e)throw new j.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,A.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=F();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),B=n(2389);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,B.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,o.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Z=r.memo(H),Q={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,k.L)().navbar.style,r=(0,k.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return r?null:(0,u.jsx)(Z,{className:t,buttonClassName:"dark"===n?Q.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(1327);function q(){return(0,u.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,P.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(q,{}),(0,u.jsx)(V,{className:"margin-right--md"}),(0,u.jsx)(G,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=a&&o&&!(0,J.Z)(o),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,h&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(K.Z,{href:l?f:o,...c,...m}):(0,u.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ye,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[c,d,h]),(0,u.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.Z)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ye,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var be=n(1029),ye=n(6010),ve=n(373),ke=n(8084);const we={},xe=()=>(0,ke.OD)("docusaurus-plugin-content-docs")??we;function Se(e){void 0===e&&(e={});const t=xe(),{pathname:n}=(0,s.TH)();return function(e,t,n){void 0===n&&(n={});const r=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,s.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=r?{pluginId:r[0],pluginData:r[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}var Ee=n(22),_e=n(8202),Ce=n(3926),Te=n(1073),Le=n(2539),Pe=n(726);const Ne='',je='',Ae='',Oe='',Re='',Ie='',Fe='',De={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Me(e){let{document:t,type:n,page:r,metadata:o,tokens:a,isInterOfTree:i,isLastOfTree:s}=e;const l=0===n,c=1===n,u=[];i?u.push(Ie):s&&u.push(Fe);const d=u.map((e=>`${e}`)),p=`${l?Ne:c?je:Ae}`,f=[`${(0,Pe.o)(t.t,(0,Te.m)(o,"t"),a)}`];if(!i&&!s&&be.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Ce.e)(e??[])}`)}else l||f.push(`${(0,Le.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),a)}`);const h=`${Oe}`;return[...d,p,``,...f,"",h].join("")}function Be(){return`${Re}${(0,l.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var ze=n(311);async function $e(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const Ue="_highlight";const He=function(e){let{handleSearchBarToggle:t}=e;const n=(0,B.Z)(),{siteConfig:{baseUrl:o}}=(0,le.Z)(),a=Se();let i=o;try{const{preferredVersion:e}=(0,ve.J)(a?.pluginId??be.gQ);e&&!e.isLast&&(i=e.path+"/")}catch(F){if(be.l9&&!(F instanceof j.i6))throw F}const c=(0,s.k6)(),d=(0,s.TH)(),p=(0,r.useRef)(null),f=(0,r.useRef)(new Map),h=(0,r.useRef)(!1),[m,g]=(0,r.useState)(!1),[b,y]=(0,r.useState)(!1),[v,k]=(0,r.useState)(""),w=(0,r.useRef)(null),x=(0,r.useRef)(""),[S,E]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(be.Kc))return;let e="";if(d.pathname.startsWith(i)){const t=d.pathname.substring(i.length),n=be.Kc.find((e=>t===e||t.startsWith(`${e}/`)));n&&(e=n)}x.current!==e&&(f.current.delete(e),x.current=e),E(e)}),[d.pathname,i]);const _=!!be.hG&&Array.isArray(be.Kc)&&""===S,C=(0,r.useCallback)((async()=>{if(_||f.current.get(S))return;f.current.set(S,"loading"),w.current?.autocomplete.destroy(),g(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,Ee.w)(i,S),$e()]);if(w.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,ye.Z)(De.searchBar,{[De.searchBarLeft]:"left"===be.pu}),noPrefix:!0,dropdownMenu:De.dropdownMenu,input:De.input,hint:De.hint,suggestions:De.suggestions,suggestion:De.suggestion,cursor:De.cursor,dataset:De.dataset,empty:De.empty}},[{source:(0,_e.v)(e,t,be.qo),templates:{suggestion:Me,empty:Be,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&!S)return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),a=new URLSearchParams,s=(0,l.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),u=(0,l.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:S}),d=(0,l.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:S});let p;if(a.set("q",t),p=S&&n?u:S?d:s,Array.isArray(be.Kc)&&!n&&a.set("ctx",S),i!==o){if(!i.startsWith(o))throw new Error(`Version url '${i}' does not start with base url '${o}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);a.set("version",i.substring(o.length))}const f=`${o}search?${a.toString()}`;return r.href=f,r.textContent=p,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),w.current?.autocomplete.close(),c.push(f))})),r})({query:t,isEmpty:n}),a=document.createElement("div");return a.className=De.hitFooter,a.appendChild(r),a}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:o}=t;p.current?.blur();let a=n;if(be.vc&&o.length>0){const e=new URLSearchParams;for(const t of o)e.append(Ue,t);a+=`?${e.toString()}`}r&&(a+=r),c.push(a)})).on("autocomplete:closed",(()=>{p.current?.blur()})),f.current.set(S,"done"),g(!1),h.current){const e=p.current;e.value&&w.current?.autocomplete.open(),e.focus()}}),[_,S,i,o,c]);(0,r.useEffect)((()=>{if(!be.vc)return;const e=n?new URLSearchParams(d.search).getAll(Ue):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new be.vc(t);n.unmark(),0!==e.length&&n.mark(e),k(e.join(" ")),w.current?.autocomplete.setVal(e.join(" "))}))}),[n,d.search,d.pathname]);const[T,L]=(0,r.useState)(!1),P=(0,r.useCallback)((()=>{h.current=!0,C(),L(!0),t?.(!0)}),[t,C]),N=(0,r.useCallback)((()=>{L(!1),t?.(!1)}),[t]),A=(0,r.useCallback)((()=>{C()}),[C]),O=(0,r.useCallback)((e=>{k(e.target.value),e.target.value&&y(!0)}),[]),R=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!be.AY)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),p.current?.focus(),P())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,P]);const I=(0,r.useCallback)((()=>{const e=new URLSearchParams(d.search);e.delete(Ue);const t=e.toString(),n=d.pathname+(""!=t?`?${t}`:"")+d.hash;n!=d.pathname+d.search+d.hash&&c.push(n),k(""),w.current?.autocomplete.setVal("")}),[d.pathname,d.search,d.hash,c]);return(0,u.jsxs)("div",{className:(0,ye.Z)("navbar__search",De.searchBarContainer,{[De.searchIndexLoading]:m&&b,[De.focused]:T}),hidden:_,children:[(0,u.jsx)("input",{placeholder:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:A,onFocus:P,onBlur:N,onChange:O,ref:p,value:v}),(0,u.jsx)(ze.Z,{className:De.searchBarLoadingRing}),be.AY&&be.t_&&(""!==v?(0,u.jsx)("button",{className:De.searchClearButton,onClick:I,children:"\u2715"}):n&&(0,u.jsxs)("div",{className:De.searchHintContainer,children:[(0,u.jsx)("kbd",{className:De.searchHint,children:R?"\u2318":"ctrl"}),(0,u.jsx)("kbd",{className:De.searchHint,children:"K"})]}))]})},Ze={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Qe(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.Z)(n,Ze.navbarSearchContainer),children:t})}var Ve=n(4104),We=n(3438);const qe=e=>e.docs.find((t=>t.id===e.mainDocId));const Ge={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,he.l)(),{search:f,hash:h}=(0,s.TH)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Qe,{className:n,children:(0,u.jsx)(He,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Ve.Iw)(r),i=(0,We.vY)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Ve.Iw)(r),i=(0,We.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,We.lO)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,Ve.Iw)(n),f=(0,Ve.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??qe(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...a],g=(0,We.lO)(n)[0],b=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&m.length>1?void 0:qe(g).path;return m.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:y,items:m,isActive:r?()=>!1:void 0})}};function Ye(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ge[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ke(){const e=(0,P.e)(),t=(0,k.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ye,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Xe(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Je(){const e=0===(0,k.L)().navbar.items.length,t=F();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Xe,{onClick:()=>t.hide()}),t.content]})}function et(){const e=(0,P.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(D,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ke,{}),secondaryMenu:(0,u.jsx)(Je,{})}):null}const tt={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function nt(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function rt(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,k.L)(),i=(0,P.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[tt.navbarHideable,!d&&tt.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(nt,{onClick:i.toggle}),(0,u.jsx)(et,{})]})}var ot=n(8780);const at={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function it(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function st(e){let{error:t}=e;const n=(0,ot.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:at.errorBoundaryError,children:n})}class lt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const ct="right";function ut(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function dt(){const{toggle:e,shown:t}=(0,P.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ut,{})})}const pt={colorModeToggle:"colorModeToggle_DEke"};function ft(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(lt,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ye,{...e})},t)))})}function ht(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function mt(){const e=(0,P.e)(),t=(0,k.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??ct)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(ht,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(dt,{}),(0,u.jsx)(q,{}),(0,u.jsx)(ft,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ft,{items:r}),(0,u.jsx)(V,{className:pt.colorModeToggle}),!o&&(0,u.jsx)(Qe,{children:(0,u.jsx)(He,{})})]})})}function gt(){return(0,u.jsx)(rt,{children:(0,u.jsx)(mt,{})})}function bt(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.Z,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function yt(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(bt,{item:t})},t.href??t.to)}function vt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(yt,{item:e},t)))})]})}function kt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(vt,{column:e},t)))})}function wt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function xt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(bt,{item:t})}function St(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(xt,{item:e}),t.length!==n+1&&(0,u.jsx)(wt,{})]},n)))})})}function Et(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(kt,{columns:t}):(0,u.jsx)(St,{links:t})}var _t=n(9965);const Ct={footerLogoLink:"footerLogoLink_BH7S"};function Tt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(_t.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Lt(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.Z,{href:t.href,className:Ct.footerLogoLink,target:t.target,children:(0,u.jsx)(Tt,{logo:t})}):(0,u.jsx)(Tt,{logo:t})}function Pt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Nt(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function jt(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(Nt,{style:o,links:n&&n.length>0&&(0,u.jsx)(Et,{links:n}),logo:r&&(0,u.jsx)(Lt,{logo:r}),copyright:t&&(0,u.jsx)(Pt,{copyright:t})})}const At=r.memo(jt),Ot=(0,j.Qc)([M.S,w.pl,N.OC,ve.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(A.n2,{children:(0,u.jsx)(P.M,{children:(0,u.jsx)(R,{children:t})})})}]);function Rt(e){let{children:t}=e;return(0,u.jsx)(Ot,{children:t})}var It=n(7955);function Ft(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(It.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(it,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(st,{error:t})})]})})})}const Dt={mainWrapper:"mainWrapper_z2l0"};function Mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(Rt,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(L,{}),(0,u.jsx)(gt,{}),(0,u.jsx)("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,Dt.mainWrapper,r),children:(0,u.jsx)(a.Z,{fallback:e=>(0,u.jsx)(Ft,{...e}),children:t})}),!n&&(0,u.jsx)(At,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),o=n(4996),a=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.Z)(s?.href||"/"),h=n?"":t,m=s?.alt??h;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:m,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(5742),o=n(5893);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),o=n(788),a=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,a.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),o=n(412),a=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function h(e){if(!o.Z.canUseDOM)return e?u:d}function m(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(m,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),o=n(2389),a=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>g});var r=n(7294),o=n(412),a=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,h=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[o,a]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b});var r=n(7294),o=n(4104),a=n(9935),i=n(6668),s=n(3438),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,u.jsx)(h.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(h);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(7294),o=n(902),a=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),o=n(3102),a=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),o=n(412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?a.desktop:a.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{LM:()=>f,SN:()=>E,_F:()=>g,cE:()=>p,f:()=>y,lO:()=>w,oz:()=>x,s1:()=>k,vY:()=>S});var r=n(7294),o=n(6550),a=n(8790),i=n(4104),s=n(373),l=n(4477),c=n(1116),u=n(7392),d=n(8596);const p=!!i._r;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),m=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||m(e.items,t))}function b(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function k(){const e=(0,c.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,o].filter(Boolean))),[t,n,o])}function x(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,o.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:u}}},1980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>i,_X:()=>s});var r=n(7294),o=n(6550),a=n(902);function i(e){!function(e){const t=(0,o.k6)(),n=(0,a.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>h});var r=n(7294),o=n(788),a=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2263);var u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function h(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.Z)(r,a),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),o=n(469),a=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>m,OC:()=>u,RF:()=>f,o5:()=>h});var r=n(7294),o=n(412),a=n(2389),i=n(469),s=n(902),l=n(5893);const c=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const p=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),o=(0,r.useRef)(p()),a=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function h(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,i.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function m(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(2263);const r="default";function o(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>c});var r=n(7294);const o="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function i(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=i(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),o=n(6550),a=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,o.TH)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(6010);const o={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var a=n(5893);function i(e){let{className:t}=e;return(0,a.jsxs)("div",{className:(0,r.Z)(o.loadingRing,t),children:[(0,a.jsx)("div",{}),(0,a.jsx)("div",{}),(0,a.jsx)("div",{}),(0,a.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),o=n.n(r),a=n(1029);const i=new Map;function s(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${a.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:o().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(1336),o=n.n(r);var a=n(1029);function i(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:o().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?o().Query.wildcard.TRAILING:o().Query.wildcard.NONE})))})))}function l(e,t,n){return function(r,s){const l=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return o()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,a.dK);if(0===l.length)return void s([]);const c=function(e,t){const n=function(e,t){const n=[];return function e(r,o){if(0===r.length)return void n.push(o);const a=r[0];if(/\p{Unified_Ideograph}/u.test(a)){const n=function(e,t){const n=[];return function e(r,o){let a=0,i=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:o.missed,term:o.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),i=!0}else for(let t=s.length-1;t>a;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){a=t;const s={missed:o.missed,term:o.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:o.missed+1,term:o.term}):o.term.length>0&&n.push(o))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(a,t);for(const t of n){const n=o.concat(...t);e(r.slice(1),n)}}else{const t=o.concat({value:a});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:o().Query.presence.REQUIRED,wildcard:o().Query.wildcard.LEADING|o().Query.wildcard.TRAILING})))}];for(const o of n)o[o.length-1].maybeTyping=!0;const r=[];for(const i of a.dK)if("en"===i)a._k||r.unshift(o().stopWordFilter);else{const e=o()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const o of s)if(o.length>2)for(let e=o.length-1;e>=0;e-=1)l.push(o.slice(0,e).concat(o.slice(e+1)));return i(n).concat(i(l))}(l,t),u=[];e:for(const{term:t,tokens:o}of c)for(const{documents:r,index:a,type:i}of e)if(u.push(...a.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!u.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-u.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:o,score:t.score}}))),u.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,o=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===o&&(o=n.index),r===o?0===t.type?-1:0===n.type?1:t.index-n.index:r-o}))}(u),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>o});var r=n(1690);function o(e,t,n){const a=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&a.push(o(e.substr(0,n),t)),a.push(`${(0,r.X)(e.substr(n,i.length))}`);const s=n+i.length;s${(0,r.X)(e)}`:(0,r.X)(e):a.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>l});var r=n(1690),o=n(2539);const a=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const o=r.match(a);if(!o){t.push(r);break}o.index>0&&t.push(r.substring(0,o.index)),t.push(o[0]),n+=o.index+o[0].length,r=e.substring(n)}return t}var s=n(1029);function l(e,t,n,a){void 0===a&&(a=s.Hk);const{chunkIndex:l,chunks:c}=function(e,t,n){const a=[];let s=0,l=0,c=-1;for(;sl){const t=i(e.substring(l,u)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)a.push(e)}-1===c&&(c=a.length),l=u+d,a.push({html:(0,o.C)(e.substring(u,l),n,!0),textLength:d})}}if(l({html:(0,r.X)(e),textLength:e.length})));for(const e of t)a.push(e)}return{chunkIndex:c,chunks:a}}(e,t,n),u=c.slice(0,l),d=c[l],p=[d.html],f=c.slice(l+1);let h=d.textLength,m=0,g=0,b=!1,y=!1;for(;h0){const e=u.pop();h+e.textLength<=a?(p.unshift(e.html),m+=e.textLength,h+=e.textLength):(b=!0,u.length=0)}else{if(!(f.length>0))break;{const e=f.shift();h+e.textLength<=a?(p.push(e.html),g+=e.textLength,h+=e.textLength):(y=!0,f.length=0)}}return(b||u.length>0)&&p.unshift("\u2026"),(y||f.length>0)&&p.push("\u2026"),p.join("")}},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>a,gQ:()=>f,H6:()=>c,hG:()=>g,l9:()=>h,dK:()=>r,_k:()=>o,pu:()=>p,AY:()=>u,t_:()=>d,Kc:()=>m,J:()=>i,Hk:()=>l,qo:()=>s,pQ:()=>b});n(1336);const r=["en"],o=!1,a=null,i="search-index{dir}.json",s=8,l=50,c=!1,u=!0,d=!0,p="right",f=void 0,h=!0,m=null,g=!1,b=!1},6010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>k,q_:()=>C,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var s=n(2177);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,m(),k.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(k.entries[k.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=k.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=f(n);o&&o!==h&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,o;!function(){var a,i,s,l,c,u,d,p,f,h,m,g,b,y,v,k,w,x,S,E,_,C,T,L,P,N,j,A,O,R,I=function(e){var t=new I.Builder;return t.pipeline.add(I.trimmer,I.stopWordFilter,I.stemmer),t.searchPipeline.add(I.stemmer),e.call(t,t),t.build()};I.version="2.3.9",I.utils={},I.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),I.utils.asString=function(e){return null==e?"":e.toString()},I.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=I.utils.clone(t)||{};l.position=[i,s],l.index=o.length,o.push(new I.Token(n.slice(i,a),l))}i=a+1}}return o},I.tokenizer.separator=/[\s\-]+/,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var n=I.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},I.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:as?c+=2:i==s&&(t+=n[l+1]*r[c+1],l+=2,c+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new I.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new I.TokenSet;o.node.edges["*"]=s}if(0==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new I.TokenSet;o.node.edges["*"]=l}1==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var c,u=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?c=o.node.edges[d]:(c=new I.TokenSet,o.node.edges[d]=c),1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:u+o.str.slice(2)})}}}return n},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),s=0;s1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new I.QueryParseError(n,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(r.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new I.QueryParseError(r,t.start,t.end)}if(o.type===I.QueryLexer.TERM)return I.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return I})?r.call(t,n,t,e):r)||(e.exports=o)}()},2961:(e,t,n)=>{"use strict";n.r(t)},2497:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7874:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),h=p.indexOf(f);if(h>-1){++o;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(h+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},2886:()=>{Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant},7719:(e,t,n)=>{var r={"./prism-bash":7874,"./prism-java":2503,"./prism-scala":2886};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=7719},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n