diff --git a/bin/memos/main.go b/bin/memos/main.go index 37e621e08..e7f94ceca 100644 --- a/bin/memos/main.go +++ b/bin/memos/main.go @@ -12,9 +12,9 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" + "github.com/usememos/memos/internal/profile" + "github.com/usememos/memos/internal/version" "github.com/usememos/memos/server" - "github.com/usememos/memos/server/profile" - "github.com/usememos/memos/server/version" "github.com/usememos/memos/store" "github.com/usememos/memos/store/db" ) diff --git a/internal/util/resource_name.go b/internal/base/resource_name.go similarity index 89% rename from internal/util/resource_name.go rename to internal/base/resource_name.go index ea40eb845..828bfa366 100644 --- a/internal/util/resource_name.go +++ b/internal/base/resource_name.go @@ -1,4 +1,4 @@ -package util +package base import "regexp" diff --git a/internal/util/resource_name_test.go b/internal/base/resource_name_test.go similarity index 98% rename from internal/util/resource_name_test.go rename to internal/base/resource_name_test.go index de7a5b3e8..cef922ac0 100644 --- a/internal/util/resource_name_test.go +++ b/internal/base/resource_name_test.go @@ -1,4 +1,4 @@ -package util +package base import ( "testing" diff --git a/server/profile/profile.go b/internal/profile/profile.go similarity index 100% rename from server/profile/profile.go rename to internal/profile/profile.go diff --git a/server/version/version.go b/internal/version/version.go similarity index 100% rename from server/version/version.go rename to internal/version/version.go diff --git a/server/version/version_test.go b/internal/version/version_test.go similarity index 100% rename from server/version/version_test.go rename to internal/version/version_test.go diff --git a/server/router/api/v1/auth_service.go b/server/router/api/v1/auth_service.go index c02a6dbd2..e5050e360 100644 --- a/server/router/api/v1/auth_service.go +++ b/server/router/api/v1/auth_service.go @@ -16,6 +16,7 @@ import ( "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" + "github.com/usememos/memos/internal/base" "github.com/usememos/memos/internal/util" "github.com/usememos/memos/plugin/idp" "github.com/usememos/memos/plugin/idp/oauth2" @@ -207,7 +208,7 @@ func (s *APIV1Service) SignUp(ctx context.Context, request *v1pb.SignUpRequest) Nickname: request.Username, PasswordHash: string(passwordHash), } - if !util.UIDMatcher.MatchString(strings.ToLower(create.Username)) { + if !base.UIDMatcher.MatchString(strings.ToLower(create.Username)) { return nil, status.Errorf(codes.InvalidArgument, "invalid username: %s", create.Username) } diff --git a/server/router/api/v1/resource_service.go b/server/router/api/v1/resource_service.go index 71514b94a..dac251120 100644 --- a/server/router/api/v1/resource_service.go +++ b/server/router/api/v1/resource_service.go @@ -22,11 +22,11 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/timestamppb" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/internal/util" "github.com/usememos/memos/plugin/storage/s3" v1pb "github.com/usememos/memos/proto/gen/api/v1" storepb "github.com/usememos/memos/proto/gen/store" - "github.com/usememos/memos/server/profile" "github.com/usememos/memos/store" ) diff --git a/server/router/api/v1/user_service.go b/server/router/api/v1/user_service.go index 3c70126ca..fa31bc99f 100644 --- a/server/router/api/v1/user_service.go +++ b/server/router/api/v1/user_service.go @@ -20,7 +20,7 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/timestamppb" - "github.com/usememos/memos/internal/util" + "github.com/usememos/memos/internal/base" v1pb "github.com/usememos/memos/proto/gen/api/v1" storepb "github.com/usememos/memos/proto/gen/store" "github.com/usememos/memos/store" @@ -122,7 +122,7 @@ func (s *APIV1Service) CreateUser(ctx context.Context, request *v1pb.CreateUserR if currentUser.Role != store.RoleHost { return nil, status.Errorf(codes.PermissionDenied, "permission denied") } - if !util.UIDMatcher.MatchString(strings.ToLower(request.User.Username)) { + if !base.UIDMatcher.MatchString(strings.ToLower(request.User.Username)) { return nil, status.Errorf(codes.InvalidArgument, "invalid username: %s", request.User.Username) } passwordHash, err := bcrypt.GenerateFromPassword([]byte(request.User.Password), bcrypt.DefaultCost) @@ -184,7 +184,7 @@ func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserR if workspaceGeneralSetting.DisallowChangeUsername { return nil, status.Errorf(codes.PermissionDenied, "permission denied: disallow change username") } - if !util.UIDMatcher.MatchString(strings.ToLower(request.User.Username)) { + if !base.UIDMatcher.MatchString(strings.ToLower(request.User.Username)) { return nil, status.Errorf(codes.InvalidArgument, "invalid username: %s", request.User.Username) } update.Username = &request.User.Username diff --git a/server/router/api/v1/v1.go b/server/router/api/v1/v1.go index 80d216334..e73c54f81 100644 --- a/server/router/api/v1/v1.go +++ b/server/router/api/v1/v1.go @@ -14,8 +14,8 @@ import ( "google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/grpc/reflection" + "github.com/usememos/memos/internal/profile" v1pb "github.com/usememos/memos/proto/gen/api/v1" - "github.com/usememos/memos/server/profile" "github.com/usememos/memos/store" ) diff --git a/server/router/frontend/frontend.go b/server/router/frontend/frontend.go index a3b499c2f..f3eccd996 100644 --- a/server/router/frontend/frontend.go +++ b/server/router/frontend/frontend.go @@ -9,8 +9,8 @@ import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/internal/util" - "github.com/usememos/memos/server/profile" "github.com/usememos/memos/store" ) @@ -30,12 +30,17 @@ func NewFrontendService(profile *profile.Profile, store *store.Store) *FrontendS } func (*FrontendService) Serve(_ context.Context, e *echo.Echo) { - apiSkipper := func(c echo.Context) bool { + skipper := func(c echo.Context) bool { + // Skip API routes. if util.HasPrefixes(c.Path(), "/api", "/memos.api.v1") { return true } - // Set Cache-Control header to allow public caching with a max-age of 30 days (in seconds). - c.Response().Header().Set(echo.HeaderCacheControl, "public, max-age=2592000") + // Skip setting cache headers for index.html + if c.Path() == "/" || c.Path() == "/index.html" { + return false + } + // Set Cache-Control header to allow public caching with a max-age of 7 days. + c.Response().Header().Set(echo.HeaderCacheControl, "public, max-age=604800") // 7 days return false } @@ -43,7 +48,7 @@ func (*FrontendService) Serve(_ context.Context, e *echo.Echo) { e.Use(middleware.StaticWithConfig(middleware.StaticConfig{ Filesystem: getFileSystem("dist"), HTML5: true, // Enable fallback to index.html - Skipper: apiSkipper, + Skipper: skipper, })) } diff --git a/server/router/rss/rss.go b/server/router/rss/rss.go index b03d1858b..0f4083730 100644 --- a/server/router/rss/rss.go +++ b/server/router/rss/rss.go @@ -12,8 +12,8 @@ import ( "github.com/usememos/gomark" "github.com/usememos/gomark/renderer" + "github.com/usememos/memos/internal/profile" storepb "github.com/usememos/memos/proto/gen/store" - "github.com/usememos/memos/server/profile" "github.com/usememos/memos/store" ) diff --git a/server/server.go b/server/server.go index 7f177b042..540fd1aa6 100644 --- a/server/server.go +++ b/server/server.go @@ -18,8 +18,8 @@ import ( "github.com/soheilhy/cmux" "google.golang.org/grpc" + "github.com/usememos/memos/internal/profile" storepb "github.com/usememos/memos/proto/gen/store" - "github.com/usememos/memos/server/profile" "github.com/usememos/memos/server/profiler" apiv1 "github.com/usememos/memos/server/router/api/v1" "github.com/usememos/memos/server/router/frontend" diff --git a/store/db/db.go b/store/db/db.go index 47a369385..586a434e6 100644 --- a/store/db/db.go +++ b/store/db/db.go @@ -3,7 +3,7 @@ package db import ( "github.com/pkg/errors" - "github.com/usememos/memos/server/profile" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/store" "github.com/usememos/memos/store/db/mysql" "github.com/usememos/memos/store/db/postgres" diff --git a/store/db/mysql/mysql.go b/store/db/mysql/mysql.go index 60913607f..02a6523bd 100644 --- a/store/db/mysql/mysql.go +++ b/store/db/mysql/mysql.go @@ -6,7 +6,7 @@ import ( "github.com/go-sql-driver/mysql" "github.com/pkg/errors" - "github.com/usememos/memos/server/profile" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/store" ) diff --git a/store/db/postgres/postgres.go b/store/db/postgres/postgres.go index 2f9d02a97..34495e730 100644 --- a/store/db/postgres/postgres.go +++ b/store/db/postgres/postgres.go @@ -8,7 +8,7 @@ import ( _ "github.com/lib/pq" "github.com/pkg/errors" - "github.com/usememos/memos/server/profile" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/store" ) diff --git a/store/db/sqlite/sqlite.go b/store/db/sqlite/sqlite.go index eedf8494c..345a4783b 100644 --- a/store/db/sqlite/sqlite.go +++ b/store/db/sqlite/sqlite.go @@ -8,7 +8,7 @@ import ( // Import the SQLite driver. _ "modernc.org/sqlite" - "github.com/usememos/memos/server/profile" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/store" ) diff --git a/store/memo.go b/store/memo.go index 2a16d3645..0441e6824 100644 --- a/store/memo.go +++ b/store/memo.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/usememos/memos/internal/util" + "github.com/usememos/memos/internal/base" storepb "github.com/usememos/memos/proto/gen/store" ) @@ -112,7 +112,7 @@ type DeleteMemo struct { } func (s *Store) CreateMemo(ctx context.Context, create *Memo) (*Memo, error) { - if !util.UIDMatcher.MatchString(create.UID) { + if !base.UIDMatcher.MatchString(create.UID) { return nil, errors.New("invalid uid") } return s.driver.CreateMemo(ctx, create) @@ -136,7 +136,7 @@ func (s *Store) GetMemo(ctx context.Context, find *FindMemo) (*Memo, error) { } func (s *Store) UpdateMemo(ctx context.Context, update *UpdateMemo) error { - if update.UID != nil && !util.UIDMatcher.MatchString(*update.UID) { + if update.UID != nil && !base.UIDMatcher.MatchString(*update.UID) { return errors.New("invalid uid") } return s.driver.UpdateMemo(ctx, update) diff --git a/store/migrator.go b/store/migrator.go index 2b8c94ea1..61eaed019 100644 --- a/store/migrator.go +++ b/store/migrator.go @@ -14,8 +14,8 @@ import ( "github.com/pkg/errors" + "github.com/usememos/memos/internal/version" storepb "github.com/usememos/memos/proto/gen/store" - "github.com/usememos/memos/server/version" ) //go:embed migration diff --git a/store/resource.go b/store/resource.go index ad03ee527..7d6564fcf 100644 --- a/store/resource.go +++ b/store/resource.go @@ -8,7 +8,7 @@ import ( "github.com/pkg/errors" - "github.com/usememos/memos/internal/util" + "github.com/usememos/memos/internal/base" "github.com/usememos/memos/plugin/storage/s3" storepb "github.com/usememos/memos/proto/gen/store" ) @@ -67,7 +67,7 @@ type DeleteResource struct { } func (s *Store) CreateResource(ctx context.Context, create *Resource) (*Resource, error) { - if !util.UIDMatcher.MatchString(create.UID) { + if !base.UIDMatcher.MatchString(create.UID) { return nil, errors.New("invalid uid") } return s.driver.CreateResource(ctx, create) @@ -102,7 +102,7 @@ func (s *Store) GetResource(ctx context.Context, find *FindResource) (*Resource, } func (s *Store) UpdateResource(ctx context.Context, update *UpdateResource) error { - if update.UID != nil && !util.UIDMatcher.MatchString(*update.UID) { + if update.UID != nil && !base.UIDMatcher.MatchString(*update.UID) { return errors.New("invalid uid") } return s.driver.UpdateResource(ctx, update) diff --git a/store/store.go b/store/store.go index 07716278d..6b7e8265d 100644 --- a/store/store.go +++ b/store/store.go @@ -3,7 +3,7 @@ package store import ( "time" - "github.com/usememos/memos/server/profile" + "github.com/usememos/memos/internal/profile" "github.com/usememos/memos/store/cache" ) diff --git a/store/test/store.go b/store/test/store.go index 404e51d05..b543d8712 100644 --- a/store/test/store.go +++ b/store/test/store.go @@ -13,8 +13,8 @@ import ( "github.com/joho/godotenv" - "github.com/usememos/memos/server/profile" - "github.com/usememos/memos/server/version" + "github.com/usememos/memos/internal/profile" + "github.com/usememos/memos/internal/version" "github.com/usememos/memos/store" "github.com/usememos/memos/store/db" ) diff --git a/web/package.json b/web/package.json index d6d2e9497..e8de9c22f 100644 --- a/web/package.json +++ b/web/package.json @@ -1,5 +1,6 @@ { "name": "memos", + "private": true, "scripts": { "dev": "vite", "build": "vite build",