diff --git a/.env b/.env index 2bb2057..e4e8f39 100644 --- a/.env +++ b/.env @@ -22,9 +22,7 @@ AUTH_JWT_EXPIRATION=86400 AUTH_REFRESH_EXPIRATION=604800 # Google Translate Client -# Path to your service account JSON key file downloaded from Google Cloud Console -GOOGLE_APPLICATION_CREDENTIALS=/home/marek/coding/work/b2b/google-cred.json -# Your Google Cloud project ID (visible in the Google Cloud Console dashboard) +GOOGLE_APPLICATION_CREDENTIALS=./google-cred.json GOOGLE_CLOUD_PROJECT_ID=translation-343517 # Google OAuth2 diff --git a/.gitignore b/.gitignore index b5e0d12..d5394cc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ assets/public/dist bin/ i18n/*.json *_templ.go +tmp/main \ No newline at end of file diff --git a/app/delivery/web/api/restricted/productDescription.go b/app/delivery/web/api/restricted/productDescription.go index 40fec9a..8d2f7c7 100644 --- a/app/delivery/web/api/restricted/productDescription.go +++ b/app/delivery/web/api/restricted/productDescription.go @@ -134,13 +134,12 @@ func (h *ProductDescriptionHandler) SaveProductDescription(c fiber.Ctx) error { // GetProductDescription returns the product description for a given product ID func (h *ProductDescriptionHandler) TranslateProductDescription(c fiber.Ctx) error { - // userID, ok := c.Locals("userID").(uint) - // if !ok { - // return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrInvalidBody)).JSON(fiber.Map{ - // "error": responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody), // possibly could return a different error - // }) - // } - userID := uint(0) + userID, ok := c.Locals("userID").(uint) + if !ok { + return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrInvalidBody)).JSON(fiber.Map{ + "error": responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody), // possibly could return a different error + }) + } productID_attribute := c.Query("productID") productID, err := strconv.Atoi(productID_attribute) @@ -174,7 +173,14 @@ func (h *ProductDescriptionHandler) TranslateProductDescription(c fiber.Ctx) err }) } - response, err := h.productDescriptionService.TranslateProductDescription(userID, uint(productID), uint(productShopID), uint(productFromLangID), uint(productToLangID)) + model := c.Query("model") + if model != "OpenAI" && model != "Google" { + return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).JSON(fiber.Map{ + "error": responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute), + }) + } + + response, err := h.productDescriptionService.TranslateProductDescription(userID, uint(productID), uint(productShopID), uint(productFromLangID), uint(productToLangID), model) if err != nil { return c.Status(responseErrors.GetErrorStatus(err)).JSON(fiber.Map{ "error": responseErrors.GetErrorCode(c, err), diff --git a/app/delivery/web/init.go b/app/delivery/web/init.go index 3377fd2..2fe263b 100644 --- a/app/delivery/web/init.go +++ b/app/delivery/web/init.go @@ -77,7 +77,7 @@ func (s *Server) Setup() error { s.api = s.app.Group("/api/v1") s.public = s.api.Group("/public") s.restricted = s.api.Group("/restricted") - // s.restricted.Use(middleware.AuthMiddleware()) + s.restricted.Use(middleware.AuthMiddleware()) // initialize language endpoints (general) api.NewLangHandler().InitLanguage(s.api, s.cfg) diff --git a/app/service/productDescriptionService/productDescriptionService.go b/app/service/productDescriptionService/productDescriptionService.go index bf0f66c..c8da6b3 100644 --- a/app/service/productDescriptionService/productDescriptionService.go +++ b/app/service/productDescriptionService/productDescriptionService.go @@ -6,15 +6,19 @@ import ( "fmt" "io" "log" + "net/http" "os" "slices" "strings" + "time" "git.ma-al.com/goc_daniel/b2b/app/config" "git.ma-al.com/goc_daniel/b2b/app/db" "git.ma-al.com/goc_daniel/b2b/app/model" "git.ma-al.com/goc_daniel/b2b/app/service/langsService" "git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors" + "github.com/openai/openai-go/responses" + "github.com/openai/openai-go/v3" "google.golang.org/api/option" "gorm.io/gorm" @@ -29,6 +33,7 @@ type ProductDescriptionService struct { db *gorm.DB ctx context.Context googleCli translate.TranslationClient + client openai.Client // projectID is the Google Cloud project ID used as the "parent" in API calls, // e.g. "projects/my-project-123/locations/global" projectID string @@ -70,9 +75,13 @@ func New() *ProductDescriptionService { log.Fatalf("productDescriptionService: cannot create Translation client: %v", err) } + client := openai.NewClient(option.WithAPIKey("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"), + option.WithHTTPClient(&http.Client{Timeout: 300 * time.Second})) // five minutes timeout + return &ProductDescriptionService{ db: db.Get(), ctx: ctx, + client: client, googleCli: *googleCli, projectID: cfg.GoogleTranslate.ProjectID, } @@ -152,7 +161,7 @@ func (s *ProductDescriptionService) SaveProductDescription(userID uint, productI // // The Google Cloud project must have the Cloud Translation API enabled and the // service account must hold the "Cloud Translation API User" role. -func (s *ProductDescriptionService) TranslateProductDescription(userID uint, productID uint, productShopID uint, productFromLangID uint, productToLangID uint) (*model.ProductDescription, error) { +func (s *ProductDescriptionService) TranslateProductDescription(userID uint, productID uint, productShopID uint, productFromLangID uint, productToLangID uint, model string) (*model.ProductDescription, error) { var ProductDescription model.ProductDescription err := s.db. @@ -189,69 +198,69 @@ func (s *ProductDescriptionService) TranslateProductDescription(userID uint, pro "translation_of_product_usage", } - // request := "Translate to " + lang.ISOCode + " without changing the html structure.\n" request := "" + if model == "OpenAI" { + request = "Translate to " + lang.ISOCode + " without changing the html structure.\n" + } for i := 0; i < len(keys); i++ { request += "\n<" + keys[i] + ">" request += *fields[i] request += "\n" } - request = cleanForPrompt(request) - - // TranslateText is the standard Cloud Translation v3 endpoint. - // "parent" must be "projects//locations/global" (or a specific region). - // MimeType "text/plain" is used because cleanForPrompt strips HTML attributes; - // switch to "text/html" if you want Google to preserve HTML tags automatically. - req := &translatepb.TranslateTextRequest{ - Parent: fmt.Sprintf("projects/%s/locations/global", s.projectID), - TargetLanguageCode: lang.ISOCode, - MimeType: "text/html", - Contents: []string{request}, - } - responseGoogle, err := s.googleCli.TranslateText(s.ctx, req) - if err != nil { - fmt.Println(err) - return nil, err + if model == "OpenAI" { + request = cleanForPrompt(request) } - // TranslateText returns one Translation per input string. - if len(responseGoogle.GetTranslations()) == 0 { - return nil, responseErrors.ErrAIBadOutput - } - response := responseGoogle.GetTranslations()[0].GetTranslatedText() + if model == "OpenAI" { + openai_response, _ := s.client.Responses.New(context.Background(), responses.ResponseNewParams{ + Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(request)}, + Model: openai.ChatModelGPT4_1Mini, + // Model: openai.ChatModelGPT4_1Nano, + }) + if openai_response.Status != "completed" { + return nil, responseErrors.ErrAIResponseFail + } + response := openai_response.OutputText() - for i := 0; i < len(keys); i++ { - success, resolution := resolveResponse(*fields[i], response, keys[i]) - if !success { + for i := 0; i < len(keys); i++ { + success, resolution := resolveResponse(*fields[i], response, keys[i]) + if !success { + return nil, responseErrors.ErrAIBadOutput + } + *fields[i] = resolution + } + + } else if model == "Google" { + // TranslateText is the standard Cloud Translation v3 endpoint. + req := &translatepb.TranslateTextRequest{ + Parent: fmt.Sprintf("projects/%s/locations/global", s.projectID), + TargetLanguageCode: lang.ISOCode, + MimeType: "text/html", + Contents: []string{request}, + } + responseGoogle, err := s.googleCli.TranslateText(s.ctx, req) + if err != nil { + return nil, err + } + + // TranslateText returns one Translation per input string. + if len(responseGoogle.GetTranslations()) == 0 { return nil, responseErrors.ErrAIBadOutput } - *fields[i] = resolution + response := responseGoogle.GetTranslations()[0].GetTranslatedText() + + for i := 0; i < len(keys); i++ { + success, match := GetStringInBetween(response, "<"+keys[i]+">", "") + if !success || !isValidXHTML(match) { + return nil, responseErrors.ErrAIBadOutput + } + *fields[i] = match + } } return &ProductDescription, nil } -// isValidXHTML checks if the string obeys the XHTML format -func isValidXHTML(s string) bool { - r := strings.NewReader(s) - d := xml.NewDecoder(r) - - // Configure the decoder for HTML; leave off strict and autoclose for XHTML - d.Strict = true - d.AutoClose = xml.HTMLAutoClose - d.Entity = xml.HTMLEntity - for { - _, err := d.Token() - switch err { - case io.EOF: - return true // We're done, it's valid! - case nil: - default: - return false // Oops, something wasn't right - } - } -} - func cleanForPrompt(s string) string { r := strings.NewReader(s) d := xml.NewDecoder(r) @@ -321,6 +330,27 @@ func GetStringInBetween(str string, start string, end string) (success bool, res return true, str[s : s+e] } +// isValidXHTML checks if the string obeys the XHTML format +func isValidXHTML(s string) bool { + r := strings.NewReader(s) + d := xml.NewDecoder(r) + + // Configure the decoder for HTML; leave off strict and autoclose for XHTML + d.Strict = true + d.AutoClose = xml.HTMLAutoClose + d.Entity = xml.HTMLEntity + for { + _, err := d.Token() + switch err { + case io.EOF: + return true // We're done, it's valid! + case nil: + default: + return false // Oops, something wasn't right + } + } +} + // Rebuilds HTML using the original HTML as a template and the response as a source // Assumes that both original and response have the exact same XML structure func RebuildFromResponse(s_original string, s_response string) (bool, string) { diff --git a/app/templ/emails/emailAdminNotification_templ.go b/app/templ/emails/emailAdminNotification_templ.go deleted file mode 100644 index 2c73c5b..0000000 --- a/app/templ/emails/emailAdminNotification_templ.go +++ /dev/null @@ -1,90 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.977 -package emails - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import ( - "git.ma-al.com/goc_daniel/b2b/app/templ/layout" - "git.ma-al.com/goc_daniel/b2b/app/utils/i18n" - "git.ma-al.com/goc_daniel/b2b/app/view" -) - -func EmailAdminNotificationWrapper(data view.EmailLayout[view.EmailAdminNotificationData]) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

