Add base go backend
2
.cobra.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
author: Shane C. <shane@scaffoe.com>
|
||||||
|
license: Unlicense
|
5
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
13
.idea/forwardedPorts.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="PortForwardingSettings">
|
||||||
|
<ports>
|
||||||
|
<entry key="5173">
|
||||||
|
<ForwardedPortInfo>
|
||||||
|
<option name="hostPort" value="5173" />
|
||||||
|
<option name="readOnly" value="false" />
|
||||||
|
</ForwardedPortInfo>
|
||||||
|
</entry>
|
||||||
|
</ports>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/inspectionProfiles/Project_Default.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
|
</profile>
|
||||||
|
</component>
|
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/shadow.iml" filepath="$PROJECT_DIR$/.idea/shadow.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
13
.idea/shadow.iml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="Go" enabled="true" />
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
2
LICENSE
|
@ -7,4 +7,4 @@ successors. We intend this dedication to be an overt act of relinquishment in pe
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
For more information, please refer to <http://unlicense.org/>
|
For more information, please refer to <http://unlicense.org/>
|
77
cmd/root.go
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
|
||||||
|
|
||||||
|
*/
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
)
|
||||||
|
|
||||||
|
var cfgFile string
|
||||||
|
|
||||||
|
// rootCmd represents the base command when called without any subcommands
|
||||||
|
var rootCmd = &cobra.Command{
|
||||||
|
Use: "shadow",
|
||||||
|
Short: "A brief description of your application",
|
||||||
|
Long: `A longer description that spans multiple lines and likely contains
|
||||||
|
examples and usage of using your application. For example:
|
||||||
|
|
||||||
|
Cobra is a CLI library for Go that empowers applications.
|
||||||
|
This application is a tool to generate the needed files
|
||||||
|
to quickly create a Cobra application.`,
|
||||||
|
// Uncomment the following line if your bare application
|
||||||
|
// has an action associated with it:
|
||||||
|
// Run: func(cmd *cobra.Command, args []string) { },
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute adds all child commands to the root command and sets flags appropriately.
|
||||||
|
// This is called by main.main(). It only needs to happen once to the rootCmd.
|
||||||
|
func Execute() {
|
||||||
|
err := rootCmd.Execute()
|
||||||
|
if err != nil {
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cobra.OnInitialize(initConfig)
|
||||||
|
|
||||||
|
// Here you will define your flags and configuration settings.
|
||||||
|
// Cobra supports persistent flags, which, if defined here,
|
||||||
|
// will be global for your application.
|
||||||
|
|
||||||
|
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.shadow.yaml)")
|
||||||
|
|
||||||
|
// Cobra also supports local flags, which will only run
|
||||||
|
// when this action is called directly.
|
||||||
|
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
|
||||||
|
}
|
||||||
|
|
||||||
|
// initConfig reads in config file and ENV variables if set.
|
||||||
|
func initConfig() {
|
||||||
|
if cfgFile != "" {
|
||||||
|
// Use config file from the flag.
|
||||||
|
viper.SetConfigFile(cfgFile)
|
||||||
|
} else {
|
||||||
|
// Find home directory.
|
||||||
|
home, err := os.UserHomeDir()
|
||||||
|
cobra.CheckErr(err)
|
||||||
|
|
||||||
|
// Search config in home directory with name ".shadow" (without extension).
|
||||||
|
viper.AddConfigPath(home)
|
||||||
|
viper.SetConfigType("yaml")
|
||||||
|
viper.SetConfigName(".shadow")
|
||||||
|
}
|
||||||
|
|
||||||
|
viper.AutomaticEnv() // read in environment variables that match
|
||||||
|
|
||||||
|
// If a config file is found, read it in.
|
||||||
|
if err := viper.ReadInConfig(); err == nil {
|
||||||
|
fmt.Fprintln(os.Stderr, "Using config file:", viper.ConfigFileUsed())
|
||||||
|
}
|
||||||
|
}
|
40
cmd/run.go
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
|
||||||
|
|
||||||
|
*/
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
// runCmd represents the run command
|
||||||
|
var runCmd = &cobra.Command{
|
||||||
|
Use: "run",
|
||||||
|
Short: "A brief description of your command",
|
||||||
|
Long: `A longer description that spans multiple lines and likely contains examples
|
||||||
|
and usage of using your command. For example:
|
||||||
|
|
||||||
|
Cobra is a CLI library for Go that empowers applications.
|
||||||
|
This application is a tool to generate the needed files
|
||||||
|
to quickly create a Cobra application.`,
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
fmt.Println("run called")
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
rootCmd.AddCommand(runCmd)
|
||||||
|
|
||||||
|
// Here you will define your flags and configuration settings.
|
||||||
|
|
||||||
|
// Cobra supports Persistent Flags which will work for this command
|
||||||
|
// and all subcommands, e.g.:
|
||||||
|
// runCmd.PersistentFlags().String("foo", "", "A help for foo")
|
||||||
|
|
||||||
|
// Cobra supports local flags which will only run when this command
|
||||||
|
// is called directly, e.g.:
|
||||||
|
// runCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
|
||||||
|
}
|
179
frontend/.svelte-kit/ambient.d.ts
vendored
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
|
||||||
|
// this file is generated — do not edit it
|
||||||
|
|
||||||
|
|
||||||
|
/// <reference types="@sveltejs/kit" />
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://kit.svelte.dev/docs/configuration#env) (if configured).
|
||||||
|
*
|
||||||
|
* _Unlike_ [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination.
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* import { API_KEY } from '$env/static/private';
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* MY_FEATURE_FLAG=""
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* You can override `.env` values from the command line like so:
|
||||||
|
*
|
||||||
|
* ```bash
|
||||||
|
* MY_FEATURE_FLAG="enabled" npm run dev
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare module '$env/static/private' {
|
||||||
|
export const TERM_SESSION_ID: string;
|
||||||
|
export const USER: string;
|
||||||
|
export const npm_config_user_agent: string;
|
||||||
|
export const SSH_CLIENT: string;
|
||||||
|
export const XDG_SESSION_TYPE: string;
|
||||||
|
export const BUN_INSTALL: string;
|
||||||
|
export const npm_node_execpath: string;
|
||||||
|
export const SHLVL: string;
|
||||||
|
export const MOTD_SHOWN: string;
|
||||||
|
export const HOME: string;
|
||||||
|
export const OLDPWD: string;
|
||||||
|
export const npm_package_json: string;
|
||||||
|
export const SSH_TTY: string;
|
||||||
|
export const TERMINAL_EMULATOR: string;
|
||||||
|
export const _INTELLIJ_FORCE_SET_GOPATH: string;
|
||||||
|
export const npm_config_local_prefix: string;
|
||||||
|
export const GOROOT: string;
|
||||||
|
export const DBUS_SESSION_BUS_ADDRESS: string;
|
||||||
|
export const GOLAND_JDK: string;
|
||||||
|
export const LOGNAME: string;
|
||||||
|
export const GO111MODULE: string;
|
||||||
|
export const _: string;
|
||||||
|
export const XDG_SESSION_CLASS: string;
|
||||||
|
export const REMOTE_DEV_LAUNCHER_NAME_FOR_USAGE: string;
|
||||||
|
export const TERM: string;
|
||||||
|
export const XDG_SESSION_ID: string;
|
||||||
|
export const PATH: string;
|
||||||
|
export const NODE: string;
|
||||||
|
export const npm_package_name: string;
|
||||||
|
export const XDG_RUNTIME_DIR: string;
|
||||||
|
export const LANG: string;
|
||||||
|
export const GOLAND_VM_OPTIONS: string;
|
||||||
|
export const SSH_AUTH_SOCK: string;
|
||||||
|
export const SHELL: string;
|
||||||
|
export const npm_package_version: string;
|
||||||
|
export const npm_lifecycle_event: string;
|
||||||
|
export const GOPATH: string;
|
||||||
|
export const NODE_PATH: string;
|
||||||
|
export const REMOTE_DEV_NON_INTERACTIVE: string;
|
||||||
|
export const GOLAND_PROPERTIES: string;
|
||||||
|
export const _INTELLIJ_FORCE_SET_GOROOT: string;
|
||||||
|
export const _INTELLIJ_FORCE_PREPEND_PATH: string;
|
||||||
|
export const GPG_TTY: string;
|
||||||
|
export const PWD: string;
|
||||||
|
export const npm_execpath: string;
|
||||||
|
export const IDEA_RESTART_VIA_EXIT_CODE: string;
|
||||||
|
export const SSH_CONNECTION: string;
|
||||||
|
export const _INTELLIJ_FORCE_SET_GO111MODULE: string;
|
||||||
|
export const NODE_ENV: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Similar to [`$env/static/private`](https://kit.svelte.dev/docs/modules#$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
|
||||||
|
*
|
||||||
|
* Values are replaced statically at build time.
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* import { PUBLIC_BASE_URL } from '$env/static/public';
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare module '$env/static/public' {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://kit.svelte.dev/docs/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://kit.svelte.dev/docs/configuration#env) (if configured).
|
||||||
|
*
|
||||||
|
* This module cannot be imported into client-side code.
|
||||||
|
*
|
||||||
|
* Dynamic environment variables cannot be used during prerendering.
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* import { env } from '$env/dynamic/private';
|
||||||
|
* console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* > In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
|
||||||
|
*/
|
||||||
|
declare module '$env/dynamic/private' {
|
||||||
|
export const env: {
|
||||||
|
TERM_SESSION_ID: string;
|
||||||
|
USER: string;
|
||||||
|
npm_config_user_agent: string;
|
||||||
|
SSH_CLIENT: string;
|
||||||
|
XDG_SESSION_TYPE: string;
|
||||||
|
BUN_INSTALL: string;
|
||||||
|
npm_node_execpath: string;
|
||||||
|
SHLVL: string;
|
||||||
|
MOTD_SHOWN: string;
|
||||||
|
HOME: string;
|
||||||
|
OLDPWD: string;
|
||||||
|
npm_package_json: string;
|
||||||
|
SSH_TTY: string;
|
||||||
|
TERMINAL_EMULATOR: string;
|
||||||
|
_INTELLIJ_FORCE_SET_GOPATH: string;
|
||||||
|
npm_config_local_prefix: string;
|
||||||
|
GOROOT: string;
|
||||||
|
DBUS_SESSION_BUS_ADDRESS: string;
|
||||||
|
GOLAND_JDK: string;
|
||||||
|
LOGNAME: string;
|
||||||
|
GO111MODULE: string;
|
||||||
|
_: string;
|
||||||
|
XDG_SESSION_CLASS: string;
|
||||||
|
REMOTE_DEV_LAUNCHER_NAME_FOR_USAGE: string;
|
||||||
|
TERM: string;
|
||||||
|
XDG_SESSION_ID: string;
|
||||||
|
PATH: string;
|
||||||
|
NODE: string;
|
||||||
|
npm_package_name: string;
|
||||||
|
XDG_RUNTIME_DIR: string;
|
||||||
|
LANG: string;
|
||||||
|
GOLAND_VM_OPTIONS: string;
|
||||||
|
SSH_AUTH_SOCK: string;
|
||||||
|
SHELL: string;
|
||||||
|
npm_package_version: string;
|
||||||
|
npm_lifecycle_event: string;
|
||||||
|
GOPATH: string;
|
||||||
|
NODE_PATH: string;
|
||||||
|
REMOTE_DEV_NON_INTERACTIVE: string;
|
||||||
|
GOLAND_PROPERTIES: string;
|
||||||
|
_INTELLIJ_FORCE_SET_GOROOT: string;
|
||||||
|
_INTELLIJ_FORCE_PREPEND_PATH: string;
|
||||||
|
GPG_TTY: string;
|
||||||
|
PWD: string;
|
||||||
|
npm_execpath: string;
|
||||||
|
IDEA_RESTART_VIA_EXIT_CODE: string;
|
||||||
|
SSH_CONNECTION: string;
|
||||||
|
_INTELLIJ_FORCE_SET_GO111MODULE: string;
|
||||||
|
NODE_ENV: string;
|
||||||
|
[key: `PUBLIC_${string}`]: undefined;
|
||||||
|
[key: `${string}`]: string | undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Similar to [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
|
||||||
|
*
|
||||||
|
* Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead.
|
||||||
|
*
|
||||||
|
* Dynamic environment variables cannot be used during prerendering.
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* import { env } from '$env/dynamic/public';
|
||||||
|
* console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE);
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
declare module '$env/dynamic/public' {
|
||||||
|
export const env: {
|
||||||
|
[key: `PUBLIC_${string}`]: string | undefined;
|
||||||
|
}
|
||||||
|
}
|
27
frontend/.svelte-kit/generated/client/app.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
export { matchers } from './matchers.js';
|
||||||
|
|
||||||
|
export const nodes = [
|
||||||
|
() => import('./nodes/0'),
|
||||||
|
() => import('./nodes/1'),
|
||||||
|
() => import('./nodes/2'),
|
||||||
|
() => import('./nodes/3'),
|
||||||
|
() => import('./nodes/4'),
|
||||||
|
() => import('./nodes/5')
|
||||||
|
];
|
||||||
|
|
||||||
|
export const server_loads = [];
|
||||||
|
|
||||||
|
export const dictionary = {
|
||||||
|
"/": [2],
|
||||||
|
"/about": [3],
|
||||||
|
"/sverdle": [~4],
|
||||||
|
"/sverdle/how-to-play": [5]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const hooks = {
|
||||||
|
handleError: (({ error }) => { console.error(error) }),
|
||||||
|
|
||||||
|
reroute: (() => {})
|
||||||
|
};
|
||||||
|
|
||||||
|
export { default as root } from '../root.svelte';
|
1
frontend/.svelte-kit/generated/client/matchers.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export const matchers = {};
|
1
frontend/.svelte-kit/generated/client/nodes/0.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { default as component } from "../../../../src/routes/+layout.svelte";
|
1
frontend/.svelte-kit/generated/client/nodes/1.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { default as component } from "../../../../node_modules/.pnpm/@sveltejs+kit@2.5.7_@sveltejs+vite-plugin-svelte@3.1.0_svelte@4.2.15_vite@5.2.10__svelte@4.2.15_vite@5.2.10/node_modules/@sveltejs/kit/src/runtime/components/error.svelte";
|
3
frontend/.svelte-kit/generated/client/nodes/2.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import * as universal from "../../../../src/routes/+page.ts";
|
||||||
|
export { universal };
|
||||||
|
export { default as component } from "../../../../src/routes/+page.svelte";
|
3
frontend/.svelte-kit/generated/client/nodes/3.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import * as universal from "../../../../src/routes/about/+page.ts";
|
||||||
|
export { universal };
|
||||||
|
export { default as component } from "../../../../src/routes/about/+page.svelte";
|
1
frontend/.svelte-kit/generated/client/nodes/4.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { default as component } from "../../../../src/routes/sverdle/+page.svelte";
|
3
frontend/.svelte-kit/generated/client/nodes/5.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import * as universal from "../../../../src/routes/sverdle/how-to-play/+page.ts";
|
||||||
|
export { universal };
|
||||||
|
export { default as component } from "../../../../src/routes/sverdle/how-to-play/+page.svelte";
|
57
frontend/.svelte-kit/generated/root.svelte
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
<!-- This file is generated by @sveltejs/kit — do not edit it! -->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { setContext, afterUpdate, onMount, tick } from 'svelte';
|
||||||
|
import { browser } from '$app/environment';
|
||||||
|
|
||||||
|
// stores
|
||||||
|
export let stores;
|
||||||
|
export let page;
|
||||||
|
|
||||||
|
export let constructors;
|
||||||
|
export let components = [];
|
||||||
|
export let form;
|
||||||
|
export let data_0 = null;
|
||||||
|
export let data_1 = null;
|
||||||
|
|
||||||
|
if (!browser) {
|
||||||
|
setContext('__svelte__', stores);
|
||||||
|
}
|
||||||
|
|
||||||
|
$: stores.page.set(page);
|
||||||
|
afterUpdate(stores.page.notify);
|
||||||
|
|
||||||
|
let mounted = false;
|
||||||
|
let navigated = false;
|
||||||
|
let title = null;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
const unsubscribe = stores.page.subscribe(() => {
|
||||||
|
if (mounted) {
|
||||||
|
navigated = true;
|
||||||
|
tick().then(() => {
|
||||||
|
title = document.title || 'untitled page';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mounted = true;
|
||||||
|
return unsubscribe;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if constructors[1]}
|
||||||
|
<svelte:component this={constructors[0]} bind:this={components[0]} data={data_0}>
|
||||||
|
<svelte:component this={constructors[1]} bind:this={components[1]} data={data_1} {form} />
|
||||||
|
</svelte:component>
|
||||||
|
{:else}
|
||||||
|
<svelte:component this={constructors[0]} bind:this={components[0]} data={data_0} {form} />
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if mounted}
|
||||||
|
<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px">
|
||||||
|
{#if navigated}
|
||||||
|
{title}
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
34
frontend/.svelte-kit/generated/server/internal.js
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
import root from '../root.svelte';
|
||||||
|
import { set_building, set_prerendering } from '__sveltekit/environment';
|
||||||
|
import { set_assets } from '__sveltekit/paths';
|
||||||
|
import { set_manifest, set_read_implementation } from '__sveltekit/server';
|
||||||
|
import { set_private_env, set_public_env, set_safe_public_env } from '../../../node_modules/.pnpm/@sveltejs+kit@2.5.7_@sveltejs+vite-plugin-svelte@3.1.0_svelte@4.2.15_vite@5.2.10__svelte@4.2.15_vite@5.2.10/node_modules/@sveltejs/kit/src/runtime/shared-server.js';
|
||||||
|
|
||||||
|
export const options = {
|
||||||
|
app_dir: "_app",
|
||||||
|
app_template_contains_nonce: false,
|
||||||
|
csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}},
|
||||||
|
csrf_check_origin: true,
|
||||||
|
embedded: false,
|
||||||
|
env_public_prefix: 'PUBLIC_',
|
||||||
|
env_private_prefix: '',
|
||||||
|
hooks: null, // added lazily, via `get_hooks`
|
||||||
|
preload_strategy: "modulepreload",
|
||||||
|
root,
|
||||||
|
service_worker: false,
|
||||||
|
templates: {
|
||||||
|
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
|
||||||
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
||||||
|
},
|
||||||
|
version_hash: "1wjmj0y"
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function get_hooks() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export { set_assets, set_building, set_manifest, set_prerendering, set_private_env, set_public_env, set_read_implementation, set_safe_public_env };
|
25
frontend/.svelte-kit/non-ambient.d.ts
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
// this file is generated — do not edit it
|
||||||
|
|
||||||
|
|
||||||
|
declare module "svelte/elements" {
|
||||||
|
export interface HTMLAttributes<T> {
|
||||||
|
'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null;
|
||||||
|
'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null;
|
||||||
|
'data-sveltekit-preload-code'?:
|
||||||
|
| true
|
||||||
|
| ''
|
||||||
|
| 'eager'
|
||||||
|
| 'viewport'
|
||||||
|
| 'hover'
|
||||||
|
| 'tap'
|
||||||
|
| 'off'
|
||||||
|
| undefined
|
||||||
|
| null;
|
||||||
|
'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null;
|
||||||
|
'data-sveltekit-reload'?: true | '' | 'off' | undefined | null;
|
||||||
|
'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export {};
|
46
frontend/.svelte-kit/tsconfig.json
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"paths": {
|
||||||
|
"$lib": [
|
||||||
|
"../src/lib"
|
||||||
|
],
|
||||||
|
"$lib/*": [
|
||||||
|
"../src/lib/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rootDirs": [
|
||||||
|
"..",
|
||||||
|
"./types"
|
||||||
|
],
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"lib": [
|
||||||
|
"esnext",
|
||||||
|
"DOM",
|
||||||
|
"DOM.Iterable"
|
||||||
|
],
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"module": "esnext",
|
||||||
|
"noEmit": true,
|
||||||
|
"target": "esnext"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"ambient.d.ts",
|
||||||
|
"non-ambient.d.ts",
|
||||||
|
"./types/**/$types.d.ts",
|
||||||
|
"../vite.config.js",
|
||||||
|
"../vite.config.ts",
|
||||||
|
"../src/**/*.js",
|
||||||
|
"../src/**/*.ts",
|
||||||
|
"../src/**/*.svelte",
|
||||||
|
"../tests/**/*.js",
|
||||||
|
"../tests/**/*.ts",
|
||||||
|
"../tests/**/*.svelte"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"../node_modules/**",
|
||||||
|
"../src/service-worker.js",
|
||||||
|
"../src/service-worker.ts",
|
||||||
|
"../src/service-worker.d.ts"
|
||||||
|
]
|
||||||
|
}
|
14
frontend/.svelte-kit/types/route_meta_data.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"/": [
|
||||||
|
"src/routes/+page.ts"
|
||||||
|
],
|
||||||
|
"/about": [
|
||||||
|
"src/routes/about/+page.ts"
|
||||||
|
],
|
||||||
|
"/sverdle": [
|
||||||
|
"src/routes/sverdle/+page.server.ts"
|
||||||
|
],
|
||||||
|
"/sverdle/how-to-play": [
|
||||||
|
"src/routes/sverdle/how-to-play/+page.ts"
|
||||||
|
]
|
||||||
|
}
|
24
frontend/.svelte-kit/types/src/routes/$types.d.ts
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageParentData = EnsureDefined<LayoutData>;
|
||||||
|
type LayoutRouteId = RouteId | "/" | "/about" | "/sverdle" | "/sverdle/how-to-play" | null
|
||||||
|
type LayoutParams = RouteParams & { }
|
||||||
|
type LayoutParentData = EnsureDefined<{}>;
|
||||||
|
|
||||||
|
export type PageServerData = null;
|
||||||
|
export type PageLoad<OutputData extends OutputDataShape<PageParentData> = OutputDataShape<PageParentData>> = Kit.Load<RouteParams, PageServerData, PageParentData, OutputData, RouteId>;
|
||||||
|
export type PageLoadEvent = Parameters<PageLoad>[0];
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageParentData & EnsureDefined<PageServerData>> & OptionalUnion<EnsureDefined<PageParentData & EnsureDefined<PageServerData>>>>;
|
||||||
|
export type LayoutServerData = null;
|
||||||
|
export type LayoutData = Expand<LayoutParentData>;
|
19
frontend/.svelte-kit/types/src/routes/about/$types.d.ts
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/about';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerData = null;
|
||||||
|
export type PageLoad<OutputData extends OutputDataShape<PageParentData> = OutputDataShape<PageParentData>> = Kit.Load<RouteParams, PageServerData, PageParentData, OutputData, RouteId>;
|
||||||
|
export type PageLoadEvent = Parameters<PageLoad>[0];
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageParentData & EnsureDefined<PageServerData>> & OptionalUnion<EnsureDefined<PageParentData & EnsureDefined<PageServerData>>>>;
|
30
frontend/.svelte-kit/types/src/routes/sverdle/$types.d.ts
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/sverdle';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageServerParentData = EnsureDefined<import('../$types.js').LayoutServerData>;
|
||||||
|
type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerLoad<OutputData extends OutputDataShape<PageServerParentData> = OutputDataShape<PageServerParentData>> = Kit.ServerLoad<RouteParams, PageServerParentData, OutputData, RouteId>;
|
||||||
|
export type PageServerLoadEvent = Parameters<PageServerLoad>[0];
|
||||||
|
type ExcludeActionFailure<T> = T extends Kit.ActionFailure<any> ? never : T extends void ? never : T;
|
||||||
|
type ActionsSuccess<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: ExcludeActionFailure<Awaited<ReturnType<T[Key]>>>; }[keyof T];
|
||||||
|
type ExtractActionFailure<T> = T extends Kit.ActionFailure<infer X> ? X extends void ? never : X : never;
|
||||||
|
type ActionsFailure<T extends Record<string, (...args: any) => any>> = { [Key in keyof T]: Exclude<ExtractActionFailure<Awaited<ReturnType<T[Key]>>>, void>; }[keyof T];
|
||||||
|
type ActionsExport = typeof import('../../../../../src/routes/sverdle/+page.server.js').actions
|
||||||
|
export type SubmitFunction = Kit.SubmitFunction<Expand<ActionsSuccess<ActionsExport>>, Expand<ActionsFailure<ActionsExport>>>
|
||||||
|
export type ActionData = Expand<Kit.AwaitedActions<ActionsExport>> | null;
|
||||||
|
export type PageServerData = Expand<OptionalUnion<EnsureDefined<Kit.LoadProperties<Awaited<ReturnType<typeof import('../../../../../src/routes/sverdle/+page.server.js').load>>>>>>;
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageServerData> & EnsureDefined<PageServerData>>;
|
||||||
|
export type Action<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Action<RouteParams, OutputData, RouteId>
|
||||||
|
export type Actions<OutputData extends Record<string, any> | void = Record<string, any> | void> = Kit.Actions<RouteParams, OutputData, RouteId>
|
||||||
|
export type RequestEvent = Kit.RequestEvent<RouteParams, RouteId>;
|
19
frontend/.svelte-kit/types/src/routes/sverdle/how-to-play/$types.d.ts
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import type * as Kit from '@sveltejs/kit';
|
||||||
|
|
||||||
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
||||||
|
// @ts-ignore
|
||||||
|
type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
|
||||||
|
type RouteParams = { };
|
||||||
|
type RouteId = '/sverdle/how-to-play';
|
||||||
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
||||||
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
||||||
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
||||||
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
||||||
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||||
|
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||||
|
type PageParentData = EnsureDefined<import('../../$types.js').LayoutData>;
|
||||||
|
|
||||||
|
export type PageServerData = null;
|
||||||
|
export type PageLoad<OutputData extends OutputDataShape<PageParentData> = OutputDataShape<PageParentData>> = Kit.Load<RouteParams, PageServerData, PageParentData, OutputData, RouteId>;
|
||||||
|
export type PageLoadEvent = Parameters<PageLoad>[0];
|
||||||
|
export type PageData = Expand<Omit<PageParentData, keyof PageParentData & EnsureDefined<PageServerData>> & OptionalUnion<EnsureDefined<PageParentData & EnsureDefined<PageServerData>>>>;
|
|
@ -2,7 +2,8 @@
|
||||||
"name": "shadow",
|
"name": "shadow",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev:bun": "bun --bun run dev:node",
|
||||||
|
"dev:node": "vite dev",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"test": "npm run test:integration && npm run test:unit",
|
"test": "npm run test:integration && npm run test:unit",
|
2774
frontend/pnpm-lock.yaml
Normal file
0
src/app.d.ts → frontend/src/app.d.ts
vendored
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
44
go.mod
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
module git.shadowhosting.xyz/shadow
|
||||||
|
|
||||||
|
go 1.22.2
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/andybalholm/brotli v1.1.0 // indirect
|
||||||
|
github.com/fatih/color v1.16.0 // indirect
|
||||||
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
|
github.com/goccy/go-json v0.10.2 // indirect
|
||||||
|
github.com/goccy/go-yaml v1.11.3 // indirect
|
||||||
|
github.com/gofiber/fiber/v2 v2.52.4 // indirect
|
||||||
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
|
github.com/klauspost/compress v1.17.8 // indirect
|
||||||
|
github.com/magiconair/properties v1.8.7 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/mattn/go-runewidth v0.0.15 // indirect
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||||
|
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
|
||||||
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
|
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||||
|
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||||
|
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||||
|
github.com/spf13/afero v1.11.0 // indirect
|
||||||
|
github.com/spf13/cast v1.6.0 // indirect
|
||||||
|
github.com/spf13/cobra v1.8.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
|
github.com/spf13/viper v1.18.2 // indirect
|
||||||
|
github.com/subosito/gotenv v1.6.0 // indirect
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
|
github.com/valyala/fasthttp v1.52.0 // indirect
|
||||||
|
github.com/valyala/tcplisten v1.0.0 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
go.uber.org/zap v1.27.0 // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
|
||||||
|
golang.org/x/sys v0.19.0 // indirect
|
||||||
|
golang.org/x/text v0.14.0 // indirect
|
||||||
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
||||||
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
|
)
|
93
go.sum
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
|
||||||
|
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||||
|
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||||
|
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||||
|
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
|
||||||
|
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
|
||||||
|
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
|
||||||
|
github.com/goccy/go-yaml v1.11.3 h1:B3W9IdWbvrUu2OYQGwvU1nZtvMQJPBKgBUuweJjLj6I=
|
||||||
|
github.com/goccy/go-yaml v1.11.3/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
|
||||||
|
github.com/gofiber/fiber/v2 v2.52.4 h1:P+T+4iK7VaqUsq2PALYEfBBo6bJZ4q3FP8cZ84EggTM=
|
||||||
|
github.com/gofiber/fiber/v2 v2.52.4/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
|
||||||
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
|
github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
|
||||||
|
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||||
|
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||||
|
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||||
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
|
||||||
|
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||||
|
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
|
github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
|
||||||
|
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
|
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||||
|
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
|
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
|
||||||
|
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||||
|
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||||
|
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||||
|
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||||
|
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||||
|
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||||
|
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
|
||||||
|
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
|
||||||
|
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||||
|
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
|
||||||
|
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
|
||||||
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
|
||||||
|
github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
|
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||||
|
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
|
github.com/valyala/fasthttp v1.52.0 h1:wqBQpxH71XW0e2g+Og4dzQM8pk34aFYlA1Ga8db7gU0=
|
||||||
|
github.com/valyala/fasthttp v1.52.0/go.mod h1:hf5C4QnVMkNXMspnsUlfM3WitlgYflyhHYoKol/szxQ=
|
||||||
|
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
|
||||||
|
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
|
||||||
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
|
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||||
|
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||||
|
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||||
|
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
|
||||||
|
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
|
||||||
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
|
||||||
|
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU=
|
||||||
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||||
|
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
11
main.go
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
|
||||||
|
|
||||||
|
*/
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "git.shadowhosting.xyz/shadow/cmd"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
cmd.Execute()
|
||||||
|
}
|