├── frontend
├── .vscode
│ └── extensions.json
├── src
│ ├── vite-env.d.ts
│ ├── main.ts
│ ├── App.svelte
│ ├── assets
│ │ └── svelte.svg
│ └── app.css
├── public
│ ├── wails.png
│ └── svelte.svg
├── tsconfig.json
├── vite.config.ts
├── svelte.config.js
├── .gitignore
├── index.html
├── tsconfig.app.json
├── package.json
├── tsconfig.node.json
└── README.md
├── NEXTSTEPS.md
├── gitignore.tmpl
├── greetservice.go
├── template.json
├── Taskfile.tmpl.yml
├── go.mod.tmpl
├── main.go.tmpl
├── README.md
└── go.sum.tmpl
/frontend/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["svelte.svelte-vscode"]
3 | }
4 |
--------------------------------------------------------------------------------
/frontend/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
--------------------------------------------------------------------------------
/frontend/public/wails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidscottmills/wails-svelte-vite-template/main/frontend/public/wails.png
--------------------------------------------------------------------------------
/NEXTSTEPS.md:
--------------------------------------------------------------------------------
1 | # Next Steps
2 |
3 | For a full guide on how to create templates, see [Creating Custom Templates](https://v3.wails.io/guides/custom-templates).
--------------------------------------------------------------------------------
/gitignore.tmpl:
--------------------------------------------------------------------------------
1 | .task
2 | bin
3 | frontend/dist
4 | frontend/node_modules
5 | build/linux/appimage/build
6 | build/windows/nsis/MicrosoftEdgeWebview2Setup.exe
--------------------------------------------------------------------------------
/greetservice.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | type GreetService struct{}
4 |
5 | func (g *GreetService) Greet(name string) string {
6 | return "Hello " + name + "!"
7 | }
8 |
--------------------------------------------------------------------------------
/frontend/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/frontend/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import { svelte } from '@sveltejs/vite-plugin-svelte'
3 |
4 | // https://vite.dev/config/
5 | export default defineConfig({
6 | plugins: [svelte()],
7 | })
8 |
--------------------------------------------------------------------------------
/frontend/src/main.ts:
--------------------------------------------------------------------------------
1 | import { mount } from 'svelte'
2 | import './app.css'
3 | import App from './App.svelte'
4 |
5 | const app = mount(App, {
6 | target: document.getElementById('app')!,
7 | })
8 |
9 | export default app
10 |
--------------------------------------------------------------------------------
/template.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Svelte5 Wails Template",
3 | "shortname": "",
4 | "author": "David illsA",
5 | "description": "A template with my preferred setup",
6 | "helpurl": "https://github.com/yourusername/template-docs",
7 | "version": "v1.0.0",
8 | "schema": 3
9 | }
--------------------------------------------------------------------------------
/frontend/svelte.config.js:
--------------------------------------------------------------------------------
1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
2 |
3 | /** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
4 | export default {
5 | // Consult https://svelte.dev/docs#compile-time-svelte-preprocess
6 | // for more information about preprocessors
7 | preprocess: vitePreprocess(),
8 | }
9 |
--------------------------------------------------------------------------------
/frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/frontend/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + Svelte + TS
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/frontend/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/svelte/tsconfig.json",
3 | "compilerOptions": {
4 | "target": "ES2022",
5 | "useDefineForClassFields": true,
6 | "module": "ESNext",
7 | "resolveJsonModule": true,
8 | /**
9 | * Typecheck JS in `.svelte` and `.js` files by default.
10 | * Disable checkJs if you'd like to use dynamic types in JS.
11 | * Note that setting allowJs false does not prevent the use
12 | * of JS in `.svelte` files.
13 | */
14 | "allowJs": true,
15 | "checkJs": true,
16 | "isolatedModules": true,
17 | "moduleDetection": "force"
18 | },
19 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
20 | }
21 |
--------------------------------------------------------------------------------
/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "frontend",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build:dev": "vite build --minify false --mode development",
9 | "build": "vite build",
10 | "preview": "vite preview",
11 | "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
12 | },
13 | "dependencies": {
14 | "@wailsio/runtime": "latest"
15 | },
16 | "devDependencies": {
17 | "@sveltejs/vite-plugin-svelte": "^6.1.1",
18 | "@tsconfig/svelte": "^5.0.4",
19 | "svelte": "^5.38.1",
20 | "svelte-check": "^4.3.1",
21 | "typescript": "~5.8.3",
22 | "vite": "^7.1.2"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/frontend/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4 | "target": "ES2023",
5 | "lib": ["ES2023"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "verbatimModuleSyntax": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 |
16 | /* Linting */
17 | "strict": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "erasableSyntaxOnly": true,
21 | "noFallthroughCasesInSwitch": true,
22 | "noUncheckedSideEffectImports": true
23 | },
24 | "include": ["vite.config.ts"]
25 | }
26 |
--------------------------------------------------------------------------------
/Taskfile.tmpl.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | includes:
4 | common: ./build/Taskfile.yml
5 | windows: ./build/windows/Taskfile.yml
6 | darwin: ./build/darwin/Taskfile.yml
7 | linux: ./build/linux/Taskfile.yml
8 |
9 | vars:
10 | APP_NAME: "{{.ProjectName}}"
11 | BIN_DIR: "bin"
12 | VITE_PORT: {{ "'{{.WAILS_VITE_PORT | default 9245}}'" }}
13 |
14 | tasks:
15 | build:
16 | summary: Builds the application
17 | cmds:
18 | - task: "{{ "{{OS}}" }}:build"
19 |
20 | package:
21 | summary: Packages a production build of the application
22 | cmds:
23 | - task: "{{ "{{OS}}" }}:package"
24 |
25 | run:
26 | summary: Runs the application
27 | cmds:
28 | - task: "{{ "{{OS}}" }}:run"
29 |
30 | dev:
31 | summary: Runs the application in development mode
32 | cmds:
33 | - wails3 dev -config ./build/config.yml -port {{ "{{.VITE_PORT}}" }}
34 |
35 |
--------------------------------------------------------------------------------
/frontend/src/App.svelte:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
Wails + Svelte
38 |
{result}
39 |
40 |
41 |
42 |
43 |
44 |
45 |
49 |
50 |
51 |
54 |
--------------------------------------------------------------------------------
/frontend/public/svelte.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/assets/svelte.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/go.mod.tmpl:
--------------------------------------------------------------------------------
1 | module changeme
2 |
3 | go 1.24
4 |
5 | require github.com/wailsapp/wails/v3 {{.WailsVersion}}
6 |
7 | require (
8 | dario.cat/mergo v1.0.1 // indirect
9 | github.com/Microsoft/go-winio v0.6.2 // indirect
10 | github.com/ProtonMail/go-crypto v1.1.5 // indirect
11 | github.com/adrg/xdg v0.5.3 // indirect
12 | github.com/bep/debounce v1.2.1 // indirect
13 | github.com/cloudflare/circl v1.6.0 // indirect
14 | github.com/cyphar/filepath-securejoin v0.4.1 // indirect
15 | github.com/ebitengine/purego v0.8.2 // indirect
16 | github.com/emirpasic/gods v1.18.1 // indirect
17 | github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
18 | github.com/go-git/go-billy/v5 v5.6.2 // indirect
19 | github.com/go-git/go-git/v5 v5.13.2 // indirect
20 | github.com/go-ole/go-ole v1.3.0 // indirect
21 | github.com/godbus/dbus/v5 v5.1.0 // indirect
22 | github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
23 | github.com/google/uuid v1.6.0 // indirect
24 | github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
25 | github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect
26 | github.com/kevinburke/ssh_config v1.2.0 // indirect
27 | github.com/leaanthony/go-ansi-parser v1.6.1 // indirect
28 | github.com/leaanthony/u v1.1.1 // indirect
29 | github.com/lmittmann/tint v1.0.7 // indirect
30 | github.com/mattn/go-colorable v0.1.14 // indirect
31 | github.com/mattn/go-isatty v0.0.20 // indirect
32 | github.com/pjbgf/sha1cd v0.3.2 // indirect
33 | github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
34 | github.com/pkg/errors v0.9.1 // indirect
35 | github.com/rivo/uniseg v0.4.7 // indirect
36 | github.com/samber/lo v1.49.1 // indirect
37 | github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
38 | github.com/skeema/knownhosts v1.3.1 // indirect
39 | github.com/wailsapp/go-webview2 v1.0.19 // indirect
40 | github.com/wailsapp/mimetype v1.4.1 // indirect
41 | github.com/xanzy/ssh-agent v0.3.3 // indirect
42 | golang.org/x/crypto v0.33.0 // indirect
43 | golang.org/x/net v0.35.0 // indirect
44 | golang.org/x/sys v0.30.0 // indirect
45 | golang.org/x/text v0.22.0 // indirect
46 | gopkg.in/ini.v1 v1.67.0 // indirect
47 | gopkg.in/warnings.v0 v0.1.2 // indirect
48 | )
49 | {{if .LocalModulePath}}
50 | replace github.com/wailsapp/wails/v3 => {{.LocalModulePath}}v3
51 | {{end}}
52 |
--------------------------------------------------------------------------------
/main.go.tmpl:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "embed"
5 | _ "embed"
6 | "log"
7 | "time"
8 |
9 | "github.com/wailsapp/wails/v3/pkg/application"
10 | )
11 |
12 | // Wails uses Go's `embed` package to embed the frontend files into the binary.
13 | // Any files in the frontend/dist folder will be embedded into the binary and
14 | // made available to the frontend.
15 | // See https://pkg.go.dev/embed for more information.
16 |
17 | //go:embed all:frontend/dist
18 | var assets embed.FS
19 |
20 | // main function serves as the application's entry point. It initializes the application, creates a window,
21 | // and starts a goroutine that emits a time-based event every second. It subsequently runs the application and
22 | // logs any error that might occur.
23 | func main() {
24 |
25 | // Create a new Wails application by providing the necessary options.
26 | // Variables 'Name' and 'Description' are for application metadata.
27 | // 'Assets' configures the asset server with the 'FS' variable pointing to the frontend files.
28 | // 'Bind' is a list of Go struct instances. The frontend has access to the methods of these instances.
29 | // 'Mac' options tailor the application when running an macOS.
30 | app := application.New(application.Options{
31 | Name: "{{.ProjectName}}",
32 | Description: "A demo using Wails with a Svelte5 frontend",
33 | Services: []application.Service{
34 | application.NewService(&GreetService{}),
35 | },
36 | Assets: application.AssetOptions{
37 | Handler: application.AssetFileServerFS(assets),
38 | },
39 | Mac: application.MacOptions{
40 | ApplicationShouldTerminateAfterLastWindowClosed: true,
41 | },
42 | })
43 |
44 | // Create a new window with the necessary options.
45 | // 'Title' is the title of the window.
46 | // 'Mac' options tailor the window when running on macOS.
47 | // 'BackgroundColour' is the background colour of the window.
48 | // 'URL' is the URL that will be loaded into the webview.
49 | app.Window.NewWithOptions(application.WebviewWindowOptions{
50 | Title: "Window 1",
51 | Mac: application.MacWindow{
52 | InvisibleTitleBarHeight: 50,
53 | Backdrop: application.MacBackdropTranslucent,
54 | TitleBar: application.MacTitleBarHiddenInset,
55 | },
56 | BackgroundColour: application.NewRGB(27, 38, 54),
57 | URL: "/",
58 | })
59 |
60 | // Create a goroutine that emits an event containing the current time every second.
61 | // The frontend can listen to this event and update the UI accordingly.
62 | go func() {
63 | for {
64 | now := time.Now().Format(time.RFC1123)
65 | app.Event.Emit("time", now)
66 | time.Sleep(time.Second)
67 | }
68 | }()
69 |
70 | // Run the application. This blocks until the application has been exited.
71 | err := app.Run()
72 |
73 | // If an error occurred while running the application, log it and exit.
74 | if err != nil {
75 | log.Fatal(err)
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Welcome to Your New Wails3 Project!
2 |
3 | ## Usage
4 |
5 | To use this template, perform the following
6 | ```
7 | wails3 init -n my-awesome-project -t https://github.com/davidscottmills/wails-svelte-vite-template
8 | ```
9 |
10 | Congratulations on generating your Wails3 application! This README will guide you through the next steps to get your project up and running.
11 |
12 | ## Issues
13 |
14 | The wails3 cli does not remove the `.git` directory, so do the following step and add your own source control.
15 |
16 | ```
17 | rm -rf .git
18 | ```
19 |
20 | There are some issues when initially runing after generating from the template. You may see something like:
21 |
22 | ```
23 | sh: /frontend/node_modules/.bin/vite: Permission denied
24 | ```
25 |
26 | If you encouter this, perform the following:
27 |
28 | ```
29 | cd frontend
30 | rm -rf node_modules package-lock.json
31 | npm i
32 | cd ..
33 | wails3 dev
34 | ```
35 |
36 | ## Getting Started
37 |
38 | 1. Navigate to your project directory in the terminal.
39 |
40 | 2. To run your application in development mode, use the following command:
41 |
42 | ```
43 | wails3 generate bindings -ts
44 | wails3 dev
45 | ```
46 |
47 | This will start your application and enable hot-reloading for both frontend and backend changes.
48 |
49 | 3. To build your application for production, use:
50 |
51 | ```
52 | wails3 build
53 | ```
54 |
55 | This will create a production-ready executable in the `build` directory.
56 |
57 | ## Exploring Wails3 Features
58 |
59 | Now that you have your project set up, it's time to explore the features that Wails3 offers:
60 |
61 | 1. **Check out the examples**: The best way to learn is by example. Visit the `examples` directory in the `v3/examples` directory to see various sample applications.
62 |
63 | 2. **Run an example**: To run any of the examples, navigate to the example's directory and use:
64 |
65 | ```
66 | go run .
67 | ```
68 |
69 | Note: Some examples may be under development during the alpha phase.
70 |
71 | 3. **Explore the documentation**: Visit the [Wails3 documentation](https://v3.wails.io/) for in-depth guides and API references.
72 |
73 | 4. **Join the community**: Have questions or want to share your progress? Join the [Wails Discord](https://discord.gg/JDdSxwjhGf) or visit the [Wails discussions on GitHub](https://github.com/wailsapp/wails/discussions).
74 |
75 | ## Project Structure
76 |
77 | Take a moment to familiarize yourself with your project structure:
78 |
79 | - `frontend/`: Contains your frontend code (HTML, CSS, JavaScript/TypeScript)
80 | - `main.go`: The entry point of your Go backend
81 | - `app.go`: Define your application structure and methods here
82 | - `wails.json`: Configuration file for your Wails project
83 |
84 | ## Next Steps
85 |
86 | 1. Modify the frontend in the `frontend/` directory to create your desired UI.
87 | 2. Add backend functionality in `main.go`.
88 | 3. Use `wails3 dev` to see your changes in real-time.
89 | 4. When ready, build your application with `wails3 build`.
90 |
91 | Happy coding with Wails3! If you encounter any issues or have questions, don't hesitate to consult the documentation or reach out to the Wails community.
92 |
--------------------------------------------------------------------------------
/frontend/README.md:
--------------------------------------------------------------------------------
1 | # Svelte + TS + Vite
2 |
3 | This template should help get you started developing with Svelte and TypeScript in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | [VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
8 |
9 | ## Need an official Svelte framework?
10 |
11 | Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
12 |
13 | ## Technical considerations
14 |
15 | **Why use this over SvelteKit?**
16 |
17 | - It brings its own routing solution which might not be preferable for some users.
18 | - It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
19 |
20 | This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
21 |
22 | Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
23 |
24 | **Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
25 |
26 | Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
27 |
28 | **Why include `.vscode/extensions.json`?**
29 |
30 | Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
31 |
32 | **Why enable `allowJs` in the TS template?**
33 |
34 | While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
35 |
36 | **Why is HMR not preserving my local component state?**
37 |
38 | HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
39 |
40 | If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
41 |
42 | ```ts
43 | // store.ts
44 | // An extremely simple external store
45 | import { writable } from 'svelte/store'
46 | export default writable(0)
47 | ```
48 |
--------------------------------------------------------------------------------
/frontend/src/app.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
3 | "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
4 | sans-serif;
5 | font-size: 16px;
6 | line-height: 24px;
7 | font-weight: 400;
8 | color-scheme: light dark;
9 | color: rgba(255, 255, 255, 0.87);
10 | background-color: rgba(27, 38, 54, 1);
11 | font-synthesis: none;
12 | text-rendering: optimizeLegibility;
13 | -webkit-font-smoothing: antialiased;
14 | -moz-osx-font-smoothing: grayscale;
15 | -webkit-text-size-adjust: 100%;
16 | user-select: none;
17 | -webkit-user-select: none;
18 | -moz-user-select: none;
19 | -ms-user-select: none;
20 | }
21 |
22 | @font-face {
23 | font-family: "Inter";
24 | font-style: normal;
25 | font-weight: 400;
26 | src: local(""),
27 | url("./Inter-Medium.ttf") format("truetype");
28 | }
29 |
30 | h3 {
31 | font-size: 3em;
32 | line-height: 1.1;
33 | }
34 |
35 | a {
36 | font-weight: 500;
37 | color: #646cff;
38 | text-decoration: inherit;
39 | }
40 |
41 | a:hover {
42 | color: #535bf2;
43 | }
44 |
45 | button {
46 | width: 60px;
47 | height: 30px;
48 | line-height: 30px;
49 | border-radius: 3px;
50 | border: none;
51 | margin: 0 0 0 20px;
52 | padding: 0 8px;
53 | cursor: pointer;
54 | }
55 |
56 | .result {
57 | height: 20px;
58 | line-height: 20px;
59 | }
60 |
61 | body {
62 | margin: 0;
63 | display: flex;
64 | place-items: center;
65 | place-content: center;
66 | min-width: 320px;
67 | min-height: 100vh;
68 | }
69 |
70 | .container {
71 | display: flex;
72 | flex-direction: column;
73 | align-items: center;
74 | justify-content: center;
75 | }
76 |
77 | h1 {
78 | font-size: 3.2em;
79 | line-height: 1.1;
80 | }
81 |
82 | #app {
83 | max-width: 1280px;
84 | margin: 0 auto;
85 | padding: 2rem;
86 | text-align: center;
87 | }
88 |
89 | .logo {
90 | height: 6em;
91 | padding: 1.5em;
92 | will-change: filter;
93 | }
94 |
95 | .logo:hover {
96 | filter: drop-shadow(0 0 2em #e80000aa);
97 | }
98 |
99 | .logo.vanilla:hover {
100 | filter: drop-shadow(0 0 2em #f7df1eaa);
101 | }
102 |
103 | .result {
104 | height: 20px;
105 | line-height: 20px;
106 | margin: 1.5rem auto;
107 | text-align: center;
108 | }
109 |
110 | .footer {
111 | margin-top: 1rem;
112 | align-content: center;
113 | text-align: center;
114 | }
115 |
116 | @media (prefers-color-scheme: light) {
117 | :root {
118 | color: #213547;
119 | background-color: #ffffff;
120 | }
121 |
122 | a:hover {
123 | color: #747bff;
124 | }
125 |
126 | button {
127 | background-color: #f9f9f9;
128 | }
129 | }
130 |
131 |
132 | .input-box .btn:hover {
133 | background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
134 | color: #333333;
135 | }
136 |
137 | .input-box .input {
138 | border: none;
139 | border-radius: 3px;
140 | outline: none;
141 | height: 30px;
142 | line-height: 30px;
143 | padding: 0 10px;
144 | color: black;
145 | background-color: rgba(240, 240, 240, 1);
146 | -webkit-font-smoothing: antialiased;
147 | }
148 |
149 | .input-box .input:hover {
150 | border: none;
151 | background-color: rgba(255, 255, 255, 1);
152 | }
153 |
154 | .input-box .input:focus {
155 | border: none;
156 | background-color: rgba(255, 255, 255, 1);
157 | }
--------------------------------------------------------------------------------
/go.sum.tmpl:
--------------------------------------------------------------------------------
1 | dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
2 | dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
3 | github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
4 | github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
5 | github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
6 | github.com/ProtonMail/go-crypto v1.1.5 h1:eoAQfK2dwL+tFSFpr7TbOaPNUbPiJj4fLYwwGE1FQO4=
7 | github.com/ProtonMail/go-crypto v1.1.5/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
8 | github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78=
9 | github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ=
10 | github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
11 | github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
12 | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
13 | github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
14 | github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
15 | github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
16 | github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
17 | github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
18 | github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
19 | github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
20 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
21 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
22 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
23 | github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I=
24 | github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
25 | github.com/elazarl/goproxy v1.4.0 h1:4GyuSbFa+s26+3rmYNSuUVsx+HgPrV1bk1jXI0l9wjM=
26 | github.com/elazarl/goproxy v1.4.0/go.mod h1:X/5W/t+gzDyLfHW4DrMdpjqYjpXsURlBt9lpBDxZZZQ=
27 | github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
28 | github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
29 | github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
30 | github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
31 | github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
32 | github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
33 | github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM=
34 | github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
35 | github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
36 | github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
37 | github.com/go-git/go-git/v5 v5.13.2 h1:7O7xvsK7K+rZPKW6AQR1YyNhfywkv7B8/FsP3ki6Zv0=
38 | github.com/go-git/go-git/v5 v5.13.2/go.mod h1:hWdW5P4YZRjmpGHwRH2v3zkWcNl6HeXaXQEMGb3NJ9A=
39 | github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
40 | github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
41 | github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
42 | github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
43 | github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
44 | github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
45 | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
46 | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
47 | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
48 | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
49 | github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
50 | github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
51 | github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
52 | github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
53 | github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
54 | github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
55 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
56 | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
57 | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
58 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
59 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
60 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
61 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
62 | github.com/leaanthony/go-ansi-parser v1.6.1 h1:xd8bzARK3dErqkPFtoF9F3/HgN8UQk0ed1YDKpEz01A=
63 | github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU=
64 | github.com/leaanthony/u v1.1.1 h1:TUFjwDGlNX+WuwVEzDqQwC2lOv0P4uhTQw7CMFdiK7M=
65 | github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI=
66 | github.com/lmittmann/tint v1.0.7 h1:D/0OqWZ0YOGZ6AyC+5Y2kD8PBEzBk6rFHVSfOqCkF9Y=
67 | github.com/lmittmann/tint v1.0.7/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE=
68 | github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
69 | github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ=
70 | github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
71 | github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
72 | github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
73 | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
74 | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
75 | github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
76 | github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
77 | github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
78 | github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
79 | github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
80 | github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
81 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
82 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
83 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
84 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
85 | github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
86 | github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
87 | github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
88 | github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
89 | github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
90 | github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew=
91 | github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o=
92 | github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
93 | github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
94 | github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
95 | github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
96 | github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
97 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
98 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
99 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
100 | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
101 | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
102 | github.com/wailsapp/go-webview2 v1.0.19 h1:7U3QcDj1PrBPaxJNCui2k1SkWml+Q5kvFUFyTImA6NU=
103 | github.com/wailsapp/go-webview2 v1.0.19/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc=
104 | github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
105 | github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
106 | github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
107 | github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
108 | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
109 | golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
110 | golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
111 | golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs=
112 | golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo=
113 | golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
114 | golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
115 | golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
116 | golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
117 | golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
118 | golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
119 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
120 | golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
121 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
122 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
123 | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
124 | golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
125 | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
126 | golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
127 | golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
128 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
129 | golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
130 | golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
131 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
132 | golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
133 | golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
134 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
135 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
136 | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
137 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
138 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
139 | gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
140 | gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
141 | gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
142 | gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
143 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
144 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
145 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
146 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
147 |
--------------------------------------------------------------------------------