mirror of
https://github.com/MizuchiLabs/mantrae.git
synced 2026-01-06 06:19:57 -06:00
small fixes
This commit is contained in:
38
go.mod
38
go.mod
@@ -26,7 +26,8 @@ require (
|
||||
github.com/rs/cors v1.11.1
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/traefik/paerser v0.2.2
|
||||
github.com/traefik/traefik/v3 v3.4.5
|
||||
github.com/traefik/traefik/v3 v3.5.0
|
||||
github.com/vearutop/statigz v1.5.0
|
||||
golang.org/x/crypto v0.40.0
|
||||
golang.org/x/net v0.42.0
|
||||
golang.org/x/oauth2 v0.30.0
|
||||
@@ -40,6 +41,7 @@ require (
|
||||
buf.build/go/protovalidate v0.14.0 // indirect
|
||||
cel.dev/expr v0.24.0 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||
github.com/andybalholm/brotli v1.2.0 // indirect
|
||||
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.1 // indirect
|
||||
@@ -64,29 +66,42 @@ require (
|
||||
github.com/docker/go-connections v0.5.0 // indirect
|
||||
github.com/docker/go-units v0.5.0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
||||
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
|
||||
github.com/go-acme/lego/v4 v4.25.1 // indirect
|
||||
github.com/go-jose/go-jose/v4 v4.1.2 // indirect
|
||||
github.com/go-kit/log v0.2.1 // indirect
|
||||
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
||||
github.com/go-logr/logr v1.4.3 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.21.1 // indirect
|
||||
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||
github.com/go-openapi/swag v0.23.1 // indirect
|
||||
github.com/goccy/go-json v0.10.5 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/google/cel-go v0.26.0 // indirect
|
||||
github.com/google/gnostic-models v0.7.0 // indirect
|
||||
github.com/google/go-cmp v0.7.0 // indirect
|
||||
github.com/google/go-github/v28 v28.1.1 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
|
||||
github.com/hashicorp/go-version v1.7.0 // indirect
|
||||
github.com/http-wasm/http-wasm-host-go v0.7.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/mailru/easyjson v0.9.0 // indirect
|
||||
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mfridman/interpolate v0.0.2 // indirect
|
||||
github.com/miekg/dns v1.1.67 // indirect
|
||||
github.com/miekg/dns v1.1.68 // indirect
|
||||
github.com/moby/docker-image-spec v1.3.1 // indirect
|
||||
github.com/moby/sys/atomicwriter v0.1.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.1 // indirect
|
||||
@@ -98,6 +113,7 @@ require (
|
||||
github.com/sethvargo/go-retry v0.3.0 // indirect
|
||||
github.com/stoewer/go-strcase v1.3.1 // indirect
|
||||
github.com/unrolled/render v1.7.0 // indirect
|
||||
github.com/x448/float16 v0.8.4 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
|
||||
go.opentelemetry.io/otel v1.37.0 // indirect
|
||||
@@ -113,17 +129,35 @@ require (
|
||||
go.opentelemetry.io/otel/trace v1.37.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
go.yaml.in/yaml/v2 v2.4.2 // indirect
|
||||
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
|
||||
golang.org/x/mod v0.26.0 // indirect
|
||||
golang.org/x/sys v0.34.0 // indirect
|
||||
golang.org/x/term v0.33.0 // indirect
|
||||
golang.org/x/text v0.27.0 // indirect
|
||||
golang.org/x/time v0.12.0 // indirect
|
||||
golang.org/x/tools v0.35.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250728155136-f173205681a0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 // indirect
|
||||
google.golang.org/grpc v1.74.2 // indirect
|
||||
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gotest.tools/v3 v3.5.2 // indirect
|
||||
k8s.io/api v0.33.3 // indirect
|
||||
k8s.io/apimachinery v0.33.3 // indirect
|
||||
k8s.io/client-go v0.33.3 // indirect
|
||||
k8s.io/klog/v2 v2.130.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
|
||||
modernc.org/libc v1.66.6 // indirect
|
||||
modernc.org/mathutil v1.7.1 // indirect
|
||||
modernc.org/memory v1.11.0 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
|
||||
sigs.k8s.io/randfill v1.0.0 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
|
||||
sigs.k8s.io/yaml v1.6.0 // indirect
|
||||
)
|
||||
|
||||
// Check status here: https://github.com/kubernetes/apimachinery/issues/190
|
||||
replace k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20250701173324-9bd5c66d9911
|
||||
|
||||
85
go.sum
85
go.sum
@@ -20,6 +20,8 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg
|
||||
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
|
||||
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
|
||||
github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
|
||||
github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
|
||||
github.com/aws/aws-sdk-go-v2 v1.37.1 h1:SMUxeNz3Z6nqGsXv0JuJXc8w5YMtrQMuIBmDx//bBDY=
|
||||
@@ -58,6 +60,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.35.1 h1:iF4Xxkc0H9c/K2dS0zZw3SCkj0Z7
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.35.1/go.mod h1:0bxIatfN0aLq4mjoLDeBpOjOke68OsFlXPDFJ7V0MYw=
|
||||
github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
|
||||
github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
|
||||
github.com/bool64/dev v0.2.39 h1:kP8DnMGlWXhGYJEZE/J0l/gVBdbuhoPGL+MJG4QbofE=
|
||||
github.com/bool64/dev v0.2.39/go.mod h1:iJbh1y/HkunEPhgebWRNcs8wfGq7sjvJ6W5iabL8ACg=
|
||||
github.com/caarlos0/env/v11 v11.3.1 h1:cArPWC15hWmEt+gWk7YBi7lEXTXCvpaSdCiZE2X5mCA=
|
||||
github.com/caarlos0/env/v11 v11.3.1/go.mod h1:qupehSf/Y0TUTsxKywqRt/vJjN5nz6vauiYEUUr8P4U=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||
@@ -91,10 +95,14 @@ github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCO
|
||||
github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c=
|
||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||
github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
|
||||
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
||||
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
|
||||
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
|
||||
github.com/go-acme/lego/v4 v4.25.1 h1:AYPUM7quPN/g2PcjjWw8sAMz3eV+Z8UWkr1kitDOyVA=
|
||||
github.com/go-acme/lego/v4 v4.25.1/go.mod h1:OORYyVNZPaNdIdVYCGSBNRNZDIjhQbPuFxwGDgWj/yM=
|
||||
github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI=
|
||||
@@ -108,6 +116,14 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
|
||||
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
|
||||
github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk=
|
||||
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
|
||||
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
|
||||
github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU=
|
||||
github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
|
||||
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
|
||||
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
|
||||
github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
|
||||
github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
|
||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
@@ -120,7 +136,10 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI=
|
||||
github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM=
|
||||
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
|
||||
github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/go-github/v28 v28.1.1 h1:kORf5ekX5qwXO2mGzXXOjMe/g6ap8ahVe0sBEulhSxo=
|
||||
@@ -128,6 +147,7 @@ github.com/google/go-github/v28 v28.1.1/go.mod h1:bsqJWQX05omyWVmc00nEUql9mhQyv3
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
|
||||
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
|
||||
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
@@ -146,14 +166,20 @@ github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2
|
||||
github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0=
|
||||
github.com/joeig/go-powerdns/v3 v3.16.0 h1:d6k0dVlBYr+B9P5U+74rVY1VmQxUG6Qdtlb3F33cBLQ=
|
||||
github.com/joeig/go-powerdns/v3 v3.16.0/go.mod h1:MXC0RHjIJbotTeH/hGoGfvyh7hOwfxYfU63BbWZXj1o=
|
||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
|
||||
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
|
||||
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||
@@ -163,8 +189,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY=
|
||||
github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg=
|
||||
github.com/miekg/dns v1.1.67 h1:kg0EHj0G4bfT5/oOys6HhZw4vmMlnoZ+gDu8tJ/AlI0=
|
||||
github.com/miekg/dns v1.1.67/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
|
||||
github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
|
||||
github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
|
||||
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
|
||||
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
|
||||
github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw=
|
||||
@@ -173,14 +199,22 @@ github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7z
|
||||
github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko=
|
||||
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
||||
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
|
||||
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
|
||||
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
|
||||
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
|
||||
@@ -207,11 +241,16 @@ github.com/sethvargo/go-retry v0.3.0 h1:EEt31A35QhrcRZtrYFDTBg91cqZVnFL2navjDrah
|
||||
github.com/sethvargo/go-retry v0.3.0/go.mod h1:mNX17F0C/HguQMyMyJxcnU471gOZGxCLyYaFyAZraas=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/stoewer/go-strcase v1.3.1 h1:iS0MdW+kVTxgMoE1LAZyMiYJFKlOzLooE4MxjirtkAs=
|
||||
github.com/stoewer/go-strcase v1.3.1/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
|
||||
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/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
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.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
@@ -219,10 +258,16 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/traefik/paerser v0.2.2 h1:cpzW/ZrQrBh3mdwD/jnp6aXASiUFKOVr6ldP+keJTcQ=
|
||||
github.com/traefik/paerser v0.2.2/go.mod h1:7BBDd4FANoVgaTZG+yh26jI6CA2nds7D/4VTEdIsh24=
|
||||
github.com/traefik/traefik/v3 v3.4.5 h1:vamkf2bL9ZUlir8h0vpfYZXGFcrnuiMCcAGMZhiLWJ8=
|
||||
github.com/traefik/traefik/v3 v3.4.5/go.mod h1:rwq0+07S6ugXdFuB250anSgLQFOVDFvqurNR1BVDocw=
|
||||
github.com/traefik/traefik/v3 v3.5.0 h1:LcEVhZkBC0uXp8vNwn+4zCWKmZTnPo95euw6ejmmWPk=
|
||||
github.com/traefik/traefik/v3 v3.5.0/go.mod h1:9kxu9LsjWoJjZP4kjfHnHnwWLhqlK6ybeTHppPcDQgw=
|
||||
github.com/unrolled/render v1.7.0 h1:1yke01/tZiZpiXfUG+zqB+6fq3G4I+KDmnh0EhPq7So=
|
||||
github.com/unrolled/render v1.7.0/go.mod h1:LwQSeDhjml8NLjIO9GJO1/1qpFJxtfVIpzxXKjfVkoI=
|
||||
github.com/vearutop/statigz v1.5.0 h1:FuWwZiT82yBw4xbWdWIawiP2XFTyEPhIo8upRxiKLqk=
|
||||
github.com/vearutop/statigz v1.5.0/go.mod h1:oHmjFf3izfCO804Di1ZjB666P3fAlVzJEx2k6jNt/Gk=
|
||||
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
|
||||
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
||||
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
|
||||
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
@@ -263,6 +308,10 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
|
||||
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
|
||||
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
|
||||
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
@@ -298,6 +347,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
|
||||
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg=
|
||||
golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
|
||||
@@ -326,11 +377,27 @@ google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
|
||||
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
|
||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
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=
|
||||
gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
|
||||
gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
|
||||
k8s.io/api v0.33.3 h1:SRd5t//hhkI1buzxb288fy2xvjubstenEKL9K51KBI8=
|
||||
k8s.io/api v0.33.3/go.mod h1:01Y/iLUjNBM3TAvypct7DIj0M0NIZc+PzAHCIo0CYGE=
|
||||
k8s.io/apimachinery v0.33.3 h1:4ZSrmNa0c/ZpZJhAgRdcsFcZOw1PQU1bALVQ0B3I5LA=
|
||||
k8s.io/apimachinery v0.33.3/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
|
||||
k8s.io/client-go v0.33.3 h1:M5AfDnKfYmVJif92ngN532gFqakcGi6RvaOF16efrpA=
|
||||
k8s.io/client-go v0.33.3/go.mod h1:luqKBQggEf3shbxHY4uVENAxrDISLOarxpTKMiUuujg=
|
||||
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||
k8s.io/kube-openapi v0.0.0-20250701173324-9bd5c66d9911 h1:gAXU86Fmbr/ktY17lkHwSjw5aoThQvhnstGGIYKlKYc=
|
||||
k8s.io/kube-openapi v0.0.0-20250701173324-9bd5c66d9911/go.mod h1:GLOk5B+hDbRROvt0X2+hqX64v/zO3vXN7J78OUmBSKw=
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
modernc.org/cc/v4 v4.26.3 h1:yEN8dzrkRFnn4PUUKXLYIqVf2PJYAEjMTFjO3BDGc3I=
|
||||
modernc.org/cc/v4 v4.26.3/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
|
||||
modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU=
|
||||
@@ -357,3 +424,13 @@ modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
|
||||
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
|
||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
|
||||
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
|
||||
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
|
||||
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 h1:qPeWmscJcXP0snki5IYF79Z8xrl8ETFxgMd7wez1XkI=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.7.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
|
||||
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
|
||||
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
|
||||
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
|
||||
|
||||
@@ -1,60 +1,19 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"io/fs"
|
||||
"log"
|
||||
"log/slog"
|
||||
"mime"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/mizuchilabs/mantrae/web"
|
||||
"github.com/vearutop/statigz"
|
||||
"github.com/vearutop/statigz/brotli"
|
||||
)
|
||||
|
||||
func (s *Server) WithStatic() {
|
||||
static, err := fs.Sub(web.StaticFS, "build")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
uploadsContent := http.FileServer(http.Dir("./data/uploads"))
|
||||
s.mux.Handle("/uploads/", http.StripPrefix("/uploads/", uploadsContent))
|
||||
s.mux.HandleFunc("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
originalPath := r.URL.Path
|
||||
accept := r.Header.Get("Accept-Encoding")
|
||||
|
||||
switch {
|
||||
case strings.Contains(accept, "br") && fileExists(static, originalPath+".br"):
|
||||
r.URL.Path += ".br"
|
||||
w.Header().Set("Content-Encoding", "br")
|
||||
setContentType(w, originalPath)
|
||||
|
||||
case strings.Contains(accept, "gzip") && fileExists(static, originalPath+".gz"):
|
||||
r.URL.Path += ".gz"
|
||||
w.Header().Set("Content-Encoding", "gzip")
|
||||
setContentType(w, originalPath)
|
||||
}
|
||||
|
||||
http.FileServer(http.FS(static)).ServeHTTP(w, r)
|
||||
}))
|
||||
}
|
||||
|
||||
func setContentType(w http.ResponseWriter, origPath string) {
|
||||
ext := filepath.Ext(origPath)
|
||||
if mimeType := mime.TypeByExtension(ext); mimeType != "" {
|
||||
w.Header().Set("Content-Type", mimeType)
|
||||
}
|
||||
}
|
||||
|
||||
func fileExists(fsys fs.FS, name string) bool {
|
||||
f, err := fsys.Open(strings.TrimPrefix(name, "/"))
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
defer func() {
|
||||
if err := f.Close(); err != nil {
|
||||
slog.Error("Error closing file", "error", err)
|
||||
}
|
||||
}()
|
||||
return true
|
||||
s.mux.Handle("/", statigz.FileServer(
|
||||
web.StaticFS,
|
||||
brotli.AddEncoding,
|
||||
statigz.FSPrefix("build"),
|
||||
))
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ tasks:
|
||||
desc: Build local test container with ko
|
||||
deps: [build:frontend]
|
||||
cmds:
|
||||
- KO_DOCKER_REPO=$IMAGE_SERVER_DEV ko build --bare ./server/cmd
|
||||
- KO_DOCKER_REPO=$IMAGE_AGENT_DEV ko build --bare ./agent/cmd
|
||||
- KO_DOCKER_REPO=$IMAGE_SERVER_DEV ko build ./server/cmd --bare
|
||||
- KO_DOCKER_REPO=$IMAGE_AGENT_DEV ko build ./agent/cmd --bare
|
||||
- grype $IMAGE_SERVER_DEV
|
||||
- grype $IMAGE_AGENT_DEV
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": "*.svelte",
|
||||
"files": ["*.svelte", "*.svelte.ts", "*.svelte.js"],
|
||||
"options": {
|
||||
"parser": "svelte"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"tailwindStylesheet": "./src/app.css"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import js from "@eslint/js";
|
||||
import ts from "typescript-eslint";
|
||||
import svelte from "eslint-plugin-svelte";
|
||||
import prettier from "eslint-config-prettier";
|
||||
import globals from "globals";
|
||||
import svelteConfig from "./svelte.config.js";
|
||||
import js from '@eslint/js';
|
||||
import ts from 'typescript-eslint';
|
||||
import svelte from 'eslint-plugin-svelte';
|
||||
import prettier from 'eslint-config-prettier';
|
||||
import globals from 'globals';
|
||||
import svelteConfig from './svelte.config.js';
|
||||
|
||||
/** @type {import('eslint').Linter.Config[]} */
|
||||
export default [
|
||||
@@ -16,39 +16,39 @@ export default [
|
||||
languageOptions: {
|
||||
globals: {
|
||||
...globals.browser,
|
||||
...globals.node,
|
||||
},
|
||||
...globals.node
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
"no-unused-vars": "off",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"warn",
|
||||
'no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'warn',
|
||||
{
|
||||
argsIgnorePattern: "^_",
|
||||
varsIgnorePattern: "^_",
|
||||
caughtErrorsIgnorePattern: "^_",
|
||||
},
|
||||
],
|
||||
},
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
caughtErrorsIgnorePattern: '^_'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
files: ["**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"],
|
||||
files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
projectService: true,
|
||||
extraFileExtensions: [".svelte"],
|
||||
extraFileExtensions: ['.svelte'],
|
||||
parser: ts.parser,
|
||||
svelteConfig,
|
||||
},
|
||||
},
|
||||
svelteConfig
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
ignores: [
|
||||
"build/",
|
||||
".svelte-kit/",
|
||||
"dist/",
|
||||
"src/lib/components/gen/",
|
||||
"src/lib/components/ui/",
|
||||
],
|
||||
},
|
||||
'build/',
|
||||
'.svelte-kit/',
|
||||
'dist/',
|
||||
'src/lib/components/gen/',
|
||||
'src/lib/components/ui/'
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
"prettier-plugin-svelte": "^3.4.0",
|
||||
"prettier-plugin-tailwindcss": "^0.6.14",
|
||||
"shiki": "^3.9.1",
|
||||
"svelte": "^5.37.2",
|
||||
"svelte-check": "^4.3.0",
|
||||
"svelte": "^5.37.3",
|
||||
"svelte-check": "^4.3.1",
|
||||
"svelte-highlight": "^7.8.3",
|
||||
"svelte-sonner": "^1.0.5",
|
||||
"sveltekit-superforms": "^2.27.1",
|
||||
|
||||
166
web/pnpm-lock.yaml
generated
166
web/pnpm-lock.yaml
generated
@@ -32,16 +32,16 @@ importers:
|
||||
version: 3.8.2
|
||||
'@lucide/svelte':
|
||||
specifier: ^0.536.0
|
||||
version: 0.536.0(svelte@5.37.2)
|
||||
version: 0.536.0(svelte@5.37.3)
|
||||
'@sveltejs/adapter-static':
|
||||
specifier: ^3.0.8
|
||||
version: 3.0.8(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))
|
||||
version: 3.0.8(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))
|
||||
'@sveltejs/kit':
|
||||
specifier: ^2.27.0
|
||||
version: 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
version: 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/vite-plugin-svelte':
|
||||
specifier: ^6.1.0
|
||||
version: 6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
version: 6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@tailwindcss/vite':
|
||||
specifier: ^4.1.11
|
||||
version: 4.1.11(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
@@ -53,7 +53,7 @@ importers:
|
||||
version: 24.1.0
|
||||
bits-ui:
|
||||
specifier: 2.9.1
|
||||
version: 2.9.1(@internationalized/date@3.8.2)(svelte@5.37.2)
|
||||
version: 2.9.1(@internationalized/date@3.8.2)(svelte@5.37.3)
|
||||
clsx:
|
||||
specifier: ^2.1.1
|
||||
version: 2.1.1
|
||||
@@ -65,43 +65,43 @@ importers:
|
||||
version: 10.1.8(eslint@9.32.0(jiti@2.5.1))
|
||||
eslint-plugin-svelte:
|
||||
specifier: ^3.11.0
|
||||
version: 3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.37.2)
|
||||
version: 3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.37.3)
|
||||
formsnap:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1(svelte@5.37.2)(sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.2)(typescript@5.9.2))
|
||||
version: 2.0.1(svelte@5.37.3)(sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.3)(typescript@5.9.2))
|
||||
globals:
|
||||
specifier: ^16.3.0
|
||||
version: 16.3.0
|
||||
mode-watcher:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0(svelte@5.37.2)
|
||||
version: 1.1.0(svelte@5.37.3)
|
||||
prettier:
|
||||
specifier: ^3.6.2
|
||||
version: 3.6.2
|
||||
prettier-plugin-svelte:
|
||||
specifier: ^3.4.0
|
||||
version: 3.4.0(prettier@3.6.2)(svelte@5.37.2)
|
||||
version: 3.4.0(prettier@3.6.2)(svelte@5.37.3)
|
||||
prettier-plugin-tailwindcss:
|
||||
specifier: ^0.6.14
|
||||
version: 0.6.14(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.2))(prettier@3.6.2)
|
||||
version: 0.6.14(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.3))(prettier@3.6.2)
|
||||
shiki:
|
||||
specifier: ^3.9.1
|
||||
version: 3.9.1
|
||||
svelte:
|
||||
specifier: ^5.37.2
|
||||
version: 5.37.2
|
||||
specifier: ^5.37.3
|
||||
version: 5.37.3
|
||||
svelte-check:
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.0(picomatch@4.0.3)(svelte@5.37.2)(typescript@5.9.2)
|
||||
specifier: ^4.3.1
|
||||
version: 4.3.1(picomatch@4.0.3)(svelte@5.37.3)(typescript@5.9.2)
|
||||
svelte-highlight:
|
||||
specifier: ^7.8.3
|
||||
version: 7.8.3
|
||||
svelte-sonner:
|
||||
specifier: ^1.0.5
|
||||
version: 1.0.5(svelte@5.37.2)
|
||||
version: 1.0.5(svelte@5.37.3)
|
||||
sveltekit-superforms:
|
||||
specifier: ^2.27.1
|
||||
version: 2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.2)(typescript@5.9.2)
|
||||
version: 2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.3)(typescript@5.9.2)
|
||||
tailwind-merge:
|
||||
specifier: ^3.3.1
|
||||
version: 3.3.1
|
||||
@@ -987,8 +987,8 @@ packages:
|
||||
dlv@1.1.3:
|
||||
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
|
||||
|
||||
effect@3.17.4:
|
||||
resolution: {integrity: sha512-VD+5bYdIN088c1fCESqYvOKQ22O2dUptO+Chy7SGMqthIVcYBvVlYSgUQT976XJaHOV2Fd0TaW94EYWHOQsbOw==}
|
||||
effect@3.17.5:
|
||||
resolution: {integrity: sha512-cz9XH+UyhHxlYvaQDkxGwuDOpFQwU58+bIWfOYDT+5rLjCfXOQ+SOFHpE7e/+xBtZemFm8b2uFN0zUVKk9MvYw==}
|
||||
|
||||
enhanced-resolve@5.18.2:
|
||||
resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==}
|
||||
@@ -1686,8 +1686,8 @@ packages:
|
||||
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
svelte-check@4.3.0:
|
||||
resolution: {integrity: sha512-Iz8dFXzBNAM7XlEIsUjUGQhbEE+Pvv9odb9+0+ITTgFWZBGeJRRYqHUUglwe2EkLD5LIsQaAc4IUJyvtKuOO5w==}
|
||||
svelte-check@4.3.1:
|
||||
resolution: {integrity: sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==}
|
||||
engines: {node: '>= 18.0.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -1729,8 +1729,8 @@ packages:
|
||||
peerDependencies:
|
||||
svelte: ^5.30.2
|
||||
|
||||
svelte@5.37.2:
|
||||
resolution: {integrity: sha512-SAakJiy04/OvXRAUnGxRACGzw6GB9kmxYIjuMO/zTcTL6psqc54Y0O/yR6I3OLqFqn79EPd23qsCGkKozvYYbQ==}
|
||||
svelte@5.37.3:
|
||||
resolution: {integrity: sha512-7t/ejshehHd+95z3Z7ebS7wsqHDQxi/8nBTuTRwpMgNegfRBfuitCSKTUDKIBOExqfT2+DhQ2VLG8Xn+cBXoaQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
sveltekit-superforms@2.27.1:
|
||||
@@ -2198,9 +2198,9 @@ snapshots:
|
||||
'@jridgewell/resolve-uri': 3.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.5.4
|
||||
|
||||
'@lucide/svelte@0.536.0(svelte@5.37.2)':
|
||||
'@lucide/svelte@0.536.0(svelte@5.37.3)':
|
||||
dependencies:
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
'@nodelib/fs.scandir@2.1.5':
|
||||
dependencies:
|
||||
@@ -2340,15 +2340,15 @@ snapshots:
|
||||
dependencies:
|
||||
acorn: 8.15.0
|
||||
|
||||
'@sveltejs/adapter-static@3.0.8(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))':
|
||||
'@sveltejs/adapter-static@3.0.8(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/kit': 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
|
||||
'@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
'@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@standard-schema/spec': 1.0.0
|
||||
'@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0)
|
||||
'@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@types/cookie': 0.6.0
|
||||
acorn: 8.15.0
|
||||
cookie: 0.6.0
|
||||
@@ -2360,26 +2360,26 @@ snapshots:
|
||||
sade: 1.8.1
|
||||
set-cookie-parser: 2.7.1
|
||||
sirv: 3.0.1
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)
|
||||
|
||||
'@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
'@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/vite-plugin-svelte': 6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
debug: 4.4.1
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
'@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
debug: 4.4.1
|
||||
deepmerge: 4.3.1
|
||||
kleur: 4.1.5
|
||||
magic-string: 0.30.17
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)
|
||||
vitefu: 1.1.1(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
transitivePeerDependencies:
|
||||
@@ -2649,15 +2649,15 @@ snapshots:
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
bits-ui@2.9.1(@internationalized/date@3.8.2)(svelte@5.37.2):
|
||||
bits-ui@2.9.1(@internationalized/date@3.8.2)(svelte@5.37.3):
|
||||
dependencies:
|
||||
'@floating-ui/core': 1.7.3
|
||||
'@floating-ui/dom': 1.7.3
|
||||
'@internationalized/date': 3.8.2
|
||||
esm-env: 1.2.2
|
||||
runed: 0.29.2(svelte@5.37.2)
|
||||
svelte: 5.37.2
|
||||
svelte-toolbelt: 0.9.3(svelte@5.37.2)
|
||||
runed: 0.29.2(svelte@5.37.3)
|
||||
svelte: 5.37.3
|
||||
svelte-toolbelt: 0.9.3(svelte@5.37.3)
|
||||
tabbable: 6.2.0
|
||||
|
||||
brace-expansion@1.1.12:
|
||||
@@ -2751,7 +2751,7 @@ snapshots:
|
||||
dlv@1.1.3:
|
||||
optional: true
|
||||
|
||||
effect@3.17.4:
|
||||
effect@3.17.5:
|
||||
dependencies:
|
||||
'@standard-schema/spec': 1.0.0
|
||||
fast-check: 3.23.2
|
||||
@@ -2804,7 +2804,7 @@ snapshots:
|
||||
dependencies:
|
||||
eslint: 9.32.0(jiti@2.5.1)
|
||||
|
||||
eslint-plugin-svelte@3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.37.2):
|
||||
eslint-plugin-svelte@3.11.0(eslint@9.32.0(jiti@2.5.1))(svelte@5.37.3):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1))
|
||||
'@jridgewell/sourcemap-codec': 1.5.4
|
||||
@@ -2816,9 +2816,9 @@ snapshots:
|
||||
postcss-load-config: 3.1.4(postcss@8.5.6)
|
||||
postcss-safe-parser: 7.0.1(postcss@8.5.6)
|
||||
semver: 7.7.2
|
||||
svelte-eslint-parser: 1.3.1(svelte@5.37.2)
|
||||
svelte-eslint-parser: 1.3.1(svelte@5.37.3)
|
||||
optionalDependencies:
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
|
||||
@@ -2946,11 +2946,11 @@ snapshots:
|
||||
|
||||
flatted@3.3.3: {}
|
||||
|
||||
formsnap@2.0.1(svelte@5.37.2)(sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.2)(typescript@5.9.2)):
|
||||
formsnap@2.0.1(svelte@5.37.3)(sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.3)(typescript@5.9.2)):
|
||||
dependencies:
|
||||
svelte: 5.37.2
|
||||
svelte-toolbelt: 0.5.0(svelte@5.37.2)
|
||||
sveltekit-superforms: 2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.2)(typescript@5.9.2)
|
||||
svelte: 5.37.3
|
||||
svelte-toolbelt: 0.5.0(svelte@5.37.3)
|
||||
sveltekit-superforms: 2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.3)(typescript@5.9.2)
|
||||
|
||||
fsevents@2.3.3:
|
||||
optional: true
|
||||
@@ -3178,11 +3178,11 @@ snapshots:
|
||||
|
||||
mkdirp@3.0.1: {}
|
||||
|
||||
mode-watcher@1.1.0(svelte@5.37.2):
|
||||
mode-watcher@1.1.0(svelte@5.37.3):
|
||||
dependencies:
|
||||
runed: 0.25.0(svelte@5.37.2)
|
||||
svelte: 5.37.2
|
||||
svelte-toolbelt: 0.7.1(svelte@5.37.2)
|
||||
runed: 0.25.0(svelte@5.37.3)
|
||||
svelte: 5.37.3
|
||||
svelte-toolbelt: 0.7.1(svelte@5.37.3)
|
||||
|
||||
mri@1.2.0: {}
|
||||
|
||||
@@ -3264,16 +3264,16 @@ snapshots:
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.2):
|
||||
prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.3):
|
||||
dependencies:
|
||||
prettier: 3.6.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
prettier-plugin-tailwindcss@0.6.14(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.2))(prettier@3.6.2):
|
||||
prettier-plugin-tailwindcss@0.6.14(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.37.3))(prettier@3.6.2):
|
||||
dependencies:
|
||||
prettier: 3.6.2
|
||||
optionalDependencies:
|
||||
prettier-plugin-svelte: 3.4.0(prettier@3.6.2)(svelte@5.37.2)
|
||||
prettier-plugin-svelte: 3.4.0(prettier@3.6.2)(svelte@5.37.3)
|
||||
|
||||
prettier@3.6.2: {}
|
||||
|
||||
@@ -3337,25 +3337,25 @@ snapshots:
|
||||
dependencies:
|
||||
queue-microtask: 1.2.3
|
||||
|
||||
runed@0.23.4(svelte@5.37.2):
|
||||
runed@0.23.4(svelte@5.37.3):
|
||||
dependencies:
|
||||
esm-env: 1.2.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
runed@0.25.0(svelte@5.37.2):
|
||||
runed@0.25.0(svelte@5.37.3):
|
||||
dependencies:
|
||||
esm-env: 1.2.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
runed@0.28.0(svelte@5.37.2):
|
||||
runed@0.28.0(svelte@5.37.3):
|
||||
dependencies:
|
||||
esm-env: 1.2.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
runed@0.29.2(svelte@5.37.2):
|
||||
runed@0.29.2(svelte@5.37.3):
|
||||
dependencies:
|
||||
esm-env: 1.2.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
sade@1.8.1:
|
||||
dependencies:
|
||||
@@ -3419,19 +3419,19 @@ snapshots:
|
||||
dependencies:
|
||||
has-flag: 4.0.0
|
||||
|
||||
svelte-check@4.3.0(picomatch@4.0.3)(svelte@5.37.2)(typescript@5.9.2):
|
||||
svelte-check@4.3.1(picomatch@4.0.3)(svelte@5.37.3)(typescript@5.9.2):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.29
|
||||
chokidar: 4.0.3
|
||||
fdir: 6.4.6(picomatch@4.0.3)
|
||||
picocolors: 1.1.1
|
||||
sade: 1.8.1
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
- picomatch
|
||||
|
||||
svelte-eslint-parser@1.3.1(svelte@5.37.2):
|
||||
svelte-eslint-parser@1.3.1(svelte@5.37.3):
|
||||
dependencies:
|
||||
eslint-scope: 8.4.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
@@ -3440,38 +3440,38 @@ snapshots:
|
||||
postcss-scss: 4.0.9(postcss@8.5.6)
|
||||
postcss-selector-parser: 7.1.0
|
||||
optionalDependencies:
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
svelte-highlight@7.8.3:
|
||||
dependencies:
|
||||
highlight.js: 11.11.1
|
||||
|
||||
svelte-sonner@1.0.5(svelte@5.37.2):
|
||||
svelte-sonner@1.0.5(svelte@5.37.3):
|
||||
dependencies:
|
||||
runed: 0.28.0(svelte@5.37.2)
|
||||
svelte: 5.37.2
|
||||
runed: 0.28.0(svelte@5.37.3)
|
||||
svelte: 5.37.3
|
||||
|
||||
svelte-toolbelt@0.5.0(svelte@5.37.2):
|
||||
svelte-toolbelt@0.5.0(svelte@5.37.3):
|
||||
dependencies:
|
||||
clsx: 2.1.1
|
||||
style-to-object: 1.0.9
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
svelte-toolbelt@0.7.1(svelte@5.37.2):
|
||||
svelte-toolbelt@0.7.1(svelte@5.37.3):
|
||||
dependencies:
|
||||
clsx: 2.1.1
|
||||
runed: 0.23.4(svelte@5.37.2)
|
||||
runed: 0.23.4(svelte@5.37.3)
|
||||
style-to-object: 1.0.9
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
svelte-toolbelt@0.9.3(svelte@5.37.2):
|
||||
svelte-toolbelt@0.9.3(svelte@5.37.3):
|
||||
dependencies:
|
||||
clsx: 2.1.1
|
||||
runed: 0.29.2(svelte@5.37.2)
|
||||
runed: 0.29.2(svelte@5.37.3)
|
||||
style-to-object: 1.0.9
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
|
||||
svelte@5.37.2:
|
||||
svelte@5.37.3:
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@jridgewell/sourcemap-codec': 1.5.4
|
||||
@@ -3488,12 +3488,12 @@ snapshots:
|
||||
magic-string: 0.30.17
|
||||
zimmerframe: 1.1.2
|
||||
|
||||
sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.2)(typescript@5.9.2):
|
||||
sveltekit-superforms@2.27.1(@sveltejs/kit@2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(@types/json-schema@7.0.15)(esbuild@0.25.8)(svelte@5.37.3)(typescript@5.9.2):
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
'@sveltejs/kit': 2.27.0(@sveltejs/vite-plugin-svelte@6.1.0(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0)))(svelte@5.37.3)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0))
|
||||
devalue: 5.1.1
|
||||
memoize-weak: 1.0.2
|
||||
svelte: 5.37.2
|
||||
svelte: 5.37.3
|
||||
ts-deepmerge: 7.0.3
|
||||
optionalDependencies:
|
||||
'@exodus/schemasafe': 1.3.0
|
||||
@@ -3503,7 +3503,7 @@ snapshots:
|
||||
'@vinejs/vine': 3.0.1
|
||||
arktype: 2.1.20
|
||||
class-validator: 0.14.2
|
||||
effect: 3.17.4
|
||||
effect: 3.17.5
|
||||
joi: 17.13.3
|
||||
json-schema-to-ts: 3.1.1
|
||||
superstruct: 2.0.2
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<script lang="ts">
|
||||
import * as Dialog from '$lib/components/ui/dialog/index.js';
|
||||
import { userClient } from '$lib/api';
|
||||
import { Button } from '$lib/components/ui/button/index.js';
|
||||
import * as Dialog from '$lib/components/ui/dialog/index.js';
|
||||
import { Input } from '$lib/components/ui/input/index.js';
|
||||
import { Label } from '$lib/components/ui/label/index.js';
|
||||
import { UpdateUserRequestSchema, type User } from '$lib/gen/mantrae/v1/user_pb';
|
||||
import { user } from '$lib/stores/user';
|
||||
import { create } from '@bufbuild/protobuf';
|
||||
import { ConnectError } from '@connectrpc/connect';
|
||||
import { toast } from 'svelte-sonner';
|
||||
import PasswordInput from '../ui/password-input/password-input.svelte';
|
||||
import Separator from '../ui/separator/separator.svelte';
|
||||
import { UpdateUserRequestSchema, type User } from '$lib/gen/mantrae/v1/user_pb';
|
||||
import { userClient } from '$lib/api';
|
||||
import { ConnectError } from '@connectrpc/connect';
|
||||
import { user } from '$lib/stores/user';
|
||||
import { create } from '@bufbuild/protobuf';
|
||||
|
||||
interface Props {
|
||||
item: User;
|
||||
@@ -89,7 +89,7 @@
|
||||
required
|
||||
class="transition-colors"
|
||||
/>
|
||||
<p class="text-muted-foreground text-xs">Display name for the user account</p>
|
||||
<p class="text-xs text-muted-foreground">Display name for the user account</p>
|
||||
</div>
|
||||
|
||||
<div class="space-y-2">
|
||||
@@ -101,7 +101,7 @@
|
||||
placeholder="user@example.com"
|
||||
class="transition-colors"
|
||||
/>
|
||||
<p class="text-muted-foreground text-xs">
|
||||
<p class="text-xs text-muted-foreground">
|
||||
Email address for notifications and account recovery
|
||||
</p>
|
||||
</div>
|
||||
@@ -109,15 +109,15 @@
|
||||
<div class="space-y-2">
|
||||
<!-- <Label class="text-sm font-medium">Security</Label> -->
|
||||
{#if item.id}
|
||||
<Label for="password" class="text-muted-foreground text-sm font-normal">Password</Label>
|
||||
<Label for="password" class="text-sm font-normal text-muted-foreground">Password</Label>
|
||||
<PasswordInput id="password" bind:value={password} />
|
||||
<p class="text-muted-foreground text-xs">
|
||||
<p class="text-xs text-muted-foreground">
|
||||
Only enter a new password if you want to change it
|
||||
</p>
|
||||
{:else}
|
||||
<Label for="password" class="text-muted-foreground text-sm font-normal">Password</Label>
|
||||
<Label for="password" class="text-sm font-normal text-muted-foreground">Password</Label>
|
||||
<PasswordInput id="password" bind:value={item.password} required />
|
||||
<p class="text-muted-foreground text-xs">Secure password for the user account</p>
|
||||
<p class="text-xs text-muted-foreground">Secure password for the user account</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
import { EventAction, type EventStreamResponse } from '$lib/gen/mantrae/v1/util_pb';
|
||||
import {
|
||||
utilClient,
|
||||
entryPointClient,
|
||||
middlewareClient,
|
||||
dnsClient,
|
||||
profileClient,
|
||||
userClient,
|
||||
agentClient,
|
||||
routerClient,
|
||||
serviceClient,
|
||||
serversTransportClient,
|
||||
traefikClient
|
||||
agentClient,
|
||||
dnsClient,
|
||||
entryPointClient,
|
||||
middlewareClient,
|
||||
profileClient,
|
||||
routerClient,
|
||||
serversTransportClient,
|
||||
serviceClient,
|
||||
traefikClient,
|
||||
userClient,
|
||||
utilClient
|
||||
} from '$lib/api';
|
||||
import { profile } from './profile';
|
||||
import { writable } from 'svelte/store';
|
||||
import type { ConnectError } from '@connectrpc/connect';
|
||||
import type { Profile } from '$lib/gen/mantrae/v1/profile_pb';
|
||||
import type { User } from '$lib/gen/mantrae/v1/user_pb';
|
||||
import type { Agent } from '$lib/gen/mantrae/v1/agent_pb';
|
||||
import type { EntryPoint } from '$lib/gen/mantrae/v1/entry_point_pb';
|
||||
import type { Router } from '$lib/gen/mantrae/v1/router_pb';
|
||||
import type { Service } from '$lib/gen/mantrae/v1/service_pb';
|
||||
import type { Middleware } from '$lib/gen/mantrae/v1/middleware_pb';
|
||||
import type { ServersTransport } from '$lib/gen/mantrae/v1/servers_transport_pb';
|
||||
import type { DnsProvider } from '$lib/gen/mantrae/v1/dns_provider_pb';
|
||||
import type { EntryPoint } from '$lib/gen/mantrae/v1/entry_point_pb';
|
||||
import type { Middleware } from '$lib/gen/mantrae/v1/middleware_pb';
|
||||
import type { Profile } from '$lib/gen/mantrae/v1/profile_pb';
|
||||
import type { Router } from '$lib/gen/mantrae/v1/router_pb';
|
||||
import type { ServersTransport } from '$lib/gen/mantrae/v1/servers_transport_pb';
|
||||
import type { Service } from '$lib/gen/mantrae/v1/service_pb';
|
||||
import type { TraefikInstance } from '$lib/gen/mantrae/v1/traefik_instance_pb';
|
||||
import type { User } from '$lib/gen/mantrae/v1/user_pb';
|
||||
import { EventAction, type EventStreamResponse } from '$lib/gen/mantrae/v1/util_pb';
|
||||
import type { ConnectError } from '@connectrpc/connect';
|
||||
import { writable } from 'svelte/store';
|
||||
import { profile } from './profile';
|
||||
|
||||
export const profiles = writable<Profile[]>([]);
|
||||
export const users = writable<User[]>([]);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { User } from '$lib/gen/mantrae/v1/user_pb';
|
||||
import type { Timestamp } from '@bufbuild/protobuf/wkt';
|
||||
import { createLocalStorage } from '$lib/storage.svelte';
|
||||
import type { Timestamp } from '@bufbuild/protobuf/wkt';
|
||||
|
||||
class UserStore {
|
||||
private store = createLocalStorage<User | null>('current_user', null);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { DnsProviderType } from './gen/mantrae/v1/dns_provider_pb';
|
||||
import type { JsonObject } from '@bufbuild/protobuf';
|
||||
import type { Component } from 'svelte';
|
||||
import type { IconProps } from '@lucide/svelte';
|
||||
import type { Component } from 'svelte';
|
||||
import { DnsProviderType } from './gen/mantrae/v1/dns_provider_pb';
|
||||
import { ProtocolType } from './gen/mantrae/v1/protocol_pb';
|
||||
|
||||
export type IconComponent = Component<IconProps, Record<string, never>, ''>;
|
||||
|
||||
@@ -1,38 +1,17 @@
|
||||
<script lang="ts">
|
||||
import * as Card from '$lib/components/ui/card/index.js';
|
||||
import { auditLogClient } from '$lib/api';
|
||||
import AuditLogModal from '$lib/components/modals/AuditLogModal.svelte';
|
||||
import ConfigModal from '$lib/components/modals/ConfigModal.svelte';
|
||||
import ProfileModal from '$lib/components/modals/ProfileModal.svelte';
|
||||
import { Badge } from '$lib/components/ui/badge/index.js';
|
||||
import { Button } from '$lib/components/ui/button/index.js';
|
||||
import * as Card from '$lib/components/ui/card/index.js';
|
||||
import { Separator } from '$lib/components/ui/separator/index.js';
|
||||
import {
|
||||
Globe,
|
||||
Shield,
|
||||
Bot,
|
||||
Users,
|
||||
Gauge,
|
||||
Layers2,
|
||||
Activity,
|
||||
Server,
|
||||
Network,
|
||||
Route,
|
||||
Clock,
|
||||
TrendingUp,
|
||||
Wifi,
|
||||
Database,
|
||||
Pen,
|
||||
Eye,
|
||||
CircleCheck,
|
||||
CircleAlert
|
||||
} from '@lucide/svelte';
|
||||
import { profile } from '$lib/stores/profile';
|
||||
import { auditLogClient } from '$lib/api';
|
||||
import { DateFormat } from '$lib/stores/common';
|
||||
import { timestampDate, type Timestamp } from '@bufbuild/protobuf/wkt';
|
||||
import ProfileModal from '$lib/components/modals/ProfileModal.svelte';
|
||||
import ConfigModal from '$lib/components/modals/ConfigModal.svelte';
|
||||
import type { Profile } from '$lib/gen/mantrae/v1/profile_pb';
|
||||
import AuditLogModal from '$lib/components/modals/AuditLogModal.svelte';
|
||||
import TraefikConnection from '$lib/components/utils/TraefikConnection.svelte';
|
||||
import type { Profile } from '$lib/gen/mantrae/v1/profile_pb';
|
||||
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
|
||||
import { DateFormat } from '$lib/stores/common';
|
||||
import { profile } from '$lib/stores/profile';
|
||||
import {
|
||||
agents,
|
||||
dnsProviders,
|
||||
@@ -43,6 +22,27 @@
|
||||
traefikInstances,
|
||||
users
|
||||
} from '$lib/stores/realtime';
|
||||
import { timestampDate, type Timestamp } from '@bufbuild/protobuf/wkt';
|
||||
import {
|
||||
Activity,
|
||||
Bot,
|
||||
CircleAlert,
|
||||
CircleCheck,
|
||||
Clock,
|
||||
Database,
|
||||
Eye,
|
||||
Gauge,
|
||||
Globe,
|
||||
Layers2,
|
||||
Network,
|
||||
Pen,
|
||||
Route,
|
||||
Server,
|
||||
Shield,
|
||||
TrendingUp,
|
||||
Users,
|
||||
Wifi
|
||||
} from '@lucide/svelte';
|
||||
|
||||
let onlineAgents = $derived.by(() => {
|
||||
let activeAgents = $agents.reduce((count, agent) => {
|
||||
@@ -83,6 +83,11 @@
|
||||
let modalAuditLogOpen = $state(false);
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Dashboard - Mantrae</title>
|
||||
<meta name="description" content="Monitor and manage your reverse proxy configurations, agents, DNS providers, and system users" />
|
||||
</svelte:head>
|
||||
|
||||
<ProfileModal bind:item={modalProfile} bind:open={modalProfileOpen} />
|
||||
<ConfigModal bind:open={modalConfigOpen} />
|
||||
<AuditLogModal bind:open={modalAuditLogOpen} />
|
||||
@@ -92,12 +97,12 @@
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 class="flex items-center gap-3 text-3xl font-bold tracking-tight">
|
||||
<div class="bg-primary/10 rounded-lg p-2">
|
||||
<Gauge class="text-primary h-6 w-6" />
|
||||
<div class="rounded-lg bg-primary/10 p-2">
|
||||
<Gauge class="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
Dashboard
|
||||
</h1>
|
||||
<p class="text-muted-foreground mt-1">Monitor and manage your reverse proxy configurations</p>
|
||||
<p class="mt-1 text-muted-foreground">Monitor and manage your reverse proxy configurations</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -107,8 +112,8 @@
|
||||
<!-- Total Profiles -->
|
||||
<Card.Root class="relative overflow-hidden">
|
||||
<Card.Header class="flex flex-row items-center justify-between pb-2">
|
||||
<Card.Title class="text-muted-foreground text-sm font-medium">Total Profiles</Card.Title>
|
||||
<Layers2 class="text-muted-foreground h-4 w-4" />
|
||||
<Card.Title class="text-sm font-medium text-muted-foreground">Total Profiles</Card.Title>
|
||||
<Layers2 class="h-4 w-4 text-muted-foreground" />
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
<div class="text-3xl font-bold">{$profiles?.length}</div>
|
||||
@@ -118,16 +123,16 @@
|
||||
</div>
|
||||
</Card.Content>
|
||||
<div
|
||||
class="from-primary/5 absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl to-transparent"
|
||||
class="absolute top-0 right-0 h-16 w-16 rounded-bl-full bg-gradient-to-bl from-primary/5 to-transparent"
|
||||
></div>
|
||||
</Card.Root>
|
||||
|
||||
<!-- Connected Agents -->
|
||||
<Card.Root class="relative overflow-hidden">
|
||||
<Card.Header class="flex flex-row items-center justify-between pb-2">
|
||||
<Card.Title class="text-muted-foreground text-sm font-medium">Connected Agents</Card.Title
|
||||
<Card.Title class="text-sm font-medium text-muted-foreground">Connected Agents</Card.Title
|
||||
>
|
||||
<Bot class="text-muted-foreground h-4 w-4" />
|
||||
<Bot class="h-4 w-4 text-muted-foreground" />
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
<div class="text-3xl font-bold">{onlineAgents}</div>
|
||||
@@ -144,8 +149,8 @@
|
||||
<!-- DNS Provider -->
|
||||
<Card.Root class="relative overflow-hidden">
|
||||
<Card.Header class="flex flex-row items-center justify-between pb-2">
|
||||
<Card.Title class="text-muted-foreground text-sm font-medium">DNS Provider</Card.Title>
|
||||
<Globe class="text-muted-foreground h-4 w-4" />
|
||||
<Card.Title class="text-sm font-medium text-muted-foreground">DNS Provider</Card.Title>
|
||||
<Globe class="h-4 w-4 text-muted-foreground" />
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
<div class="text-3xl font-bold">
|
||||
@@ -171,8 +176,8 @@
|
||||
<!-- Total Users -->
|
||||
<Card.Root class="relative overflow-hidden">
|
||||
<Card.Header class="flex flex-row items-center justify-between pb-2">
|
||||
<Card.Title class="text-muted-foreground text-sm font-medium">System Users</Card.Title>
|
||||
<Users class="text-muted-foreground h-4 w-4" />
|
||||
<Card.Title class="text-sm font-medium text-muted-foreground">System Users</Card.Title>
|
||||
<Users class="h-4 w-4 text-muted-foreground" />
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
<div class="text-3xl font-bold">{$users?.length}</div>
|
||||
@@ -311,13 +316,13 @@
|
||||
<div class="space-y-4 rounded-lg border p-4">
|
||||
<div class="flex items-start justify-between">
|
||||
<div class="flex items-start gap-3">
|
||||
<div class="bg-primary/10 rounded-lg p-2">
|
||||
<Database class="text-primary h-4 w-4" />
|
||||
<div class="rounded-lg bg-primary/10 p-2">
|
||||
<Database class="h-4 w-4 text-primary" />
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<h3 class="text-lg font-semibold">{profile.name}</h3>
|
||||
<p class="text-muted-foreground text-sm">{profile.description}</p>
|
||||
<p class="text-muted-foreground text-xs">
|
||||
<p class="text-sm text-muted-foreground">{profile.description}</p>
|
||||
<p class="text-xs text-muted-foreground">
|
||||
{#if profile.createdAt}
|
||||
Created {DateFormat.format(timestampDate(profile.createdAt))}
|
||||
{/if}
|
||||
@@ -331,28 +336,28 @@
|
||||
<div class="grid grid-cols-2 gap-4 md:grid-cols-4">
|
||||
<div class="text-center">
|
||||
<div class="text-2xl font-bold text-blue-600">{$agents?.length}</div>
|
||||
<div class="text-muted-foreground text-xs">Agents</div>
|
||||
<div class="text-xs text-muted-foreground">Agents</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<div class="text-2xl font-bold text-green-600">
|
||||
{$routers?.length}
|
||||
</div>
|
||||
<div class="text-muted-foreground text-xs">Routers</div>
|
||||
<div class="text-xs text-muted-foreground">Routers</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<div class="text-2xl font-bold text-orange-600">
|
||||
{$services?.length}
|
||||
</div>
|
||||
<div class="text-muted-foreground text-xs">Services</div>
|
||||
<div class="text-xs text-muted-foreground">Services</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<div class="text-2xl font-bold text-purple-600">
|
||||
{$middlewares?.length}
|
||||
</div>
|
||||
<div class="text-muted-foreground text-xs">Middlewares</div>
|
||||
<div class="text-xs text-muted-foreground">Middlewares</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -419,9 +424,9 @@
|
||||
<div>
|
||||
<p class="line-clamp-1 text-sm" title={log.details}>{log.details}</p>
|
||||
|
||||
<div class="text-muted-foreground flex items-center gap-2 text-xs">
|
||||
<div class="flex items-center gap-2 text-xs text-muted-foreground">
|
||||
{#if log.createdAt}
|
||||
<span class="text-muted-foreground text-xs">
|
||||
<span class="text-xs text-muted-foreground">
|
||||
{timeAgo(log.createdAt)}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
@@ -165,7 +165,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Agents</title>
|
||||
<title>Agents - Mantrae</title>
|
||||
<meta name="description" content="Monitor and manage your connected Mantrae agents for distributed reverse proxy management" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
|
||||
@@ -202,7 +202,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>DNS Providers</title>
|
||||
<title>DNS Providers - Mantrae</title>
|
||||
<meta name="description" content="Manage your DNS providers for automatic DNS challenge resolution with Let's Encrypt" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
|
||||
@@ -155,7 +155,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>EntryPoints</title>
|
||||
<title>EntryPoints - Mantrae</title>
|
||||
<meta name="description" content="Configure entrypoints for your reverse proxy to listen for incoming connections" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<svelte:head>
|
||||
<title>Login - Mantrae</title>
|
||||
<meta name="description" content="Sign in to your Mantrae account to manage your reverse proxy configurations" />
|
||||
</svelte:head>
|
||||
|
||||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
import { handleOIDCLogin, profileClient, userClient } from '$lib/api';
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<svelte:head>
|
||||
<title>Reset Password - Mantrae</title>
|
||||
<meta name="description" content="Reset your Mantrae account password using the one-time password sent to your email" />
|
||||
</svelte:head>
|
||||
|
||||
<script lang="ts">
|
||||
import * as InputOTP from '$lib/components/ui/input-otp/index.js';
|
||||
import * as Card from '$lib/components/ui/card/index.js';
|
||||
|
||||
@@ -246,7 +246,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Middlewares</title>
|
||||
<title>Middlewares - Mantrae</title>
|
||||
<meta name="description" content="Manage HTTP and TCP middlewares to customize your reverse proxy behavior" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
|
||||
@@ -101,7 +101,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Plugins</title>
|
||||
<title>Plugins - Mantrae</title>
|
||||
<meta name="description" content="Browse and manage Traefik plugins for extended reverse proxy functionality" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="mt-4 flex flex-col gap-4 p-4">
|
||||
|
||||
@@ -324,7 +324,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Routers</title>
|
||||
<title>Routers - Mantrae</title>
|
||||
<meta name="description" content="Manage your HTTP, TCP, and UDP routers for your reverse proxy configurations" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-4 sm:gap-6">
|
||||
|
||||
@@ -156,7 +156,8 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Settings</title>
|
||||
<title>Settings - Mantrae</title>
|
||||
<meta name="description" content="Configure your Mantrae system settings, backup management, and authentication options" />
|
||||
</svelte:head>
|
||||
|
||||
<BackupModal bind:open={showBackupList} />
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
<script lang="ts">
|
||||
import { serversTransportClient } from '$lib/api';
|
||||
import ServerTransportModal from '$lib/components/modals/ServerTransportModal.svelte';
|
||||
import ColumnBadge from '$lib/components/tables/ColumnBadge.svelte';
|
||||
import DataTable from '$lib/components/tables/DataTable.svelte';
|
||||
import TableActions from '$lib/components/tables/TableActions.svelte';
|
||||
import type { BulkAction } from '$lib/components/tables/types';
|
||||
import { renderComponent } from '$lib/components/ui/data-table';
|
||||
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
|
||||
import { type ServersTransport } from '$lib/gen/mantrae/v1/servers_transport_pb';
|
||||
import { profile } from '$lib/stores/profile';
|
||||
import { serversTransports } from '$lib/stores/realtime';
|
||||
import type { IconComponent } from '$lib/types';
|
||||
import { ConnectError } from '@connectrpc/connect';
|
||||
import ServerTransportModal from '$lib/components/modals/ServerTransportModal.svelte';
|
||||
import {
|
||||
Globe,
|
||||
Network,
|
||||
@@ -22,8 +24,6 @@
|
||||
} from '@lucide/svelte';
|
||||
import type { ColumnDef } from '@tanstack/table-core';
|
||||
import { toast } from 'svelte-sonner';
|
||||
import { ProtocolType } from '$lib/gen/mantrae/v1/protocol_pb';
|
||||
import { serversTransports } from '$lib/stores/realtime';
|
||||
|
||||
let item = $state({} as ServersTransport);
|
||||
let open = $state(false);
|
||||
@@ -186,19 +186,20 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Server Transports</title>
|
||||
<title>Server Transports - Mantrae</title>
|
||||
<meta name="description" content="Configure HTTP and TCP server transports for your reverse proxy services" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 class="flex items-center gap-3 text-3xl font-bold tracking-tight">
|
||||
<div class="bg-primary/10 rounded-lg p-2">
|
||||
<Truck class="text-primary h-6 w-6" />
|
||||
<div class="rounded-lg bg-primary/10 p-2">
|
||||
<Truck class="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
Server Transports
|
||||
</h1>
|
||||
<p class="text-muted-foreground mt-1">Manage your server transports</p>
|
||||
<p class="mt-1 text-muted-foreground">Manage your server transports</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -122,19 +122,20 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Users</title>
|
||||
<title>User Management - Mantrae</title>
|
||||
<meta name="description" content="Manage your Mantrae users and access permissions for your reverse proxy system" />
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 class="flex items-center gap-3 text-3xl font-bold tracking-tight">
|
||||
<div class="bg-primary/10 rounded-lg p-2">
|
||||
<Users class="text-primary h-6 w-6" />
|
||||
<div class="rounded-lg bg-primary/10 p-2">
|
||||
<Users class="h-6 w-6 text-primary" />
|
||||
</div>
|
||||
User Management
|
||||
</h1>
|
||||
<p class="text-muted-foreground mt-1">Manage your users and access management</p>
|
||||
<p class="mt-1 text-muted-foreground">Manage your users and access management</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<svelte:head>
|
||||
<title>Welcome - Mantrae</title>
|
||||
<meta name="description" content="Configure your Mantrae server connection to get started with reverse proxy management" />
|
||||
</svelte:head>
|
||||
|
||||
<script lang="ts">
|
||||
import * as Card from '$lib/components/ui/card/index.js';
|
||||
import { Button } from '$lib/components/ui/button/index.js';
|
||||
|
||||
Reference in New Issue
Block a user