New User Registration

Hello Administrator,

A new user has completed their registration and requires repository access.

User Details:

Name: ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.Data.UserName) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailAdminNotification.templ`, Line: 21, Col: 70} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

Email: ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 string - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(data.Data.UserEmail) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailAdminNotification.templ`, Line: 22, Col: 72} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "

Please assign the appropriate repositories to this user in the admin panel.

Go to Admin Panel

© 2024 Gitea Manager. All rights reserved.

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = layout.Base(i18n.T___(data.LangID, "email.email_admin_notification_title")).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/app/templ/emails/emailPasswordReset_templ.go b/app/templ/emails/emailPasswordReset_templ.go deleted file mode 100644 index 216997d..0000000 --- a/app/templ/emails/emailPasswordReset_templ.go +++ /dev/null @@ -1,194 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.977 -package emails - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import ( - "git.ma-al.com/goc_daniel/b2b/app/templ/layout" - "git.ma-al.com/goc_daniel/b2b/app/utils/i18n" - "git.ma-al.com/goc_daniel/b2b/app/view" -) - -func EmailPasswordResetWrapper(data view.EmailLayout[view.EmailPasswordResetData]) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_greeting")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 14, Col: 73} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 string - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_password_reset_message1")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 17, Col: 87} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 string - templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_reset_button")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 19, Col: 124} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var7 string - templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_or_copy")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 21, Col: 71} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var9 string - templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_warning_title")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 24, Col: 86} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var10 string - templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_password_reset_warning")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 24, Col: 161} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var11 string - templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_ignore_reset")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 26, Col: 76} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

© 2024 Gitea Manager. ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 string - templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_footer")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailPasswordReset.templ`, Line: 29, Col: 96} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = layout.Base(i18n.T___(data.LangID, "email.email_password_reset_title")).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/app/templ/emails/emailVerification_templ.go b/app/templ/emails/emailVerification_templ.go deleted file mode 100644 index 099e261..0000000 --- a/app/templ/emails/emailVerification_templ.go +++ /dev/null @@ -1,194 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.977 -package emails - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import ( - "git.ma-al.com/goc_daniel/b2b/app/templ/layout" - "git.ma-al.com/goc_daniel/b2b/app/utils/i18n" - "git.ma-al.com/goc_daniel/b2b/app/view" -) - -func EmailVerificationWrapper(data view.EmailLayout[view.EmailVerificationData]) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_verification_title")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 14, Col: 67} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 string - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_greeting")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 17, Col: 56} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_verification_message1")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 18, Col: 69} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var7 string - templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_verify_button")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 20, Col: 112} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var8 string - templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_or_copy")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 22, Col: 55} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var10 string - templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_verification_note")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 24, Col: 73} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var11 string - templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_ignore")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 25, Col: 54} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

