Skip to content
Merged

Dev #84

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d232985
hotfix: dev Cors
Arjuna-Ragil Jan 12, 2026
00431f8
Merge pull request #65 from Arjuna-Ragil/auth-sys
Arjuna-Ragil Jan 12, 2026
01244ed
feat: main dashboard updated
Arjuna-Ragil Jan 12, 2026
de3ba87
feat: Profile page, login with email/username, More input in register
Arjuna-Ragil Jan 12, 2026
17af40b
Merge pull request #69 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 12, 2026
9aa3b9b
feat: seaweedfs (bucket) docker
Arjuna-Ragil Jan 13, 2026
687336a
feat: Storage bucket connected
Arjuna-Ragil Jan 14, 2026
bae80b9
feat: Storage bucket added
Arjuna-Ragil Jan 15, 2026
5d8794b
feat: Bucket safety config added
Arjuna-Ragil Jan 15, 2026
de0857f
Merge pull request #72 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 16, 2026
9df7118
hotfix: env restart
Arjuna-Ragil Jan 16, 2026
cb31d88
Merge pull request #73 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 16, 2026
4013fe9
hotfix: test deploy
Arjuna-Ragil Jan 16, 2026
b83fd26
Merge pull request #74 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 16, 2026
1fd9e4d
hotfix: CI bucket config debugging
Arjuna-Ragil Jan 17, 2026
9a324dd
Merge pull request #75 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
56131db
feat: added manual rerun deploy workflow
Arjuna-Ragil Jan 17, 2026
808621b
Merge pull request #76 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
8631b4a
hotfix: wrong fe env fix
Arjuna-Ragil Jan 17, 2026
75eacb1
Merge pull request #77 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
369983b
hotfix: revert to previous, maybe it will work??
Arjuna-Ragil Jan 17, 2026
3134f6a
Merge pull request #78 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
f342f3a
hotfix: maybe env dev will work?
Arjuna-Ragil Jan 17, 2026
240d3e3
Merge pull request #79 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
57c0088
hotfix: change back
Arjuna-Ragil Jan 17, 2026
0915c59
Merge pull request #80 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
8fc167a
feat: update storage bucket protection
Arjuna-Ragil Jan 17, 2026
418b737
Merge pull request #81 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
f24ad18
hotfix: make bucket config receive anonymous user
Arjuna-Ragil Jan 17, 2026
4709b0c
Merge pull request #82 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
b0025b4
feat: Storage bucket prod setup
Arjuna-Ragil Jan 17, 2026
e60dcab
Merge pull request #83 from Arjuna-Ragil/profile-sys
Arjuna-Ragil Jan 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- dev
workflow_dispatch:

jobs:
deploy-dev:
Expand All @@ -27,6 +28,18 @@ jobs:
echo "${{ secrets.VITE_ENV_FILE }}" > .env.production
cat .env.production

- name: Create seaweedfs config
env:
BUCKET_ACCESS_KEY: ${{ secrets.BUCKET_ACCESS_KEY }}
BUCKET_SECRET_KEY: ${{ secrets.BUCKET_SECRET_KEY }}
run: |
echo "Generating seaweedfs config"
ls -R
mkdir -p seaweedfs_config
envsubst < seaweedfs_config/s3_config.template.json > seaweedfs_config/s3_config.json
echo "Seaweedfs config generated"
cat seaweedfs_config/s3_config.json

- name: Restart docker
run: |
echo "Restarting docker"
Expand Down Expand Up @@ -59,6 +72,18 @@ jobs:
echo "${{ secrets.VITE_ENV_FILE }}" > .env.production
cat .env.production

- name: Create seaweedfs config
env:
BUCKET_ACCESS_KEY: ${{ secrets.BUCKET_ACCESS_KEY }}
BUCKET_SECRET_KEY: ${{ secrets.BUCKET_SECRET_KEY }}
run: |
echo "Generating seaweedfs config"
ls -R
mkdir -p seaweedfs_config
envsubst < seaweedfs_config/s3_config.template.json > seaweedfs_config/s3_config.json
echo "Seaweedfs config generated"
cat seaweedfs_config/s3_config.json

- name: Restart docker
run: |
echo "Restarting docker"
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.env*
.idea
docker-compose.override.yml
docker-compose.override.yml
seaweedfs_config/s3_config.json
39 changes: 33 additions & 6 deletions Backend/controller/auth/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"net/http"
"os"
"personal-erp-backend/database"
"personal-erp-backend/internal/profile"
"time"

"github.com/gin-gonic/gin"
Expand All @@ -15,9 +16,14 @@ var SecretKey = []byte(os.Getenv("SECRET_KEY"))

func Register(c *gin.Context) {
var input struct {
Username string `json:"username"`
Email string `json:"email"`
Password string `json:"password"`
Username string `json:"username"`
Email string `json:"email"`
Password string `json:"password"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
PhoneNumber string `json:"phone_number"`
Country string `json:"country"`
TeleUsername string `json:"tele_username"`
}
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
Expand All @@ -28,25 +34,40 @@ func Register(c *gin.Context) {
c.JSON(500, gin.H{"error": err.Error()})
return
}
user := User{Username: input.Username, Email: input.Email, Password: string(hashedPassword)}
user := profile.User{
Username: input.Username,
Email: input.Email,
Password: string(hashedPassword),
FirstName: input.FirstName,
LastName: input.LastName,
PhoneNumber: input.PhoneNumber,
Country: input.Country,
TeleUsername: input.TeleUsername,
}
if err := database.DB.Create(&user).Error; err != nil {
c.JSON(500, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusCreated, gin.H{"user": user})

if err := Login; err != nil {
c.JSON(500, gin.H{"error": err})
return
}
}

func Login(c *gin.Context) {
var input struct {
Username string `json:"username"`
Email string `json:"email"`
Password string `json:"password"`
}
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
var user User
if err := database.DB.Where("username = ?", input.Username).First(&user).Error; err != nil {
var user profile.User
if err := database.DB.Where("username = ? OR email = ?", input.Username, input.Email).First(&user).Error; err != nil {
c.JSON(404, gin.H{"error": err.Error()})
return
}
Expand All @@ -66,6 +87,12 @@ func Login(c *gin.Context) {
c.SetSameSite(http.SameSiteLaxMode)
c.SetCookie("authorization", tokenString, 3600*24, "", "", false, true)
c.JSON(http.StatusOK, gin.H{"token": tokenString, "message": "success"})

if err := profile.GetUser; err != nil {
c.JSON(404, gin.H{"message": err})
return
}
c.JSON(200, gin.H{"message": "OK", "user": user})
}

func Logout(c *gin.Context) {
Expand Down
3 changes: 2 additions & 1 deletion Backend/controller/auth/middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"os"
"personal-erp-backend/database"
"personal-erp-backend/internal/profile"
"time"

"github.com/gin-gonic/gin"
Expand Down Expand Up @@ -42,7 +43,7 @@ func RequireAuth(c *gin.Context) {
if float64(time.Now().Unix()) > claims["exp"].(float64) {
c.JSON(401, gin.H{"message": "Token expired"})
}
var user User
var user profile.User
if result := database.DB.First(&user, claims["sub"]); result.Error != nil {
c.AbortWithStatusJSON(401, gin.H{"error": "User no"})
return
Expand Down
8 changes: 0 additions & 8 deletions Backend/controller/auth/modelDB.go

This file was deleted.

75 changes: 75 additions & 0 deletions Backend/database/bucket.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package database

import (
"context"
"fmt"
"log"
"mime/multipart"
"os"
"time"

"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)

func InitBucket() *minio.Client {
endpoint := os.Getenv("BUCKET_ENDPOINT")
accessKeyID := os.Getenv("BUCKET_ACCESS_KEY")
secretAccessKey := os.Getenv("BUCKET_SECRET_KEY")
useSSL := false

minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln("Failed to initialize minio client:", err)
}
log.Println("Successfully connected to Minio")
return minioClient
}

func UploadFile(client *minio.Client, file *multipart.FileHeader) (string, error) {
ctx := context.Background()
bucketName := "user-profile"
publicDomain := os.Getenv("BUCKET_PUBLIC_DOMAIN")
if publicDomain == "" {
publicDomain = "http://localhost:8334"
}

src, err := file.Open()
if err != nil {
return "", err
}
defer func(src multipart.File) {
err := src.Close()
if err != nil {

}
}(src)

exists, err := client.BucketExists(ctx, bucketName)
if err != nil {
return "", err
}
if !exists {
err := client.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{})
if err != nil {
return "", fmt.Errorf("failed to create bucket %s: %v", bucketName, err)
}
log.Println("Successfully created bucket:", bucketName)
}

objectName := fmt.Sprintf("file_%d_%s", time.Now().Unix(), file.Filename)
contentType := file.Header.Get("Content-Type")

info, err := client.PutObject(ctx, bucketName, objectName, src, file.Size, minio.PutObjectOptions{
ContentType: contentType,
})
if err != nil {
return "", err
}
log.Println("Successfully uploaded file:", info)
fileURL := fmt.Sprintf("%s/%s/%s", publicDomain, bucketName, objectName)
return fileURL, nil
}
12 changes: 12 additions & 0 deletions Backend/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,40 @@ require (
github.com/bytedance/sonic v1.14.2 // indirect
github.com/bytedance/sonic/loader v0.4.0 // indirect
github.com/cloudwego/base64x v0.1.6 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
github.com/gin-contrib/sse v1.1.0 // indirect
github.com/go-ini/ini v1.67.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.30.1 // indirect
github.com/goccy/go-json v0.10.5 // indirect
github.com/goccy/go-yaml v1.19.1 // indirect
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/pgx/v5 v5.7.6 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/klauspost/crc32 v1.3.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/minio/crc64nvme v1.1.0 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/minio/minio-go/v7 v7.0.97 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/philhofer/fwd v1.2.0 // indirect
github.com/quic-go/qpack v0.6.0 // indirect
github.com/quic-go/quic-go v0.58.0 // indirect
github.com/rs/xid v1.6.0 // indirect
github.com/tinylib/msgp v1.3.0 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.1 // indirect
go.uber.org/mock v0.6.0 // indirect
Expand All @@ -48,4 +59,5 @@ require (
golang.org/x/sys v0.39.0 // indirect
golang.org/x/text v0.32.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
23 changes: 23 additions & 0 deletions Backend/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gE
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
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/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw=
github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
github.com/gin-contrib/cors v1.7.6 h1:3gQ8GMzs1Ylpf70y8bMw4fVpycXIeX1ZemuSQIsnQQY=
Expand All @@ -17,6 +19,8 @@ github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w
github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM=
github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk=
github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+W50Dls=
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
Expand All @@ -34,6 +38,8 @@ github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArs
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/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
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/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
Expand All @@ -50,25 +56,40 @@ github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
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/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/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/klauspost/crc32 v1.3.0 h1:sSmTt3gUt81RP655XGZPElI0PelVTZ6YwCRnPSupoFM=
github.com/klauspost/crc32 v1.3.0/go.mod h1:D7kQaZhnkX/Y0tstFGf8VUzv2UofNGqCjnC3zdHB0Hw=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
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/minio/crc64nvme v1.1.0 h1:e/tAguZ+4cw32D+IO/8GSf5UVr9y+3eJcxZI2WOO/7Q=
github.com/minio/crc64nvme v1.1.0/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.97 h1:lqhREPyfgHTB/ciX8k2r8k0D93WaFqxbJX36UZq5occ=
github.com/minio/minio-go/v7 v7.0.97/go.mod h1:re5VXuo0pwEtoNLsNuSr0RrLfT/MBtohwdaSmPPSRSk=
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/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM=
github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII=
github.com/quic-go/quic-go v0.58.0 h1:ggY2pvZaVdB9EyojxL1p+5mptkuHyX5MOSv4dgWF4Ug=
github.com/quic-go/quic-go v0.58.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
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=
Expand All @@ -81,6 +102,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/tinylib/msgp v1.3.0 h1:ULuf7GPooDaIlbyvgAxBV/FI7ynli6LZ1/nVUNu+0ww=
github.com/tinylib/msgp v1.3.0/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY=
Expand Down
Loading
Loading