© 2024 Gitea Manager. ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 string - templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(i18n.T___(data.LangID, "email.email_footer")) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/emails/emailVerification.templ`, Line: 28, Col: 81} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = layout.Base(i18n.T___(data.LangID, "email.email_verification_title")).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/app/templ/layout/base_templ.go b/app/templ/layout/base_templ.go deleted file mode 100644 index 16b5459..0000000 --- a/app/templ/layout/base_templ.go +++ /dev/null @@ -1,98 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.977 -package layout - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func Base(title string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = head(title).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func head(title string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var2 := templ.GetChildren(ctx) - if templ_7745c5c3_Var2 == nil { - templ_7745c5c3_Var2 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(title) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `app/templ/layout/base.templ`, Line: 17, Col: 16} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/assets/public/dist/favicon.ico b/assets/public/dist/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/assets/public/dist/favicon.ico and /dev/null differ diff --git a/assets/public/dist/index.html b/assets/public/dist/index.html deleted file mode 100644 index 9f29b8b..0000000 --- a/assets/public/dist/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - TimeTracker - - - - - - - - - - - - - - - - - -
- - diff --git a/bo/components.d.ts b/bo/components.d.ts index 484d231..655bc41 100644 --- a/bo/components.d.ts +++ b/bo/components.d.ts @@ -27,7 +27,6 @@ declare module 'vue' { UButton: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Button.vue')['default'] UCard: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Card.vue')['default'] UCheckbox: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Checkbox.vue')['default'] - UContainer: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Container.vue')['default'] UDrawer: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Drawer.vue')['default'] UForm: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Form.vue')['default'] UFormField: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/FormField.vue')['default'] diff --git a/go.mod b/go.mod index 99c5cc0..88c0b41 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,8 @@ require ( github.com/gofiber/fiber/v3 v3.1.0 github.com/golang-jwt/jwt/v5 v5.3.1 github.com/joho/godotenv v1.5.1 + github.com/openai/openai-go v1.12.0 + github.com/openai/openai-go/v3 v3.28.0 golang.org/x/crypto v0.48.0 golang.org/x/oauth2 v0.36.0 google.golang.org/api v0.247.0 @@ -27,6 +29,10 @@ require ( github.com/google/s2a-go v0.1.9 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/tidwall/gjson v1.18.0 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.1 // indirect + github.com/tidwall/sjson v1.2.5 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect diff --git a/go.sum b/go.sum index cbdefba..ca0cef2 100644 --- a/go.sum +++ b/go.sum @@ -111,6 +111,10 @@ 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/onsi/gomega v1.39.1 h1:1IJLAad4zjPn2PsnhH70V4DKRFlrCzGBNrNaru+Vf28= github.com/onsi/gomega v1.39.1/go.mod h1:hL6yVALoTOxeWudERyfppUcZXjMwIMLnuSfruD2lcfg= +github.com/openai/openai-go v1.12.0 h1:NBQCnXzqOTv5wsgNC36PrFEiskGfO5wccfCWDo9S1U0= +github.com/openai/openai-go v1.12.0/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y= +github.com/openai/openai-go/v3 v3.28.0 h1:2+FfrCVMdGXSQrBv1tLWtokm+BU7+3hJ/8rAHPQ63KM= +github.com/openai/openai-go/v3 v3.28.0/go.mod h1:cdufnVK14cWcT9qA1rRtrXx4FTRsgbDPW7Ia7SS5cZo= 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/pjbgf/sha1cd v0.5.0 h1:a+UkboSi1znleCDUNT3M5YxjOnN1fz2FhN48FlwCxs0= @@ -134,6 +138,16 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 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/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= +github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/tinylib/msgp v1.6.3 h1:bCSxiTz386UTgyT1i0MSCvdbWjVW+8sG3PjkGsZQt4s= github.com/tinylib/msgp v1.6.3/go.mod h1:RSp0LW9oSxFut3KzESt5Voq4GVWyS+PSulT77roAqEA= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/i18n/go-keys.json b/i18n/go-keys.json deleted file mode 100644 index 56d6ad4..0000000 --- a/i18n/go-keys.json +++ /dev/null @@ -1,2395 +0,0 @@ -{ - "translations": [ - { - "key": "auth_if_account_exists", - "scope_id": 1, - "component_id": 102, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 180, - "column": 25 - } - ] - }, - { - "key": "auth_if_account_exists", - "scope_id": 1, - "component_id": 102, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 180, - "column": 25 - } - ] - }, - { - "key": "auth_if_account_exists", - "scope_id": 1, - "component_id": 102, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 180, - "column": 25 - } - ] - }, - { - "key": "auth_logged_out_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 226, - "column": 25 - } - ] - }, - { - "key": "auth_logged_out_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 226, - "column": 25 - } - ] - }, - { - "key": "auth_logged_out_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 226, - "column": 25 - } - ] - }, - { - "key": "auth_password_reset_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 210, - "column": 25 - } - ] - }, - { - "key": "auth_password_reset_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 210, - "column": 25 - } - ] - }, - { - "key": "auth_password_reset_successfully", - "scope_id": 1, - "component_id": 102, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 210, - "column": 25 - } - ] - }, - { - "key": "auth_registration_successful", - "scope_id": 1, - "component_id": 102, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 312, - "column": 25 - } - ] - }, - { - "key": "auth_registration_successful", - "scope_id": 1, - "component_id": 102, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 312, - "column": 25 - } - ] - }, - { - "key": "auth_registration_successful", - "scope_id": 1, - "component_id": 102, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 312, - "column": 25 - } - ] - }, - { - "key": "email_admin_notification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailAdminNotification_templ.go", - "line": 82, - "column": 59 - } - ] - }, - { - "key": "email_admin_notification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailAdminNotification_templ.go", - "line": 82, - "column": 59 - } - ] - }, - { - "key": "email_admin_notification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailAdminNotification_templ.go", - "line": 82, - "column": 59 - } - ] - }, - { - "key": "email_footer", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 172, - "column": 91 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 172, - "column": 91 - } - ] - }, - { - "key": "email_footer", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 172, - "column": 91 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 172, - "column": 91 - } - ] - }, - { - "key": "email_footer", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 172, - "column": 91 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 172, - "column": 91 - } - ] - }, - { - "key": "email_greeting", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_greeting", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_greeting", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_ignore", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_ignore", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_ignore", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_ignore_reset", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_ignore_reset", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_ignore_reset", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 159, - "column": 91 - } - ] - }, - { - "key": "email_or_copy", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 107, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 120, - "column": 90 - } - ] - }, - { - "key": "email_or_copy", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 107, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 120, - "column": 90 - } - ] - }, - { - "key": "email_or_copy", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 107, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 120, - "column": 90 - } - ] - }, - { - "key": "email_password_reset_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_password_reset_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_password_reset_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 68, - "column": 90 - } - ] - }, - { - "key": "email_password_reset_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 101, - "column": 31 - } - ] - }, - { - "key": "email_password_reset_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 101, - "column": 31 - } - ] - }, - { - "key": "email_password_reset_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 101, - "column": 31 - } - ] - }, - { - "key": "email_password_reset_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_password_reset_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_password_reset_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_password_reset_warning", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_password_reset_warning", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_password_reset_warning", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_reset_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 94, - "column": 90 - } - ] - }, - { - "key": "email_reset_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 94, - "column": 90 - } - ] - }, - { - "key": "email_reset_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 94, - "column": 90 - } - ] - }, - { - "key": "email_verification_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 81, - "column": 90 - } - ] - }, - { - "key": "email_verification_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 81, - "column": 90 - } - ] - }, - { - "key": "email_verification_message1", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 81, - "column": 90 - } - ] - }, - { - "key": "email_verification_note", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_verification_note", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_verification_note", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 146, - "column": 91 - } - ] - }, - { - "key": "email_verification_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 86, - "column": 31 - } - ] - }, - { - "key": "email_verification_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 86, - "column": 31 - } - ] - }, - { - "key": "email_verification_subject", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/emailService/email.go", - "line": 86, - "column": 31 - } - ] - }, - { - "key": "email_verification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_verification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_verification_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 55, - "column": 90 - }, - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 186, - "column": 59 - } - ] - }, - { - "key": "email_verify_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 107, - "column": 90 - } - ] - }, - { - "key": "email_verify_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 107, - "column": 90 - } - ] - }, - { - "key": "email_verify_button", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailVerification_templ.go", - "line": 107, - "column": 90 - } - ] - }, - { - "key": "email_warning_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 133, - "column": 90 - } - ] - }, - { - "key": "email_warning_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 133, - "column": 90 - } - ] - }, - { - "key": "email_warning_title", - "scope_id": 1, - "component_id": 103, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/templ/emails/emailPasswordReset_templ.go", - "line": 133, - "column": 90 - } - ] - }, - { - "key": "err_bad_paging", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 122, - "column": 21 - } - ] - }, - { - "key": "err_bad_paging", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 122, - "column": 21 - } - ] - }, - { - "key": "err_bad_paging", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 122, - "column": 21 - } - ] - }, - { - "key": "err_bad_quarter_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 120, - "column": 21 - } - ] - }, - { - "key": "err_bad_quarter_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 120, - "column": 21 - } - ] - }, - { - "key": "err_bad_quarter_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 120, - "column": 21 - } - ] - }, - { - "key": "err_bad_repo_id_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 116, - "column": 21 - } - ] - }, - { - "key": "err_bad_repo_id_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 116, - "column": 21 - } - ] - }, - { - "key": "err_bad_repo_id_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 116, - "column": 21 - } - ] - }, - { - "key": "err_bad_year_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 118, - "column": 21 - } - ] - }, - { - "key": "err_bad_year_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 118, - "column": 21 - } - ] - }, - { - "key": "err_bad_year_attribute", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 118, - "column": 21 - } - ] - }, - { - "key": "err_email_exists", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 83, - "column": 21 - } - ] - }, - { - "key": "err_email_exists", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 83, - "column": 21 - } - ] - }, - { - "key": "err_email_exists", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 83, - "column": 21 - } - ] - }, - { - "key": "err_email_not_verified", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 81, - "column": 21 - } - ] - }, - { - "key": "err_email_not_verified", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 81, - "column": 21 - } - ] - }, - { - "key": "err_email_not_verified", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 81, - "column": 21 - } - ] - }, - { - "key": "err_email_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 93, - "column": 21 - } - ] - }, - { - "key": "err_email_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 93, - "column": 21 - } - ] - }, - { - "key": "err_email_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 93, - "column": 21 - } - ] - }, - { - "key": "err_email_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 91, - "column": 21 - } - ] - }, - { - "key": "err_email_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 91, - "column": 21 - } - ] - }, - { - "key": "err_email_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 91, - "column": 21 - } - ] - }, - { - "key": "err_first_last_name_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 89, - "column": 21 - } - ] - }, - { - "key": "err_first_last_name_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 89, - "column": 21 - } - ] - }, - { - "key": "err_first_last_name_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 89, - "column": 21 - } - ] - }, - { - "key": "err_internal_server_error", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 353, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 127, - "column": 21 - } - ] - }, - { - "key": "err_internal_server_error", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 353, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 127, - "column": 21 - } - ] - }, - { - "key": "err_internal_server_error", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 353, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 127, - "column": 21 - } - ] - }, - { - "key": "err_invalid_body", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 394, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 71, - "column": 21 - } - ] - }, - { - "key": "err_invalid_body", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 394, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 71, - "column": 21 - } - ] - }, - { - "key": "err_invalid_body", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 394, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 71, - "column": 21 - } - ] - }, - { - "key": "err_invalid_credentials", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 73, - "column": 21 - } - ] - }, - { - "key": "err_invalid_credentials", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 73, - "column": 21 - } - ] - }, - { - "key": "err_invalid_credentials", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 73, - "column": 21 - } - ] - }, - { - "key": "err_invalid_password", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 106, - "column": 21 - } - ] - }, - { - "key": "err_invalid_password", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 106, - "column": 21 - } - ] - }, - { - "key": "err_invalid_password", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 106, - "column": 21 - } - ] - }, - { - "key": "err_invalid_repo_id", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 124, - "column": 21 - } - ] - }, - { - "key": "err_invalid_repo_id", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 124, - "column": 21 - } - ] - }, - { - "key": "err_invalid_repo_id", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 124, - "column": 21 - } - ] - }, - { - "key": "err_invalid_reset_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 100, - "column": 21 - } - ] - }, - { - "key": "err_invalid_reset_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 100, - "column": 21 - } - ] - }, - { - "key": "err_invalid_reset_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 100, - "column": 21 - } - ] - }, - { - "key": "err_invalid_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 377, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 85, - "column": 21 - } - ] - }, - { - "key": "err_invalid_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 377, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 85, - "column": 21 - } - ] - }, - { - "key": "err_invalid_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/delivery/web/api/public/auth.go", - "line": 377, - "column": 24 - }, - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 85, - "column": 21 - } - ] - }, - { - "key": "err_invalid_verification_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 111, - "column": 21 - } - ] - }, - { - "key": "err_invalid_verification_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 111, - "column": 21 - } - ] - }, - { - "key": "err_invalid_verification_token", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 111, - "column": 21 - } - ] - }, - { - "key": "err_not_authenticated", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 75, - "column": 21 - } - ] - }, - { - "key": "err_not_authenticated", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 75, - "column": 21 - } - ] - }, - { - "key": "err_not_authenticated", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 75, - "column": 21 - } - ] - }, - { - "key": "err_passwords_do_not_match", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 104, - "column": 21 - } - ] - }, - { - "key": "err_passwords_do_not_match", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 104, - "column": 21 - } - ] - }, - { - "key": "err_passwords_do_not_match", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 104, - "column": 21 - } - ] - }, - { - "key": "err_refresh_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 97, - "column": 21 - } - ] - }, - { - "key": "err_refresh_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 97, - "column": 21 - } - ] - }, - { - "key": "err_refresh_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 97, - "column": 21 - } - ] - }, - { - "key": "err_reset_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 102, - "column": 21 - } - ] - }, - { - "key": "err_reset_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 102, - "column": 21 - } - ] - }, - { - "key": "err_reset_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 102, - "column": 21 - } - ] - }, - { - "key": "err_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 87, - "column": 21 - } - ] - }, - { - "key": "err_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 87, - "column": 21 - } - ] - }, - { - "key": "err_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 87, - "column": 21 - } - ] - }, - { - "key": "err_token_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 108, - "column": 21 - } - ] - }, - { - "key": "err_token_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 108, - "column": 21 - } - ] - }, - { - "key": "err_token_password_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 108, - "column": 21 - } - ] - }, - { - "key": "err_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 95, - "column": 21 - } - ] - }, - { - "key": "err_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 95, - "column": 21 - } - ] - }, - { - "key": "err_token_required", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 95, - "column": 21 - } - ] - }, - { - "key": "err_user_inactive", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 79, - "column": 21 - } - ] - }, - { - "key": "err_user_inactive", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 79, - "column": 21 - } - ] - }, - { - "key": "err_user_inactive", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 79, - "column": 21 - } - ] - }, - { - "key": "err_user_not_found", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 77, - "column": 21 - } - ] - }, - { - "key": "err_user_not_found", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 77, - "column": 21 - } - ] - }, - { - "key": "err_user_not_found", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 77, - "column": 21 - } - ] - }, - { - "key": "err_verification_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 113, - "column": 21 - } - ] - }, - { - "key": "err_verification_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 113, - "column": 21 - } - ] - }, - { - "key": "err_verification_token_expired", - "scope_id": 1, - "component_id": 101, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/responseErrors/response_errors.go", - "line": 113, - "column": 21 - } - ] - }, - { - "key": "langs_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 19, - "column": 47 - } - ] - }, - { - "key": "langs_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 19, - "column": 47 - } - ] - }, - { - "key": "langs_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 19, - "column": 47 - } - ] - }, - { - "key": "langs_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 20, - "column": 47 - } - ] - }, - { - "key": "langs_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 20, - "column": 47 - } - ] - }, - { - "key": "langs_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 20, - "column": 47 - } - ] - }, - { - "key": "message_nok", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 9, - "column": 32 - } - ] - }, - { - "key": "message_nok", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 9, - "column": 32 - } - ] - }, - { - "key": "message_nok", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 9, - "column": 32 - } - ] - }, - { - "key": "message_ok", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 8, - "column": 32 - } - ] - }, - { - "key": "message_ok", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 8, - "column": 32 - } - ] - }, - { - "key": "message_ok", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/utils/response/messages.go", - "line": 8, - "column": 32 - } - ] - }, - { - "key": "translations_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 21, - "column": 47 - } - ] - }, - { - "key": "translations_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 21, - "column": 47 - } - ] - }, - { - "key": "translations_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 21, - "column": 47 - } - ] - }, - { - "key": "translations_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 22, - "column": 47 - } - ] - }, - { - "key": "translations_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 22, - "column": 47 - } - ] - }, - { - "key": "translations_not_loaded", - "scope_id": 1, - "component_id": 100, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../app/service/langsService/service.go", - "line": 22, - "column": 47 - } - ] - } - ], - "dynamic": [], - "summary": { - "total_keys": 162, - "static_keys": 54, - "dynamic_keys": 0, - "by_component": { - "100": 6, - "101": 27, - "102": 4, - "103": 17 - }, - "by_component_name": { - "auth": 4, - "be": 6, - "email": 17, - "error": 27 - } - } -} diff --git a/i18n/vue-keys.json b/i18n/vue-keys.json deleted file mode 100644 index 1a48627..0000000 --- a/i18n/vue-keys.json +++ /dev/null @@ -1,3718 +0,0 @@ -{ - "translations": [ - { - "key": "already_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 104, - "column": 13 - } - ] - }, - { - "key": "already_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 104, - "column": 13 - } - ] - }, - { - "key": "already_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 104, - "column": 13 - } - ] - }, - { - "key": "and", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 103, - "column": 9 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 88, - "column": 15 - } - ] - }, - { - "key": "and", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 103, - "column": 9 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 88, - "column": 15 - } - ] - }, - { - "key": "and", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 103, - "column": 9 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 88, - "column": 15 - } - ] - }, - { - "key": "back_to_sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 21, - "column": 13 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 55, - "column": 13 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 22, - "column": 25 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 71, - "column": 29 - } - ] - }, - { - "key": "back_to_sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 21, - "column": 13 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 55, - "column": 13 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 22, - "column": 25 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 71, - "column": 29 - } - ] - }, - { - "key": "back_to_sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 21, - "column": 13 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 55, - "column": 13 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 22, - "column": 25 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 71, - "column": 29 - } - ] - }, - { - "key": "by_signing_in_you_agree_to_our", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 99, - "column": 9 - } - ] - }, - { - "key": "by_signing_in_you_agree_to_our", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 99, - "column": 9 - } - ] - }, - { - "key": "by_signing_in_you_agree_to_our", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 99, - "column": 9 - } - ] - }, - { - "key": "check_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 15, - "column": 72 - } - ] - }, - { - "key": "check_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 15, - "column": 72 - } - ] - }, - { - "key": "check_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 15, - "column": 72 - } - ] - }, - { - "key": "close", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 7, - "column": 66 - }, - { - "file": "../bo/src/views/LoginView.vue", - "line": 16, - "column": 67 - } - ] - }, - { - "key": "close", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 7, - "column": 66 - }, - { - "file": "../bo/src/views/LoginView.vue", - "line": 16, - "column": 67 - } - ] - }, - { - "key": "close", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 7, - "column": 66 - }, - { - "file": "../bo/src/views/LoginView.vue", - "line": 16, - "column": 67 - } - ] - }, - { - "key": "confirm_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 67, - "column": 21 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 49, - "column": 33 - } - ] - }, - { - "key": "confirm_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 67, - "column": 21 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 49, - "column": 33 - } - ] - }, - { - "key": "confirm_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 67, - "column": 21 - }, - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 49, - "column": 33 - } - ] - }, - { - "key": "confirm_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 52, - "column": 29 - } - ] - }, - { - "key": "confirm_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 52, - "column": 29 - } - ] - }, - { - "key": "confirm_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 52, - "column": 29 - } - ] - }, - { - "key": "confirm_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 70, - "column": 88 - } - ] - }, - { - "key": "confirm_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 70, - "column": 88 - } - ] - }, - { - "key": "confirm_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 70, - "column": 88 - } - ] - }, - { - "key": "continue_with_google", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 87, - "column": 9 - } - ] - }, - { - "key": "continue_with_google", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 87, - "column": 9 - } - ] - }, - { - "key": "continue_with_google", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 87, - "column": 9 - } - ] - }, - { - "key": "create_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 99, - "column": 11 - } - ] - }, - { - "key": "create_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 99, - "column": 11 - } - ] - }, - { - "key": "create_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 99, - "column": 11 - } - ] - }, - { - "key": "create_account_now", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 95, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 60, - "column": 104 - } - ] - }, - { - "key": "create_account_now", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 95, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 60, - "column": 104 - } - ] - }, - { - "key": "create_account_now", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 95, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 60, - "column": 104 - } - ] - }, - { - "key": "dont_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 92, - "column": 11 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 58, - "column": 13 - } - ] - }, - { - "key": "dont_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 92, - "column": 11 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 58, - "column": 13 - } - ] - }, - { - "key": "dont_have_an_account", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 92, - "column": 11 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 58, - "column": 13 - } - ] - }, - { - "key": "email_address", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 33, - "column": 21 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 38, - "column": 23 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 48, - "column": 21 - } - ] - }, - { - "key": "email_address", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 33, - "column": 21 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 38, - "column": 23 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 48, - "column": 21 - } - ] - }, - { - "key": "email_address", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 33, - "column": 21 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 38, - "column": 23 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 48, - "column": 21 - } - ] - }, - { - "key": "enter_email_for_password_reset", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 29, - "column": 13 - } - ] - }, - { - "key": "enter_email_for_password_reset", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 29, - "column": 13 - } - ] - }, - { - "key": "enter_email_for_password_reset", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 29, - "column": 13 - } - ] - }, - { - "key": "enter_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 35, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 40, - "column": 37 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 50, - "column": 35 - } - ] - }, - { - "key": "enter_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 35, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 40, - "column": 37 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 50, - "column": 35 - } - ] - }, - { - "key": "enter_your_email", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 35, - "column": 35 - }, - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 40, - "column": 37 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 50, - "column": 35 - } - ] - }, - { - "key": "enter_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 37, - "column": 29 - } - ] - }, - { - "key": "enter_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 37, - "column": 29 - } - ] - }, - { - "key": "enter_your_new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 37, - "column": 29 - } - ] - }, - { - "key": "enter_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 40, - "column": 38 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 56, - "column": 38 - } - ] - }, - { - "key": "enter_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 40, - "column": 38 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 56, - "column": 38 - } - ] - }, - { - "key": "enter_your_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 40, - "column": 38 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 56, - "column": 38 - } - ] - }, - { - "key": "first_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 34, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 36, - "column": 100 - } - ] - }, - { - "key": "first_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 34, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 36, - "column": 100 - } - ] - }, - { - "key": "first_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 34, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 36, - "column": 100 - } - ] - }, - { - "key": "forgot_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 53, - "column": 13 - } - ] - }, - { - "key": "forgot_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 53, - "column": 13 - } - ] - }, - { - "key": "forgot_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 53, - "column": 13 - } - ] - }, - { - "key": "i_agree_to_the", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 83, - "column": 15 - } - ] - }, - { - "key": "i_agree_to_the", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 83, - "column": 15 - } - ] - }, - { - "key": "i_agree_to_the", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 83, - "column": 15 - } - ] - }, - { - "key": "last_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 41, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 44, - "column": 13 - } - ] - }, - { - "key": "last_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 41, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 44, - "column": 13 - } - ] - }, - { - "key": "last_name", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RegisterView.vue", - "line": 41, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 44, - "column": 13 - } - ] - }, - { - "key": "logout", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/components/TopBar.vue", - "line": 22, - "column": 13 - } - ] - }, - { - "key": "logout", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/components/TopBar.vue", - "line": 22, - "column": 13 - } - ] - }, - { - "key": "logout", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/components/TopBar.vue", - "line": 22, - "column": 13 - } - ] - }, - { - "key": "new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 34, - "column": 33 - } - ] - }, - { - "key": "new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 34, - "column": 33 - } - ] - }, - { - "key": "new_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 34, - "column": 33 - } - ] - }, - { - "key": "or", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 65, - "column": 64 - } - ] - }, - { - "key": "or", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 65, - "column": 64 - } - ] - }, - { - "key": "or", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 65, - "column": 64 - } - ] - }, - { - "key": "password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 39, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 54, - "column": 21 - } - ] - }, - { - "key": "password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 39, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 54, - "column": 21 - } - ] - }, - { - "key": "password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 39, - "column": 21 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 54, - "column": 21 - } - ] - }, - { - "key": "password_reset_link_sent_notice", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 17, - "column": 13 - } - ] - }, - { - "key": "password_reset_link_sent_notice", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 17, - "column": 13 - } - ] - }, - { - "key": "password_reset_link_sent_notice", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 17, - "column": 13 - } - ] - }, - { - "key": "password_updated", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 16, - "column": 25 - } - ] - }, - { - "key": "password_updated", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 16, - "column": 25 - } - ] - }, - { - "key": "password_updated", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 16, - "column": 25 - } - ] - }, - { - "key": "password_updated_description", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 19, - "column": 25 - } - ] - }, - { - "key": "password_updated_description", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 19, - "column": 25 - } - ] - }, - { - "key": "password_updated_description", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 19, - "column": 25 - } - ] - }, - { - "key": "privacy_policy", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 105, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 90, - "column": 103 - } - ] - }, - { - "key": "privacy_policy", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 105, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 90, - "column": 103 - } - ] - }, - { - "key": "privacy_policy", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 105, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 90, - "column": 103 - } - ] - }, - { - "key": "reset_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 64, - "column": 25 - } - ] - }, - { - "key": "reset_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 64, - "column": 25 - } - ] - }, - { - "key": "reset_password", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/ResetPasswordForm.vue", - "line": 64, - "column": 25 - } - ] - }, - { - "key": "send_password_reset_link", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 46, - "column": 13 - } - ] - }, - { - "key": "send_password_reset_link", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 46, - "column": 13 - } - ] - }, - { - "key": "send_password_reset_link", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/PasswordRecoveryView.vue", - "line": 46, - "column": 13 - } - ] - }, - { - "key": "sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 58, - "column": 11 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 108, - "column": 32 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 69, - "column": 96 - } - ] - }, - { - "key": "sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 58, - "column": 11 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 108, - "column": 32 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 69, - "column": 96 - } - ] - }, - { - "key": "sign_in", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 58, - "column": 11 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 108, - "column": 32 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 69, - "column": 96 - } - ] - }, - { - "key": "terms_of_service", - "scope_id": 3, - "component_id": 300, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 101, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 85, - "column": 103 - } - ] - }, - { - "key": "terms_of_service", - "scope_id": 3, - "component_id": 300, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 101, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 85, - "column": 103 - } - ] - }, - { - "key": "terms_of_service", - "scope_id": 3, - "component_id": 300, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/LoginView.vue", - "line": 101, - "column": 112 - }, - { - "file": "../bo/src/views/RegisterView.vue", - "line": 85, - "column": 103 - } - ] - }, - { - "key": "all_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 36, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 148, - "column": 29 - } - ] - }, - { - "key": "all_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 36, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 148, - "column": 29 - } - ] - }, - { - "key": "all_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 36, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 148, - "column": 29 - } - ] - }, - { - "key": "created_on", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 166, - "column": 24 - } - ] - }, - { - "key": "created_on", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 166, - "column": 24 - } - ] - }, - { - "key": "created_on", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 166, - "column": 24 - } - ] - }, - { - "key": "failed_to_load_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 96, - "column": 39 - } - ] - }, - { - "key": "failed_to_load_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 96, - "column": 39 - } - ] - }, - { - "key": "failed_to_load_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 96, - "column": 39 - } - ] - }, - { - "key": "failed_to_load_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 68, - "column": 85 - } - ] - }, - { - "key": "failed_to_load_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 68, - "column": 85 - } - ] - }, - { - "key": "failed_to_load_quarters", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 68, - "column": 85 - } - ] - }, - { - "key": "failed_to_load_repositories", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 52, - "column": 53 - } - ] - }, - { - "key": "failed_to_load_repositories", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 52, - "column": 53 - } - ] - }, - { - "key": "failed_to_load_repositories", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 52, - "column": 53 - } - ] - }, - { - "key": "failed_to_load_years", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 60, - "column": 58 - } - ] - }, - { - "key": "failed_to_load_years", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 60, - "column": 58 - } - ] - }, - { - "key": "failed_to_load_years", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 60, - "column": 58 - } - ] - }, - { - "key": "hours", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 132, - "column": 45 - } - ] - }, - { - "key": "hours", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 132, - "column": 45 - } - ] - }, - { - "key": "hours", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 132, - "column": 45 - } - ] - }, - { - "key": "hours_spent", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 174, - "column": 24 - } - ] - }, - { - "key": "hours_spent", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 174, - "column": 24 - } - ] - }, - { - "key": "hours_spent", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 174, - "column": 24 - } - ] - }, - { - "key": "hours_worked", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 106, - "column": 22 - } - ] - }, - { - "key": "hours_worked", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 106, - "column": 22 - } - ] - }, - { - "key": "hours_worked", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 106, - "column": 22 - } - ] - }, - { - "key": "issue_name", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 162, - "column": 24 - } - ] - }, - { - "key": "issue_name", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 162, - "column": 24 - } - ] - }, - { - "key": "issue_name", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 162, - "column": 24 - } - ] - }, - { - "key": "issues_for", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 52, - "column": 81 - } - ] - }, - { - "key": "issues_for", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 52, - "column": 81 - } - ] - }, - { - "key": "issues_for", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 52, - "column": 81 - } - ] - }, - { - "key": "loading", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 8, - "column": 84 - } - ] - }, - { - "key": "loading", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 8, - "column": 84 - } - ] - }, - { - "key": "loading", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 8, - "column": 84 - } - ] - }, - { - "key": "login_to_view_charts", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 12, - "column": 17 - } - ] - }, - { - "key": "login_to_view_charts", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 12, - "column": 17 - } - ] - }, - { - "key": "login_to_view_charts", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 12, - "column": 17 - } - ] - }, - { - "key": "no_work_data_available", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 71, - "column": 57 - } - ] - }, - { - "key": "no_work_data_available", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 71, - "column": 57 - } - ] - }, - { - "key": "no_work_data_available", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 71, - "column": 57 - } - ] - }, - { - "key": "quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 32, - "column": 88 - } - ] - }, - { - "key": "quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 32, - "column": 88 - } - ] - }, - { - "key": "quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 32, - "column": 88 - } - ] - }, - { - "key": "repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 17, - "column": 88 - } - ] - }, - { - "key": "repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 17, - "column": 88 - } - ] - }, - { - "key": "repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 17, - "column": 88 - } - ] - }, - { - "key": "repository_work_chart", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 4, - "column": 76 - } - ] - }, - { - "key": "repository_work_chart", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 4, - "column": 76 - } - ] - }, - { - "key": "repository_work_chart", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 4, - "column": 76 - } - ] - }, - { - "key": "select_a_repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 20, - "column": 25 - } - ] - }, - { - "key": "select_a_repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 20, - "column": 25 - } - ] - }, - { - "key": "select_a_repository", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 20, - "column": 25 - } - ] - }, - { - "key": "select_a_year", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 28, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 143, - "column": 29 - } - ] - }, - { - "key": "select_a_year", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 28, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 143, - "column": 29 - } - ] - }, - { - "key": "select_a_year", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 28, - "column": 25 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 143, - "column": 29 - } - ] - }, - { - "key": "select_quarter_to_view_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 70, - "column": 52 - } - ] - }, - { - "key": "select_quarter_to_view_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 70, - "column": 52 - } - ] - }, - { - "key": "select_quarter_to_view_issues", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 70, - "column": 52 - } - ] - }, - { - "key": "select_repo_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 68, - "column": 44 - } - ] - }, - { - "key": "select_repo_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 68, - "column": 44 - } - ] - }, - { - "key": "select_repo_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 68, - "column": 44 - } - ] - }, - { - "key": "select_year_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 69, - "column": 49 - } - ] - }, - { - "key": "select_year_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 69, - "column": 49 - } - ] - }, - { - "key": "select_year_to_view_data", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 69, - "column": 49 - } - ] - }, - { - "key": "work_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 127, - "column": 41 - } - ] - }, - { - "key": "work_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 127, - "column": 41 - } - ] - }, - { - "key": "work_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RepoChartView.vue", - "line": 127, - "column": 41 - } - ] - }, - { - "key": "work_done_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 43, - "column": 81 - } - ] - }, - { - "key": "work_done_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 43, - "column": 81 - } - ] - }, - { - "key": "work_done_by_quarter", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 43, - "column": 81 - } - ] - }, - { - "key": "year", - "scope_id": 3, - "component_id": 302, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 24, - "column": 88 - } - ] - }, - { - "key": "year", - "scope_id": 3, - "component_id": 302, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 24, - "column": 88 - } - ] - }, - { - "key": "year", - "scope_id": 3, - "component_id": 302, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 24, - "column": 88 - } - ] - }, - { - "key": "confirm_password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 40, - "column": 103 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/ResetPasswordForm.vue", - "line": 45, - "column": 16 - } - ] - }, - { - "key": "confirm_password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 40, - "column": 103 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/ResetPasswordForm.vue", - "line": 45, - "column": 16 - } - ] - }, - { - "key": "confirm_password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 40, - "column": 103 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/ResetPasswordForm.vue", - "line": 45, - "column": 16 - } - ] - }, - { - "key": "email_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 36, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/PasswordRecoveryView.vue", - "line": 33, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 39, - "column": 51 - } - ] - }, - { - "key": "email_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 36, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/PasswordRecoveryView.vue", - "line": 33, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 39, - "column": 51 - } - ] - }, - { - "key": "email_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 36, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/PasswordRecoveryView.vue", - "line": 33, - "column": 51 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 39, - "column": 51 - } - ] - }, - { - "key": "first_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 37, - "column": 65 - } - ] - }, - { - "key": "first_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 37, - "column": 65 - } - ] - }, - { - "key": "first_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 37, - "column": 65 - } - ] - }, - { - "key": "last_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 38, - "column": 62 - } - ] - }, - { - "key": "last_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 38, - "column": 62 - } - ] - }, - { - "key": "last_name_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/RegisterView.vue", - "line": 38, - "column": 62 - } - ] - }, - { - "key": "no_issues_for_quarter", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 63, - "column": 17 - } - ] - }, - { - "key": "no_issues_for_quarter", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 63, - "column": 17 - } - ] - }, - { - "key": "no_issues_for_quarter", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/RepoChartView.vue", - "line": 63, - "column": 17 - } - ] - }, - { - "key": "password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 72, - "column": 64 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 38, - "column": 64 - } - ] - }, - { - "key": "password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 72, - "column": 64 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 38, - "column": 64 - } - ] - }, - { - "key": "password_required", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 72, - "column": 64 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/LoginView.vue", - "line": 38, - "column": 64 - } - ] - }, - { - "key": "registration_validation_password_not_same", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 85, - "column": 33 - } - ] - }, - { - "key": "registration_validation_password_not_same", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 85, - "column": 33 - } - ] - }, - { - "key": "registration_validation_password_not_same", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 85, - "column": 33 - } - ] - }, - { - "key": "registration_validation_password_requirements", - "scope_id": 3, - "component_id": 301, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 76, - "column": 33 - } - ] - }, - { - "key": "registration_validation_password_requirements", - "scope_id": 3, - "component_id": 301, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 76, - "column": 33 - } - ] - }, - { - "key": "registration_validation_password_requirements", - "scope_id": 3, - "component_id": 301, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/composable/useValidation.ts", - "line": 76, - "column": 33 - } - ] - }, - { - "key": "already_registered", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 67, - "column": 17 - } - ] - }, - { - "key": "already_registered", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 67, - "column": 17 - } - ] - }, - { - "key": "already_registered", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 67, - "column": 17 - } - ] - }, - { - "key": "error_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 44, - "column": 19 - } - ] - }, - { - "key": "error_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 44, - "column": 19 - } - ] - }, - { - "key": "error_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 44, - "column": 19 - } - ] - }, - { - "key": "error_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 41, - "column": 19 - } - ] - }, - { - "key": "error_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 41, - "column": 19 - } - ] - }, - { - "key": "error_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 41, - "column": 19 - } - ] - }, - { - "key": "go_to_login", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 52, - "column": 57 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 57, - "column": 80 - } - ] - }, - { - "key": "go_to_login", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 52, - "column": 57 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 57, - "column": 80 - } - ] - }, - { - "key": "go_to_login", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 52, - "column": 57 - }, - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 57, - "column": 80 - } - ] - }, - { - "key": "invalid_token", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 26, - "column": 26 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 35, - "column": 26 - } - ] - }, - { - "key": "invalid_token", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 26, - "column": 26 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 35, - "column": 26 - } - ] - }, - { - "key": "invalid_token", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 26, - "column": 26 - }, - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 35, - "column": 26 - } - ] - }, - { - "key": "please_wait", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 61, - "column": 57 - } - ] - }, - { - "key": "please_wait", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 61, - "column": 57 - } - ] - }, - { - "key": "please_wait", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 61, - "column": 57 - } - ] - }, - { - "key": "redirect_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 51, - "column": 62 - } - ] - }, - { - "key": "redirect_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 51, - "column": 62 - } - ] - }, - { - "key": "redirect_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 51, - "column": 62 - } - ] - }, - { - "key": "success_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 32, - "column": 19 - } - ] - }, - { - "key": "success_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 32, - "column": 19 - } - ] - }, - { - "key": "success_message", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 32, - "column": 19 - } - ] - }, - { - "key": "success_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 29, - "column": 19 - } - ] - }, - { - "key": "success_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 29, - "column": 19 - } - ] - }, - { - "key": "success_title", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 29, - "column": 19 - } - ] - }, - { - "key": "verification_failed", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 56, - "column": 40 - } - ] - }, - { - "key": "verification_failed", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 56, - "column": 40 - } - ] - }, - { - "key": "verification_failed", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "/home/daniel/coding/work/timetracker/bo/src/views/VerifyEmailView.vue", - "line": 56, - "column": 40 - } - ] - }, - { - "key": "verifying", - "scope_id": 3, - "component_id": 303, - "lang_id": 1, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 20, - "column": 19 - } - ] - }, - { - "key": "verifying", - "scope_id": 3, - "component_id": 303, - "lang_id": 2, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 20, - "column": 19 - } - ] - }, - { - "key": "verifying", - "scope_id": 3, - "component_id": 303, - "lang_id": 3, - "data": "", - "locations": [ - { - "file": "../bo/src/views/VerifyEmailView.vue", - "line": 20, - "column": 19 - } - ] - } - ], - "dynamic": [], - "summary": { - "total_keys": 234, - "static_keys": 78, - "dynamic_keys": 0, - "by_component": { - "300": 34, - "301": 8, - "302": 25, - "303": 11 - }, - "by_component_name": { - "general": 34, - "repo_chart": 25, - "validate_error": 8, - "verify_email": 11 - } - } -} diff --git a/tmp/build-errors.log b/tmp/build-errors.log deleted file mode 100644 index 8410918..0000000 --- a/tmp/build-errors.log +++ /dev/null @@ -1 +0,0 @@ -exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1 \ No newline at end of file diff --git a/tmp/gitea_2026_03_02__13_48_45.sql b/tmp/gitea_2026_03_02__13_48_45.sql deleted file mode 100644 index e69de29..0000000 diff --git a/tmp/main b/tmp/main deleted file mode 100755 index 52188b4..0000000 Binary files a/tmp/main and /dev/null differ