From 4ff045796696d81503dbe60bc16b7784bfb8e9b0 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 13:45:31 +0700 Subject: [PATCH 01/46] =?UTF-8?q?=F0=9F=93=9C=20Wrap=20display=20logo=20in?= =?UTF-8?q?=20a=20flex=20container?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6973d3f..879bd06 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ docker run -d \ ## Sponsors 🙏 We're incredibly thankful to our sponsors. Your contributions enable us to maintain infrastructure (hosting, domains), run tests, and continue developing valuable features. -### 🥈 Silver Uptime Ally +### 🥈 Silver Uptime @@ -143,16 +143,21 @@ docker run -d \ ### 🤝 Ecosystem & Community Partner - - - - - DigitalOcean Logo - +
+ + GitBook Logo + + + + DigitalOcean Logo + +
+ --- From 52343035652144440e964d26c1330075ca8e972f Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 13:48:51 +0700 Subject: [PATCH 02/46] =?UTF-8?q?=F0=9F=93=8C=20Update=20on=20Project=20De?= =?UTF-8?q?velopment=20Status=20and=20Progress?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DEVELOPMENT_ROADMAP.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DEVELOPMENT_ROADMAP.md b/docs/DEVELOPMENT_ROADMAP.md index d0299a6..47e5549 100644 --- a/docs/DEVELOPMENT_ROADMAP.md +++ b/docs/DEVELOPMENT_ROADMAP.md @@ -73,11 +73,12 @@ The roadmap is divided into the following stages: - [ ] ✅ Improve Uptime Service and Server connection update based on status and notification. - [ ] ✅ Improve SSL perform the initial check automatically after creation - [ ] ✅ Rate limiting and abuse protection +- [ ] 🔧 Add ntfy push notifications - [ ] 🔧 Server Windows Agent - [ ] 🔧 Improve the Operational status page - [ ] 🔧 More Uptime Service Type (HTTP keyword, HTTP json) - [ ] 🔧 Server support with cpu temperature -- [ ] 🔧 Server upport with multiple disks +- [ ] 🔧 Server upport with multiple disks/volume - [ ] 🔧 Server support with Multiple Network Interfaces - [ ] 🎯 Improve the Schedule and Incident for automation - [ ] 🎯 Uptime Monitoring option for choose: HTTP/HTTPS @@ -91,8 +92,7 @@ These are community-suggested or experimental features under review: - [ ] Grouping uptime services - [ ] OIDC Connect | OAuth2 integration -- [ ] Mobile PWA support -- [ ] Cloud-native Helm/Kubernetes deployment +- [ ] PWA support - [ ] Server outbound and inbound traffic usage You’re welcome to propose features via [GitHub Discussions](https://github.com/operacle/checkcle/discussions) or open an issue with the `feature-request` template. From f006df3b02cbb7011a363423f9727f2c4194a8a1 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 13:56:16 +0700 Subject: [PATCH 03/46] =?UTF-8?q?=F0=9F=93=9C=20=20Use=20a=20simple=20HTML?= =?UTF-8?q?=20table=20for=20image=20layout=20fo=20sponsorship=20logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 879bd06..c475edf 100644 --- a/README.md +++ b/README.md @@ -143,20 +143,23 @@ docker run -d \ ### 🤝 Ecosystem & Community Partner -
- - GitBook Logo - + + + + + +
+ + GitBook Logo + + + + DigitalOcean Logo + +
- - DigitalOcean Logo - -
From 67a0d1d7f4716db6b79b36783281e638316397fb Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 14:00:01 +0700 Subject: [PATCH 04/46] =?UTF-8?q?=F0=9F=93=9C=20=20Adds=20some=20default?= =?UTF-8?q?=20styling=20to=20table=20cells.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c475edf..99a09f0 100644 --- a/README.md +++ b/README.md @@ -143,18 +143,18 @@ docker run -d \ ### 🤝 Ecosystem & Community Partner - +
- - @@ -163,6 +163,7 @@ docker run -d \ + --- From ee4ce5019347d72c8664c9d1dc92a5bae6c3ac6d Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 14:07:57 +0700 Subject: [PATCH 05/46] =?UTF-8?q?=F0=9F=93=9C=20Correct=20the=20DigitalOce?= =?UTF-8?q?an=20logo=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 99a09f0..372a237 100644 --- a/README.md +++ b/README.md @@ -143,22 +143,22 @@ docker run -d \ ### 🤝 Ecosystem & Community Partner -
+ GitBook Logo + width="60" height="60" style="border-radius: 50%;" alt="GitBook Logo" /> + DigitalOcean Logo + height="40" alt="DigitalOcean Logo" />
- - - - -
- - GitBook Logo - - - - DigitalOcean Logo - -
+
+ + GitBook Logo + + + + DigitalOcean Logo + +
+ + From 3bc1fd7c02cd16d29115c653373aa6107f8b0b3c Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 15 Aug 2025 16:47:26 +0700 Subject: [PATCH 06/46] feat: Add NTFY notification channel - Adds NTFY as a new option to the notification channel type dropdown - This includes updating the form schema and related components to support the ntfy_endpoint field for NTFY configurations. --- .../public/upload/notification/ntfy.png | Bin 0 -> 33848 bytes .../NotificationChannelDialog.tsx | 33 +++++++++++++++++- .../src/services/alertConfigService.ts | 10 +++--- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 application/public/upload/notification/ntfy.png diff --git a/application/public/upload/notification/ntfy.png b/application/public/upload/notification/ntfy.png new file mode 100644 index 0000000000000000000000000000000000000000..ad57c98097b099d9761f5f7f536cbfcf86f12eaf GIT binary patch literal 33848 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

p$v%1$3SscWfsG_zGry-P} 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 Z&z3h{n5Rb0YCu9UhWf^OIR`HU{U3bDbkYC- literal 0 HcmV?d00001 diff --git a/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx b/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx index 87ce90a..4d47b44 100644 --- a/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx +++ b/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx @@ -36,7 +36,7 @@ interface NotificationChannelDialogProps { const baseSchema = z.object({ notify_name: z.string().min(1, "Name is required"), - notification_type: z.enum(["telegram", "discord", "slack", "signal", "google_chat", "email", "webhook"]), + notification_type: z.enum(["telegram", "discord", "slack", "signal", "google_chat", "email", "ntfy", "webhook"]), enabled: z.boolean().default(true), service_id: z.string().default("global"), template_id: z.string().optional(), @@ -78,6 +78,11 @@ const emailSchema = baseSchema.extend({ smtp_password: z.string().min(1, "SMTP password is required"), }); +const ntfySchema = baseSchema.extend({ + notification_type: z.literal("ntfy"), + ntfy_endpoint: z.string().url("Must be a valid NTFY endpoint URL"), +}); + const webhookSchema = baseSchema.extend({ notification_type: z.literal("webhook"), webhook_url: z.string().url("Must be a valid URL"), @@ -91,6 +96,7 @@ const formSchema = z.discriminatedUnion("notification_type", [ signalSchema, googleChatSchema, emailSchema, + ntfySchema, webhookSchema ]); @@ -133,6 +139,12 @@ const notificationTypeOptions = [ description: "Send notifications via email", icon: "/upload/notification/email.png" }, + { + value: "ntfy", + label: "NTFY", + description: "Send notifications via NTFY push service", + icon: "/upload/notification/ntfy.png" + }, { value: "webhook", label: "Webhook", @@ -540,6 +552,25 @@ export const NotificationChannelDialog = ({ )} + {notificationType === "ntfy" && ( + ( + + NTFY Endpoint + + + + + The NTFY endpoint URL including your topic (e.g., https://ntfy.sh/checkcle) + + + + )} + /> + )} + {notificationType === "webhook" && ( <> Date: Fri, 15 Aug 2025 17:17:29 +0700 Subject: [PATCH 07/46] feat: Implement NTFY notification functionality - Implement NTFY push notification functionality to send messages to ntfy toptics. --- .../service-operation/notification/manager.go | 1 + server/service-operation/notification/ntfy.go | 390 ++++++++++++++++++ .../service-operation/notification/types.go | 3 +- 3 files changed, 393 insertions(+), 1 deletion(-) create mode 100644 server/service-operation/notification/ntfy.go diff --git a/server/service-operation/notification/manager.go b/server/service-operation/notification/manager.go index 021aee0..3f29165 100644 --- a/server/service-operation/notification/manager.go +++ b/server/service-operation/notification/manager.go @@ -29,6 +29,7 @@ func NewNotificationManager(pbClient *pocketbase.PocketBaseClient) *Notification services["google_chat"] = NewGoogleChatService() services["email"] = NewEmailService() services["webhook"] = NewWebhookService() + services["ntfy"] = NewNtfyService() // log.Printf("✅ Notification services initialized: %v", getKeys(services)) diff --git a/server/service-operation/notification/ntfy.go b/server/service-operation/notification/ntfy.go new file mode 100644 index 0000000..88ec7a5 --- /dev/null +++ b/server/service-operation/notification/ntfy.go @@ -0,0 +1,390 @@ + +package notification + +import ( + "fmt" + "net/http" + "strings" +) + +// NtfyService handles NTFY push notifications +type NtfyService struct{} + +// NewNtfyService creates a new NTFY notification service +func NewNtfyService() *NtfyService { + return &NtfyService{} +} + +// SendNotification sends a notification via NTFY +func (ns *NtfyService) SendNotification(config *AlertConfiguration, message string) error { + if config.NtfyEndpoint == "" { + return fmt.Errorf("ntfy endpoint is required") + } + + // Create HTTP request with plain text message + req, err := http.NewRequest("POST", config.NtfyEndpoint, strings.NewReader(message)) + if err != nil { + return fmt.Errorf("failed to create NTFY request: %v", err) + } + + // Set headers for NTFY + req.Header.Set("Content-Type", "text/plain; charset=utf-8") + req.Header.Set("Title", "🔔 CheckCle Service Alert") + req.Header.Set("Tags", "monitoring") + req.Header.Set("Priority", "default") + + // Send the request + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return fmt.Errorf("failed to send NTFY notification: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode < 200 || resp.StatusCode >= 300 { + return fmt.Errorf("ntfy API error, status: %d", resp.StatusCode) + } + + return nil +} + +// SendServerNotification sends a server-specific notification via NTFY +func (ns *NtfyService) SendServerNotification(config *AlertConfiguration, payload *NotificationPayload, template *ServerNotificationTemplate, resourceType string) error { + message := ns.generateServerMessage(payload, template, resourceType) + return ns.SendNotificationWithDetails(config, message, "🔔 Server Alert", resourceType) +} + +// SendServiceNotification sends a service-specific notification via NTFY +func (ns *NtfyService) SendServiceNotification(config *AlertConfiguration, payload *NotificationPayload, template *ServiceNotificationTemplate) error { + message := ns.generateServiceMessage(payload, template) + return ns.SendNotificationWithDetails(config, message, "🔔 Service Alert", "service") +} + +// SendNotificationWithDetails sends a notification with custom title and tags +func (ns *NtfyService) SendNotificationWithDetails(config *AlertConfiguration, message, title, alertType string) error { + if config.NtfyEndpoint == "" { + return fmt.Errorf("ntfy endpoint is required") + } + + // Create HTTP request with plain text message + req, err := http.NewRequest("POST", config.NtfyEndpoint, strings.NewReader(message)) + if err != nil { + return fmt.Errorf("failed to create NTFY request: %v", err) + } + + // Set headers for NTFY with dynamic values + req.Header.Set("Content-Type", "text/plain; charset=utf-8") + req.Header.Set("Title", title) + + // Set appropriate tags and priority based on alert type and message content + tags := "monitoring" + priority := "default" + + // Determine priority and tags based on message content + messageLower := strings.ToLower(message) + if strings.Contains(messageLower, "down") || strings.Contains(messageLower, "critical") || strings.Contains(messageLower, "expired") { + priority = "high" + tags = "rotating_light,warning" + } else if strings.Contains(messageLower, "warning") || strings.Contains(messageLower, "expiring") { + priority = "default" + tags = "warning" + } else if strings.Contains(messageLower, "up") || strings.Contains(messageLower, "restored") || strings.Contains(messageLower, "resolved") { + priority = "default" + tags = "white_check_mark" + } + + // Add resource type specific tags + switch alertType { + case "cpu": + tags += ",cpu" + case "ram", "memory": + tags += ",memory" + case "disk": + tags += ",floppy_disk" + case "network": + tags += ",globe_with_meridians" + case "service": + tags += ",gear" + case "ssl": + tags += ",lock" + } + + req.Header.Set("Tags", tags) + req.Header.Set("Priority", priority) + + // Send the request + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return fmt.Errorf("failed to send NTFY notification: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode < 200 || resp.StatusCode >= 300 { + return fmt.Errorf("ntfy API error, status: %d", resp.StatusCode) + } + + return nil +} + +// generateServerMessage creates a message for server notifications using server template +func (ns *NtfyService) generateServerMessage(payload *NotificationPayload, template *ServerNotificationTemplate, resourceType string) string { + var templateMessage string + + // Select appropriate template message based on status and resource type + switch strings.ToLower(payload.Status) { + case "down": + templateMessage = template.DownMessage + case "up": + templateMessage = template.UpMessage + case "warning": + templateMessage = template.WarningMessage + case "paused": + templateMessage = template.PausedMessage + default: + // Handle resource-specific messages + switch resourceType { + case "cpu": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreCPUMessage + } else { + templateMessage = template.CPUMessage + } + case "ram", "memory": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreRAMMessage + } else { + templateMessage = template.RAMMessage + } + case "disk": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreDiskMessage + } else { + templateMessage = template.DiskMessage + } + case "network": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreNetworkMessage + } else { + templateMessage = template.NetworkMessage + } + case "cpu_temp", "cpu_temperature": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreCPUTempMessage + } else { + templateMessage = template.CPUTempMessage + } + case "disk_io": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreDiskIOMessage + } else { + templateMessage = template.DiskIOMessage + } + default: + templateMessage = template.WarningMessage + } + } + + // If no template message found, use a default + if templateMessage == "" { + templateMessage = ns.generateDefaultServerMessage(payload, resourceType) + } + + return ns.replacePlaceholders(templateMessage, payload) +} + +// generateServiceMessage creates a message for service notifications using service template +func (ns *NtfyService) generateServiceMessage(payload *NotificationPayload, template *ServiceNotificationTemplate) string { + var templateMessage string + + // Select appropriate template message based on status + switch strings.ToLower(payload.Status) { + case "up": + templateMessage = template.UpMessage + case "down": + templateMessage = template.DownMessage + case "maintenance": + templateMessage = template.MaintenanceMessage + case "incident": + templateMessage = template.IncidentMessage + case "resolved": + templateMessage = template.ResolvedMessage + case "warning": + templateMessage = template.WarningMessage + default: + templateMessage = template.WarningMessage + } + + // If no template message found, use a default + if templateMessage == "" { + templateMessage = ns.generateDefaultUptimeMessage(payload) + } + + return ns.replacePlaceholders(templateMessage, payload) +} + +// replacePlaceholders replaces all placeholders in the message with actual values +func (ns *NtfyService) replacePlaceholders(message string, payload *NotificationPayload) string { + // Replace basic placeholders + message = strings.ReplaceAll(message, "${service_name}", payload.ServiceName) + message = strings.ReplaceAll(message, "${status}", strings.ToUpper(payload.Status)) + message = strings.ReplaceAll(message, "${host}", ns.safeString(payload.Host)) + message = strings.ReplaceAll(message, "${hostname}", ns.safeString(payload.Hostname)) + + // Replace URL with fallback to host + url := ns.safeString(payload.URL) + if url == "N/A" && payload.Host != "" { + url = payload.Host + } + message = strings.ReplaceAll(message, "${url}", url) + + // Replace domain + message = strings.ReplaceAll(message, "${domain}", ns.safeString(payload.Domain)) + + // Replace service type + if payload.ServiceType != "" { + message = strings.ReplaceAll(message, "${service_type}", strings.ToUpper(payload.ServiceType)) + } else { + message = strings.ReplaceAll(message, "${service_type}", "N/A") + } + + // Replace region and agent info + message = strings.ReplaceAll(message, "${region_name}", ns.safeString(payload.RegionName)) + message = strings.ReplaceAll(message, "${agent_id}", ns.safeString(payload.AgentID)) + + // Handle numeric fields safely + if payload.Port > 0 { + message = strings.ReplaceAll(message, "${port}", fmt.Sprintf("%d", payload.Port)) + } else { + message = strings.ReplaceAll(message, "${port}", "N/A") + } + + if payload.ResponseTime > 0 { + message = strings.ReplaceAll(message, "${response_time}", fmt.Sprintf("%dms", payload.ResponseTime)) + } else { + message = strings.ReplaceAll(message, "${response_time}", "N/A") + } + + if payload.Uptime > 0 { + message = strings.ReplaceAll(message, "${uptime}", fmt.Sprintf("%d%%", payload.Uptime)) + } else { + message = strings.ReplaceAll(message, "${uptime}", "N/A") + } + + // Replace server monitoring fields + message = strings.ReplaceAll(message, "${cpu_usage}", ns.safeString(payload.CPUUsage)) + message = strings.ReplaceAll(message, "${ram_usage}", ns.safeString(payload.RAMUsage)) + message = strings.ReplaceAll(message, "${disk_usage}", ns.safeString(payload.DiskUsage)) + message = strings.ReplaceAll(message, "${network_usage}", ns.safeString(payload.NetworkUsage)) + message = strings.ReplaceAll(message, "${cpu_temp}", ns.safeString(payload.CPUTemp)) + message = strings.ReplaceAll(message, "${disk_io}", ns.safeString(payload.DiskIO)) + message = strings.ReplaceAll(message, "${threshold}", ns.safeString(payload.Threshold)) + + // Replace error message - important for uptime services + message = strings.ReplaceAll(message, "${error_message}", ns.safeString(payload.ErrorMessage)) + message = strings.ReplaceAll(message, "${error}", ns.safeString(payload.ErrorMessage)) + + // Replace time placeholders + message = strings.ReplaceAll(message, "${time}", payload.Timestamp.Format("2006-01-02 15:04:05")) + message = strings.ReplaceAll(message, "${timestamp}", payload.Timestamp.Format("2006-01-02 15:04:05")) + + return message +} + +// safeString returns the string value or "N/A" if empty +func (ns *NtfyService) safeString(value string) string { + if value == "" { + return "N/A" + } + return value +} + +// generateDefaultUptimeMessage creates a default uptime message with proper formatting +func (ns *NtfyService) generateDefaultUptimeMessage(payload *NotificationPayload) string { + // Status emoji mapping for NTFY + statusEmoji := "🔵" + switch strings.ToLower(payload.Status) { + case "up": + statusEmoji = "🟢" + case "down": + statusEmoji = "🔴" + case "warning": + statusEmoji = "🟡" + case "maintenance", "paused": + statusEmoji = "🟠" + } + + message := fmt.Sprintf("%s Service %s is %s.", statusEmoji, payload.ServiceName, strings.ToUpper(payload.Status)) + + // Build formatted details + details := []string{} + + // Add URL or host + if payload.URL != "" { + details = append(details, fmt.Sprintf("Host URL: %s", payload.URL)) + } else if payload.Host != "" { + details = append(details, fmt.Sprintf("Host: %s", payload.Host)) + } + + // Add service type + if payload.ServiceType != "" { + details = append(details, fmt.Sprintf("Type: %s", strings.ToUpper(payload.ServiceType))) + } + + // Add port if available + if payload.Port > 0 { + details = append(details, fmt.Sprintf("Port: %d", payload.Port)) + } + + // Add domain if available + if payload.Domain != "" { + details = append(details, fmt.Sprintf("Domain: %s", payload.Domain)) + } + + // Add response time + if payload.ResponseTime > 0 { + details = append(details, fmt.Sprintf("Response time: %dms", payload.ResponseTime)) + } else { + details = append(details, "Response time: N/A") + } + + // Add region info + if payload.RegionName != "" { + details = append(details, fmt.Sprintf("Region: %s", payload.RegionName)) + } + + // Add agent info + if payload.AgentID != "" { + details = append(details, fmt.Sprintf("Agent: %s", payload.AgentID)) + } + + // Add uptime if available + if payload.Uptime > 0 { + details = append(details, fmt.Sprintf("Uptime: %d%%", payload.Uptime)) + } + + // Add timestamp + details = append(details, fmt.Sprintf("Time: %s", payload.Timestamp.Format("2006-01-02 15:04:05"))) + + // Combine message with details + if len(details) > 0 { + message += "\n" + strings.Join(details, "\n") + } + + return message +} + +// generateDefaultServerMessage creates a default server message +func (ns *NtfyService) generateDefaultServerMessage(payload *NotificationPayload, resourceType string) string { + statusEmoji := "🔵" + switch strings.ToLower(payload.Status) { + case "up": + statusEmoji = "🟢" + case "down": + statusEmoji = "🔴" + case "warning": + statusEmoji = "🟡" + } + + return fmt.Sprintf("%s🖥️ Server %s (%s) status: %s", statusEmoji, payload.ServiceName, payload.Hostname, strings.ToUpper(payload.Status)) +} \ No newline at end of file diff --git a/server/service-operation/notification/types.go b/server/service-operation/notification/types.go index 86ccd0f..5ae8cb3 100644 --- a/server/service-operation/notification/types.go +++ b/server/service-operation/notification/types.go @@ -1,3 +1,4 @@ + package notification import "time" @@ -60,9 +61,9 @@ type AlertConfiguration struct { SMTPPort string `json:"smtp_port"` WebhookID string `json:"webhook_id"` ChannelID string `json:"channel_id"` - // New webhook fields WebhookURL string `json:"webhook_url"` WebhookPayloadTemplate string `json:"webhook_payload_template"` + NtfyEndpoint string `json:"ntfy_endpoint"` } // ServerNotificationTemplate represents a server notification template From 40488a5a53ba290b15669d4df538793c04e97623 Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Fri, 15 Aug 2025 21:37:12 +0800 Subject: [PATCH 08/46] feat(i18n): improve i18n copy and add new translations - Add new translation entries - Fix several language files --- .../src/components/dashboard/DashboardContent.tsx | 8 +++++--- .../src/components/dashboard/ServiceFilters.tsx | 10 ++++++---- .../src/components/services/AddServiceDialog.tsx | 6 ++++-- application/src/translations/de/about.ts | 3 ++- application/src/translations/de/common.ts | 5 +++-- application/src/translations/de/incident.ts | 1 + application/src/translations/de/services.ts | 9 +++++++++ application/src/translations/de/ssl.ts | 3 ++- application/src/translations/en/about.ts | 3 ++- application/src/translations/en/common.ts | 7 ++++--- application/src/translations/en/incident.ts | 1 + application/src/translations/en/services.ts | 11 ++++++++++- application/src/translations/en/ssl.ts | 3 ++- application/src/translations/ja/about.ts | 3 ++- application/src/translations/ja/common.ts | 6 +++--- application/src/translations/ja/incident.ts | 1 + application/src/translations/ja/services.ts | 9 +++++++++ application/src/translations/ja/ssl.ts | 3 ++- application/src/translations/km/about.ts | 3 ++- application/src/translations/km/common.ts | 5 +++-- application/src/translations/km/incident.ts | 1 + application/src/translations/km/services.ts | 9 +++++++++ application/src/translations/km/ssl.ts | 3 ++- application/src/translations/types/about.ts | 1 + application/src/translations/types/incident.ts | 1 + application/src/translations/types/services.ts | 9 +++++++++ application/src/translations/types/ssl.ts | 1 + application/src/translations/zhcn/about.ts | 3 ++- application/src/translations/zhcn/common.ts | 5 +++-- application/src/translations/zhcn/incident.ts | 1 + application/src/translations/zhcn/menu.ts | 2 +- application/src/translations/zhcn/services.ts | 11 ++++++++++- application/src/translations/zhcn/ssl.ts | 3 ++- 33 files changed, 116 insertions(+), 34 deletions(-) diff --git a/application/src/components/dashboard/DashboardContent.tsx b/application/src/components/dashboard/DashboardContent.tsx index e12c14e..64308b6 100644 --- a/application/src/components/dashboard/DashboardContent.tsx +++ b/application/src/components/dashboard/DashboardContent.tsx @@ -7,6 +7,7 @@ import { StatusCards } from "./StatusCards"; import { ServiceFilters } from "./ServiceFilters"; import { ServicesTable } from "./ServicesTable"; import { AddServiceDialog } from "@/components/services/AddServiceDialog"; +import { useLanguage } from "@/contexts/LanguageContext"; interface DashboardContentProps { services: Service[]; @@ -15,6 +16,7 @@ interface DashboardContentProps { } export const DashboardContent = ({ services, isLoading, error }: DashboardContentProps) => { + const { t } = useLanguage(); const [filter, setFilter] = useState("all"); const [searchTerm, setSearchTerm] = useState(""); const [isAddDialogOpen, setIsAddDialogOpen] = useState(false); @@ -31,7 +33,7 @@ export const DashboardContent = ({ services, isLoading, error }: DashboardConten return (

Error loading service data.

- +
); } @@ -40,12 +42,12 @@ export const DashboardContent = ({ services, isLoading, error }: DashboardConten
-

Overview

+

{t('overview')}

diff --git a/application/src/components/dashboard/ServiceFilters.tsx b/application/src/components/dashboard/ServiceFilters.tsx index 726d4a2..613fba4 100644 --- a/application/src/components/dashboard/ServiceFilters.tsx +++ b/application/src/components/dashboard/ServiceFilters.tsx @@ -3,6 +3,7 @@ import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@/components/ui/select"; import { Plus } from "lucide-react"; +import { useLanguage } from "@/contexts/LanguageContext"; interface ServiceFiltersProps { filter: string; @@ -19,10 +20,11 @@ export const ServiceFilters = ({ setSearchTerm, servicesCount }: ServiceFiltersProps) => { + const { t } = useLanguage(); return (
-

Currently Monitoring

+

{t('currentlyMonitoring')}

{servicesCount} @@ -30,10 +32,10 @@ export const ServiceFilters = ({
setSearchTerm(e.target.value)} /> diff --git a/application/src/components/services/AddServiceDialog.tsx b/application/src/components/services/AddServiceDialog.tsx index 13e5947..af1cb5d 100644 --- a/application/src/components/services/AddServiceDialog.tsx +++ b/application/src/components/services/AddServiceDialog.tsx @@ -9,6 +9,7 @@ import { import { ServiceForm } from "./ServiceForm"; import { ScrollArea } from "@/components/ui/scroll-area"; import { useQueryClient } from "@tanstack/react-query"; +import { useLanguage } from "@/contexts/LanguageContext"; interface AddServiceDialogProps { open: boolean; @@ -16,6 +17,7 @@ interface AddServiceDialogProps { } export function AddServiceDialog({ open, onOpenChange }: AddServiceDialogProps) { + const { t } = useLanguage(); const queryClient = useQueryClient(); const handleSuccess = async () => { // Immediately invalidate and refetch services data @@ -32,9 +34,9 @@ export function AddServiceDialog({ open, onOpenChange }: AddServiceDialogProps) - Create New Service + {t("createNewService")} - Fill in the details to create a new service to monitor. + {t("createNewServiceDesc")} diff --git a/application/src/translations/de/about.ts b/application/src/translations/de/about.ts index ba49c4e..90ea64c 100644 --- a/application/src/translations/de/about.ts +++ b/application/src/translations/de/about.ts @@ -2,7 +2,7 @@ import { AboutTranslations } from '../types/about'; export const aboutTranslations: AboutTranslations = { - aboutCheckcle: "Über Checkcle", + aboutCheckCle: "Über Checkcle", systemDescription: "Checkcle ist ein Open-Source-Überwachungs-Stack, der Echtzeit-Einblicke in Server- und Dienstzustände, Vorfallmanagement und operative Transparenz bietet. Veröffentlicht unter der MIT-Lizenz.", systemVersion: "Systemversion", license: "Lizenz", @@ -15,6 +15,7 @@ export const aboutTranslations: AboutTranslations = { quickActions: "Schnelle Aktionen", quickActionsDescription: "Greifen Sie schnell auf gängige Überwachungsvorgänge und -funktionen zu. Wählen Sie unten eine Aktion aus, um loszulegen.", quickTips: "Schnelle Tipps", + releasedOn: "Veröffentlicht", }; diff --git a/application/src/translations/de/common.ts b/application/src/translations/de/common.ts index 070ace3..5d439c2 100644 --- a/application/src/translations/de/common.ts +++ b/application/src/translations/de/common.ts @@ -6,9 +6,10 @@ export const commonTranslations: CommonTranslations = { logout: "Abmelden", language: "Sprache", english: "Englisch", - khmer: "Khmer", + khmer: "ភាសាខ្មែរ", german: "Deutsch", - simplifiedChinese: "Simplified Chinese", + japanese: "日本語", + simplifiedChinese: "简体中文", goodMorning: "Guten Morgen", goodAfternoon: "Guten Nachmittag", goodEvening: "Guten Abend", diff --git a/application/src/translations/de/incident.ts b/application/src/translations/de/incident.ts index 9236dab..bb83ba0 100644 --- a/application/src/translations/de/incident.ts +++ b/application/src/translations/de/incident.ts @@ -51,4 +51,5 @@ export const incidentTranslations: IncidentTranslations = { configuration: 'Konfiguration', failedToUpdateStatus: 'Fehler beim Aktualisieren des Status', inProgress: 'In Bearbeitung', + enterRootCause: 'Grundursache eingeben', }; diff --git a/application/src/translations/de/services.ts b/application/src/translations/de/services.ts index 0dee15a..16524f3 100644 --- a/application/src/translations/de/services.ts +++ b/application/src/translations/de/services.ts @@ -10,4 +10,13 @@ export const servicesTranslations: ServicesTranslations = { uptime: "Betriebszeit", lastChecked: "Zuletzt überprüft", noServices: "Keine Dienste entsprechen Ihren Filterkriterien.", + currentlyMonitoring: "Derzeit überwacht", + retry: "Wiederholen", + overview: "Überblick", + newService: "Neuer Dienst", + rowsPerPage: "Zeilen pro Seite", + search: "Suchen", + allTypes: "Alle Arten", + createNewService: "Neuen Service hinzufügen", + createNewServiceDesc: "Geben Sie detaillierte Informationen ein, um einen neuen zu erstellen, den Sie überwachen möchten.", }; diff --git a/application/src/translations/de/ssl.ts b/application/src/translations/de/ssl.ts index 877b4b2..eb51064 100644 --- a/application/src/translations/de/ssl.ts +++ b/application/src/translations/de/ssl.ts @@ -112,6 +112,7 @@ export const sslTranslations: SSLTranslations = { created: "Erstellt", lastUpdated: "Zuletzt aktualisiert", lastNotification: "Letzte Benachrichtigung", - collectionId: "Sammlungs-ID" + collectionId: "Sammlungs-ID", + noCertificatesFound: "Keine Zertifikate gefunden", } diff --git a/application/src/translations/en/about.ts b/application/src/translations/en/about.ts index 83e4071..ef6ddcc 100644 --- a/application/src/translations/en/about.ts +++ b/application/src/translations/en/about.ts @@ -2,7 +2,7 @@ import { AboutTranslations } from '../types/about'; export const aboutTranslations: AboutTranslations = { - aboutCheckcle: "About Checkcle", + aboutCheckCle: "About Checkcle", systemDescription: "Checkcle is an open-source monitoring stack offering real-time insights into server and service health, incident management, and operational transparency. Released as MIT License.", systemVersion: "System Version", license: "License", @@ -15,4 +15,5 @@ export const aboutTranslations: AboutTranslations = { quickActions: "Quick Actions", quickActionsDescription: "Access common monitoring operations and features quickly. Select an action below to get started.", quickTips: "Quick Tips", + releasedOn: "Released On", }; diff --git a/application/src/translations/en/common.ts b/application/src/translations/en/common.ts index 4c02002..7033ff1 100644 --- a/application/src/translations/en/common.ts +++ b/application/src/translations/en/common.ts @@ -5,10 +5,11 @@ export const commonTranslations: CommonTranslations = { welcome: "Welcome", logout: "Logout", language: "Language", - english: "English", - khmer: "Khmer", + english: "Englisch", + khmer: "ភាសាខ្មែរ", german: "Deutsch", - simplifiedChinese: "Simplified Chinese", + japanese: "日本語", + simplifiedChinese: "简体中文", goodMorning: "Good morning", goodAfternoon: "Good afternoon", goodEvening: "Good evening", diff --git a/application/src/translations/en/incident.ts b/application/src/translations/en/incident.ts index 461babd..f7effaa 100644 --- a/application/src/translations/en/incident.ts +++ b/application/src/translations/en/incident.ts @@ -52,4 +52,5 @@ export const incidentTranslations: IncidentTranslations = { configuration: 'Configuration', failedToUpdateStatus: 'Failed to update status', inProgress: 'In Progress', + enterRootCause: 'Enter Root Cause', }; diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts index 5501bd1..c431c74 100644 --- a/application/src/translations/en/services.ts +++ b/application/src/translations/en/services.ts @@ -9,4 +9,13 @@ export const servicesTranslations: ServicesTranslations = { uptime: "Uptime", lastChecked: "Last Checked", noServices: "No services match your filter criteria.", -}; + currentlyMonitoring: "Currently Monitoring", + retry: "Retry", + overview: "Overview", + newService: "NewService", + rowsPerPage: "Rows Per Page", + search: "Search", + allTypes: "All Types", + createNewService: "Create New Service", + createNewServiceDesc: "Fill in the details to create a new service to monitor.", +}; \ No newline at end of file diff --git a/application/src/translations/en/ssl.ts b/application/src/translations/en/ssl.ts index 1b2df8c..4cc13d8 100644 --- a/application/src/translations/en/ssl.ts +++ b/application/src/translations/en/ssl.ts @@ -112,5 +112,6 @@ export const sslTranslations: SSLTranslations = { created: "Created", lastUpdated: "Last Updated", lastNotification: "Last Notification", - collectionId: "Collection ID" + collectionId: "Collection ID", + noCertificatesFound: "No Certificates Found", }; diff --git a/application/src/translations/ja/about.ts b/application/src/translations/ja/about.ts index b8965f1..4f4799d 100644 --- a/application/src/translations/ja/about.ts +++ b/application/src/translations/ja/about.ts @@ -1,7 +1,7 @@ import { AboutTranslations } from '../types/about'; export const aboutTranslations: AboutTranslations = { - aboutCheckcle: "Checkcleについて", + aboutCheckCle: "Checkcleについて", systemDescription: "Checkcleは、サーバーとサービスの健全性に関するリアルタイム監視、インシデント管理、運用の透明性を提供するオープンソースの監視スタックです。MIT ライセンスの下で公開されています。", systemVersion: "システムバージョン", license: "ライセンス", @@ -14,4 +14,5 @@ export const aboutTranslations: AboutTranslations = { quickActions: "クイックアクション", quickActionsDescription: "一般的な監視操作と機能に素早くアクセスできます。開始するには、以下のアクションを選択してください。", quickTips: "クイックヒント", + releasedOn: "公開日", }; \ No newline at end of file diff --git a/application/src/translations/ja/common.ts b/application/src/translations/ja/common.ts index c8f0ce7..f53f178 100644 --- a/application/src/translations/ja/common.ts +++ b/application/src/translations/ja/common.ts @@ -4,11 +4,11 @@ export const commonTranslations: CommonTranslations = { welcome: "ようこそ", logout: "ログアウト", language: "言語", - english: "English", - khmer: "Khmer", + english: "Englisch", + khmer: "ភាសាខ្មែរ", german: "Deutsch", - simplifiedChinese: "简体中文", japanese: "日本語", + simplifiedChinese: "简体中文", goodMorning: "おはようございます", goodAfternoon: "こんにちは", goodEvening: "こんばんは", diff --git a/application/src/translations/ja/incident.ts b/application/src/translations/ja/incident.ts index b591f3c..331a832 100644 --- a/application/src/translations/ja/incident.ts +++ b/application/src/translations/ja/incident.ts @@ -51,4 +51,5 @@ export const incidentTranslations: IncidentTranslations = { configuration: '設定', failedToUpdateStatus: 'ステータスの更新に失敗しました', inProgress: '進行中', + enterRootCause: '原因を入力してください', }; \ No newline at end of file diff --git a/application/src/translations/ja/services.ts b/application/src/translations/ja/services.ts index 668a644..51dc764 100644 --- a/application/src/translations/ja/services.ts +++ b/application/src/translations/ja/services.ts @@ -8,4 +8,13 @@ export const servicesTranslations: ServicesTranslations = { uptime: "稼働時間", lastChecked: "最終チェック", noServices: "フィルタ条件に一致するサービスがありません。", + currentlyMonitoring: "現在監視中", + retry: "再試行", + overview: "概要", + newService: "新しいサービス", + rowsPerPage: "1ページあたりの行数", + search: "検索", + allTypes: "すべてのタイプ", + createNewService: "新しいサービスを作成", + createNewServiceDesc: "監視する新しいサービスを作成するには、詳細を入力してください。", }; \ No newline at end of file diff --git a/application/src/translations/ja/ssl.ts b/application/src/translations/ja/ssl.ts index 4d2f7db..2fb3622 100644 --- a/application/src/translations/ja/ssl.ts +++ b/application/src/translations/ja/ssl.ts @@ -111,5 +111,6 @@ export const sslTranslations: SSLTranslations = { created: "作成日", lastUpdated: "最終更新", lastNotification: "最終通知", - collectionId: "コレクションID" + collectionId: "コレクションID", + noCertificatesFound: "証明書が見つかりません", }; \ No newline at end of file diff --git a/application/src/translations/km/about.ts b/application/src/translations/km/about.ts index dd44555..01183cf 100644 --- a/application/src/translations/km/about.ts +++ b/application/src/translations/km/about.ts @@ -2,7 +2,7 @@ import { AboutTranslations } from '../types/about'; export const aboutTranslations: AboutTranslations = { - aboutCheckcle: "អំពី Checkcle", + aboutCheckCle: "អំពី Checkcle", systemDescription: "Checkcle គឺជាស្តាកការត្រួតពិនិត្យប្រភពបើកទូលាយដែលផ្តល់នូវការយល់ដឹងជាក់ស្តែងអំពីសុខភាពម៉ាស៊ីនមេ និងសេវាកម្ម, ការគ្រប់គ្រងឧបទ្ទវហេតុ, និងតម្លាភាពនៃប្រតិបត្តិការ។ ចេញផ្សាយជាអាជ្ញាបណ្ណ MIT។", systemVersion: "កំណែប្រព័ន្ធ", license: "អាជ្ញាបណ្ណ", @@ -15,4 +15,5 @@ export const aboutTranslations: AboutTranslations = { quickActions: "សកម្មភាពរហ័ស", quickActionsDescription: "ចូលប្រើប្រតិបត្តិការត្រួតពិនិត្យ និងមុខងារទូទៅយ៉ាងរហ័ស។ ជ្រើសរើសសកម្មភាពខាងក្រោមដើម្បីចាប់ផ្តើម។", quickTips: "គន្លឹះរហ័ស", + releasedOn: "បានចេញផ្សាយនៅថ្ងៃទី", }; \ No newline at end of file diff --git a/application/src/translations/km/common.ts b/application/src/translations/km/common.ts index 47219ce..1215cfa 100644 --- a/application/src/translations/km/common.ts +++ b/application/src/translations/km/common.ts @@ -5,9 +5,10 @@ export const commonTranslations: CommonTranslations = { welcome: "សូមស្វាគមន៍", logout: "ចាកចេញ", language: "ភាសា", - english: "អង់គ្លេស", - khmer: "ខ្មែរ", + english: "Englisch", + khmer: "ភាសាខ្មែរ", german: "Deutsch", + japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "អរុណសួស្តី", goodAfternoon: "ទិវាសួស្តី", diff --git a/application/src/translations/km/incident.ts b/application/src/translations/km/incident.ts index c33191f..32cea91 100644 --- a/application/src/translations/km/incident.ts +++ b/application/src/translations/km/incident.ts @@ -52,4 +52,5 @@ export const incidentTranslations: IncidentTranslations = { configuration: "ការកំណត់រចនាសម្ព័ន្ធ", failedToUpdateStatus: "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពស្ថានភាព", inProgress: "កំពុងដំណើរការ", + enterRootCause: 'បញ្ចូលហេតុផលដើម', }; diff --git a/application/src/translations/km/services.ts b/application/src/translations/km/services.ts index 658ac75..a3d6c21 100644 --- a/application/src/translations/km/services.ts +++ b/application/src/translations/km/services.ts @@ -9,4 +9,13 @@ export const servicesTranslations: ServicesTranslations = { uptime: "ពេលវេលាដំណើរការ", lastChecked: "ពិនិត្យចុងក្រោយ", noServices: "មិនមានសេវាកម្មដែលត្រូវនឹងលក្ខណៈវិនិច្ឆ័យរបស់អ្នក។", + currentlyMonitoring: "កំពុងតាមដានពេលនេះ", + retry: "សាកល្បងម្ដងទៀត", + overview: "ទិដ្ឋភាពទូទៅ", + newService: "សេវាកម្មថ្មី", + rowsPerPage: "ចំនួនជួរដេកក្នុងមួយទំព័រ", + search: "ស្វែងរក", + allTypes: "គ្រប់ប្រភេទ", + createNewService: "បង្កើតសេវាកម្មថ្មី", + createNewServiceDesc: "បញ្ចូលព័ត៌មានលម្អិតដើម្បីបង្កើតសេវាកម្មថ្មីដែលត្រូវតាមដាន។", }; diff --git a/application/src/translations/km/ssl.ts b/application/src/translations/km/ssl.ts index 10ba129..05cb0fa 100644 --- a/application/src/translations/km/ssl.ts +++ b/application/src/translations/km/ssl.ts @@ -112,5 +112,6 @@ export const sslTranslations: SSLTranslations = { created: "បានបង្កើត", lastUpdated: "បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ", lastNotification: "ការជូនដំណឹងចុងក្រោយ", - collectionId: "លេខសម្គាល់ប្រមូលផ្តុំ" + collectionId: "លេខសម្គាល់ប្រមូលផ្តុំ", + noCertificatesFound: "រកមិនឃើញវិញ្ញាបនប័ត្រ", }; diff --git a/application/src/translations/types/about.ts b/application/src/translations/types/about.ts index 7197b39..9d8a1f6 100644 --- a/application/src/translations/types/about.ts +++ b/application/src/translations/types/about.ts @@ -13,4 +13,5 @@ export interface AboutTranslations { quickActions: string; quickActionsDescription: string; quickTips: string; + releasedOn: string; } diff --git a/application/src/translations/types/incident.ts b/application/src/translations/types/incident.ts index 83d2014..762338e 100644 --- a/application/src/translations/types/incident.ts +++ b/application/src/translations/types/incident.ts @@ -50,4 +50,5 @@ export interface IncidentTranslations { configuration: string; failedToUpdateStatus: string; inProgress: string; + enterRootCause: string; } diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 5d93087..9b9750f 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -7,4 +7,13 @@ export interface ServicesTranslations { uptime: string; lastChecked: string; noServices: string; + currentlyMonitoring: string; + retry: string; + overview: string; + newService: string; + rowsPerPage: string; + search: string; + allTypes: string; + createNewService: string; + createNewServiceDesc: string; } diff --git a/application/src/translations/types/ssl.ts b/application/src/translations/types/ssl.ts index f42834d..04a6b43 100644 --- a/application/src/translations/types/ssl.ts +++ b/application/src/translations/types/ssl.ts @@ -111,4 +111,5 @@ export interface SSLTranslations { lastUpdated: string; lastNotification: string; collectionId: string; + noCertificatesFound: string; } \ No newline at end of file diff --git a/application/src/translations/zhcn/about.ts b/application/src/translations/zhcn/about.ts index 3914510..f8eb611 100644 --- a/application/src/translations/zhcn/about.ts +++ b/application/src/translations/zhcn/about.ts @@ -2,7 +2,7 @@ import { AboutTranslations } from '../types/about'; export const aboutTranslations: AboutTranslations = { - aboutCheckcle: "关于 Checkcle", + aboutCheckCle: "关于 Checkcle", systemDescription: "Checkcle 是一个开源监控平台,可提供有关服务器和服务健康状况的实时洞察、事件管理以及透明化运营。以 MIT 许可证发布。", systemVersion: "系统版本", license: "许可证", @@ -15,4 +15,5 @@ export const aboutTranslations: AboutTranslations = { quickActions: "快速操作", quickActionsDescription: "快速访问常用的监控操作和功能。选择下面的操作开始。", quickTips: "快速提示", + releasedOn: "发布于", }; diff --git a/application/src/translations/zhcn/common.ts b/application/src/translations/zhcn/common.ts index 0f5b71e..d6b8dad 100644 --- a/application/src/translations/zhcn/common.ts +++ b/application/src/translations/zhcn/common.ts @@ -5,9 +5,10 @@ export const commonTranslations: CommonTranslations = { welcome: "欢迎", logout: "注销", language: "语言", - english: "English", - khmer: "Khmer", + english: "Englisch", + khmer: "ភាសាខ្មែរ", german: "Deutsch", + japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "早上好", goodAfternoon: "下午好", diff --git a/application/src/translations/zhcn/incident.ts b/application/src/translations/zhcn/incident.ts index 8903f2d..16c21c6 100644 --- a/application/src/translations/zhcn/incident.ts +++ b/application/src/translations/zhcn/incident.ts @@ -52,4 +52,5 @@ export const incidentTranslations: IncidentTranslations = { configuration: '配置', failedToUpdateStatus: '更新状态失败', inProgress: '进行中', + enterRootCause: '输入故障根源', }; diff --git a/application/src/translations/zhcn/menu.ts b/application/src/translations/zhcn/menu.ts index 30c7ab0..0962799 100644 --- a/application/src/translations/zhcn/menu.ts +++ b/application/src/translations/zhcn/menu.ts @@ -2,7 +2,7 @@ import { MenuTranslations } from '../types/menu'; export const menuTranslations: MenuTranslations = { - uptimeMonitoring: "Uptime 监控", + uptimeMonitoring: "在线监控", instanceMonitoring: "实例监控", sslDomain: "SSL & 域名", scheduleIncident: "计划与事件", diff --git a/application/src/translations/zhcn/services.ts b/application/src/translations/zhcn/services.ts index 7cf86c7..8d531d2 100644 --- a/application/src/translations/zhcn/services.ts +++ b/application/src/translations/zhcn/services.ts @@ -6,7 +6,16 @@ export const servicesTranslations: ServicesTranslations = { serviceType: "服务类型", serviceStatus: "服务状态", responseTime: "响应时间", - uptime: "Uptime", + uptime: "在线", lastChecked: "最后检查时间", noServices: "没有符合您筛选条件的服务。", + currentlyMonitoring: "当前监控", + retry: "重试", + overview: "概览", + newService: "新增服务", + rowsPerPage: "每页行数", + search: "搜索", + allTypes: "所有类型", + createNewService: "添加新服务", + createNewServiceDesc: "填写详细信息以创建要监控的新服务。", }; diff --git a/application/src/translations/zhcn/ssl.ts b/application/src/translations/zhcn/ssl.ts index a01249e..af4f7ae 100644 --- a/application/src/translations/zhcn/ssl.ts +++ b/application/src/translations/zhcn/ssl.ts @@ -112,5 +112,6 @@ export const sslTranslations: SSLTranslations = { created: "创建时间", lastUpdated: "最后更新时间", lastNotification: "最后通知时间", - collectionId: "集合 ID" + collectionId: "集合 ID", + noCertificatesFound: "未找到证书", }; From 92617038f0aeda44c4ef8d8b8f4ebf32c4e30313 Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sat, 16 Aug 2025 15:59:00 +0800 Subject: [PATCH 09/46] refactor(i18n): Improve multilingual support --- .../services/add-service/ServiceBasicFields.tsx | 6 ++++-- .../services/add-service/ServiceConfigFields.tsx | 2 ++ .../components/services/add-service/ServiceForm.tsx | 10 ++++++---- application/src/translations/de/services.ts | 1 + application/src/translations/en/services.ts | 1 + application/src/translations/ja/services.ts | 1 + application/src/translations/km/services.ts | 1 + application/src/translations/types/services.ts | 1 + application/src/translations/zhcn/services.ts | 1 + 9 files changed, 18 insertions(+), 6 deletions(-) diff --git a/application/src/components/services/add-service/ServiceBasicFields.tsx b/application/src/components/services/add-service/ServiceBasicFields.tsx index e729b73..5eda597 100644 --- a/application/src/components/services/add-service/ServiceBasicFields.tsx +++ b/application/src/components/services/add-service/ServiceBasicFields.tsx @@ -3,22 +3,24 @@ import { FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/comp import { Input } from "@/components/ui/input"; import { UseFormReturn } from "react-hook-form"; import { ServiceFormData } from "./types"; +import {useLanguage} from "@/contexts/LanguageContext.tsx"; interface ServiceBasicFieldsProps { form: UseFormReturn; } export function ServiceBasicFields({ form }: ServiceBasicFieldsProps) { + const { t } = useLanguage(); return ( ( - Service Name + {t('serviceName')} diff --git a/application/src/components/services/add-service/ServiceConfigFields.tsx b/application/src/components/services/add-service/ServiceConfigFields.tsx index 7145df3..a98c4bb 100644 --- a/application/src/components/services/add-service/ServiceConfigFields.tsx +++ b/application/src/components/services/add-service/ServiceConfigFields.tsx @@ -6,12 +6,14 @@ import { UseFormReturn } from "react-hook-form"; import { ServiceFormData } from "./types"; import { ServiceUrlField } from "./ServiceUrlField"; import { useState } from "react"; +import {useLanguage} from "@/contexts/LanguageContext.tsx"; interface ServiceConfigFieldsProps { form: UseFormReturn; } export function ServiceConfigFields({ form }: ServiceConfigFieldsProps) { + const { t } = useLanguage(); const [isCustomInterval, setIsCustomInterval] = useState(false); const intervalValue = form.watch("interval"); diff --git a/application/src/components/services/add-service/ServiceForm.tsx b/application/src/components/services/add-service/ServiceForm.tsx index a888b11..e9a3fd9 100644 --- a/application/src/components/services/add-service/ServiceForm.tsx +++ b/application/src/components/services/add-service/ServiceForm.tsx @@ -14,6 +14,7 @@ import { Service } from "@/types/service.types"; import { ServiceRegionalFields } from "./ServiceRegionalFields"; import { getServiceFormDefaults, mapServiceToFormData, mapFormDataToServiceData } from "./serviceFormUtils"; import { useQueryClient } from "@tanstack/react-query"; +import {useLanguage} from "@/contexts/LanguageContext.tsx"; interface ServiceFormProps { onSuccess: () => void; @@ -30,6 +31,7 @@ export function ServiceForm({ isEdit = false, onSubmitStart }: ServiceFormProps) { + const { t } = useLanguage(); const { toast } = useToast(); const [isSubmitting, setIsSubmitting] = useState(false); const queryClient = useQueryClient(); @@ -124,23 +126,23 @@ export function ServiceForm({
-

Basic Information

+

{t('basicInformation')}

-

Configuration

+

{t('configuration')}

-

Regional Monitoring

+

{t('regionalMonitoring')}

-

Notifications

+

{t('notifications')}

diff --git a/application/src/translations/de/services.ts b/application/src/translations/de/services.ts index 16524f3..424d57e 100644 --- a/application/src/translations/de/services.ts +++ b/application/src/translations/de/services.ts @@ -4,6 +4,7 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { // Dienst-Tabelle serviceName: "Dienstname", + serviceNameDesc: "Geben Sie einen aussagekräftigen Namen für Ihren Service ein", serviceType: "Diensttyp", serviceStatus: "Dienststatus", responseTime: "Antwortzeit", diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts index c431c74..02e851e 100644 --- a/application/src/translations/en/services.ts +++ b/application/src/translations/en/services.ts @@ -3,6 +3,7 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { serviceName: "Service Name", + serviceNameDesc: "Enter a descriptive name for your service", serviceType: "Service Type", serviceStatus: "Service Status", responseTime: "Response Time", diff --git a/application/src/translations/ja/services.ts b/application/src/translations/ja/services.ts index 51dc764..bb64ae0 100644 --- a/application/src/translations/ja/services.ts +++ b/application/src/translations/ja/services.ts @@ -2,6 +2,7 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { serviceName: "サービス名", + serviceNameDesc: "サービスのわかりやすい名前を入力してください", serviceType: "サービスタイプ", serviceStatus: "サービスステータス", responseTime: "応答時間", diff --git a/application/src/translations/km/services.ts b/application/src/translations/km/services.ts index a3d6c21..9cab3fc 100644 --- a/application/src/translations/km/services.ts +++ b/application/src/translations/km/services.ts @@ -3,6 +3,7 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { serviceName: "ឈ្មោះសេវាកម្ម", + serviceNameDesc: "បញ្ចូលឈ្មោះពិពណ៌នាសម្រាប់សេវាកម្មរបស់អ្នក", serviceType: "ប្រភេទសេវាកម្ម", serviceStatus: "ស្ថានភាពសេវាកម្ម", responseTime: "ពេលវេលាឆ្លើយតប", diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 9b9750f..06d87c8 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -1,6 +1,7 @@ export interface ServicesTranslations { serviceName: string; + serviceNameDesc: string; serviceType: string; serviceStatus: string; responseTime: string; diff --git a/application/src/translations/zhcn/services.ts b/application/src/translations/zhcn/services.ts index 8d531d2..07b4659 100644 --- a/application/src/translations/zhcn/services.ts +++ b/application/src/translations/zhcn/services.ts @@ -3,6 +3,7 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { serviceName: "服务名称", + serviceNameDesc: "为你的服务输入一个描述性名称", serviceType: "服务类型", serviceStatus: "服务状态", responseTime: "响应时间", From b068c0cd51a638f18f2e24b0c0a3b32647b393d6 Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sat, 16 Aug 2025 16:12:09 +0800 Subject: [PATCH 10/46] refactor(i18n): improve translation handling and add English fallback - Add English as the default fallback language; automatically use English when a translation for the current language is missing. --- application/src/contexts/LanguageContext.tsx | 36 +++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/application/src/contexts/LanguageContext.tsx b/application/src/contexts/LanguageContext.tsx index b70f3dc..4419d86 100644 --- a/application/src/contexts/LanguageContext.tsx +++ b/application/src/contexts/LanguageContext.tsx @@ -1,4 +1,4 @@ -import React, { createContext, useContext, useState, ReactNode } from "react"; +import React, { createContext, useContext, useState, ReactNode, useCallback } from "react"; import { translations, Language, TranslationModule, TranslationKey } from "@/translations"; type LanguageContextType = { @@ -21,27 +21,39 @@ export const useLanguage = () => { export const LanguageProvider = ({ children }: { children: ReactNode }) => { const [language, setLanguage] = useState("en"); + const fallbackLanguage: Language = "en"; - const t = (key: string, module?: M): string => { + const t = useCallback((key: string, module?: M): string => { + const langPack = translations[language]; + const fallbackPack = translations[fallbackLanguage]; if (module) { - const translatedValue = translations[language][module][key as TranslationKey]; - return typeof translatedValue === "string" ? translatedValue : key; + const valCur = langPack?.[module]?.[key as TranslationKey]; + if (typeof valCur === "string") return valCur; + + const valEn = fallbackPack?.[module]?.[key as TranslationKey]; + if (typeof valEn === "string") return valEn; + + return key; } - for (const mod in translations[language]) { - const moduleKey = mod as TranslationModule; - const translatedValue = translations[language][moduleKey][key as any]; - if (translatedValue && typeof translatedValue === "string") { - return translatedValue; - } + for (const mod in langPack) { + const m = mod as TranslationModule; + const val = langPack[m]?.[key as any]; + if (typeof val === "string") return val; + } + + for (const mod in fallbackPack) { + const m = mod as TranslationModule; + const val = fallbackPack[m]?.[key as any]; + if (typeof val === "string") return val; } return key; - }; + }, [language]); return ( {children} ); -}; +}; \ No newline at end of file From 6bf75b2bf701b7b1ba929cc56dec6670fdd2e9c9 Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sun, 17 Aug 2025 15:19:01 +0800 Subject: [PATCH 11/46] refactor(i18n): Extracted multiple fields in the Service component for translation. - Extracted multiple fields in the Service component for translation. - Optimized the structure of the translation file, categorizing it by functional modules. --- .../add-service/ServiceConfigFields.tsx | 36 ++++----- .../services/add-service/ServiceForm.tsx | 2 +- .../add-service/ServiceNotificationFields.tsx | 22 +++--- .../add-service/ServiceRegionalFields.tsx | 26 ++++--- .../services/add-service/ServiceTypeField.tsx | 12 +-- .../services/add-service/ServiceUrlField.tsx | 20 ++--- .../data-retention/DataRetentionSettings.tsx | 2 +- .../settings/general/GeneralSettingsPanel.tsx | 6 +- .../user-management/UserManagement.tsx | 11 ++- application/src/translations/en/services.ts | 71 +++++++++++++++++- application/src/translations/en/settings.ts | 19 +++-- .../src/translations/types/services.ts | 71 +++++++++++++++++- .../src/translations/types/settings.ts | 17 +++-- application/src/translations/zhcn/services.ts | 75 +++++++++++++++++-- application/src/translations/zhcn/settings.ts | 21 ++++-- 15 files changed, 319 insertions(+), 92 deletions(-) diff --git a/application/src/components/services/add-service/ServiceConfigFields.tsx b/application/src/components/services/add-service/ServiceConfigFields.tsx index a98c4bb..b9c2583 100644 --- a/application/src/components/services/add-service/ServiceConfigFields.tsx +++ b/application/src/components/services/add-service/ServiceConfigFields.tsx @@ -37,7 +37,7 @@ export function ServiceConfigFields({ form }: ServiceConfigFieldsProps) { name="interval" render={({ field }) => ( - Check Interval + {t("checkInterval")} {!isCustomInterval ? ( @@ -60,7 +60,7 @@ export function ServiceConfigFields({ form }: ServiceConfigFieldsProps) { - Back to presets + {t("backToPresets")}
)} {isCustomInterval - ? "Enter custom interval in seconds (minimum 10 seconds)" - : "How often to check the service status" + ? t("checkIntervalDescCustom") + : t("checkIntervalDesc") } @@ -94,22 +94,22 @@ export function ServiceConfigFields({ form }: ServiceConfigFieldsProps) { name="retries" render={({ field }) => ( - Retry Attempts + {t("retryAttempts")} - Number of retry attempts before marking as down + {t("retryAttemptsDesc")} diff --git a/application/src/components/services/add-service/ServiceForm.tsx b/application/src/components/services/add-service/ServiceForm.tsx index e9a3fd9..576e231 100644 --- a/application/src/components/services/add-service/ServiceForm.tsx +++ b/application/src/components/services/add-service/ServiceForm.tsx @@ -150,7 +150,7 @@ export function ServiceForm({ diff --git a/application/src/components/services/add-service/ServiceNotificationFields.tsx b/application/src/components/services/add-service/ServiceNotificationFields.tsx index 075b253..32da21f 100644 --- a/application/src/components/services/add-service/ServiceNotificationFields.tsx +++ b/application/src/components/services/add-service/ServiceNotificationFields.tsx @@ -9,12 +9,14 @@ import { useQuery } from "@tanstack/react-query"; import { alertConfigService, AlertConfiguration } from "@/services/alertConfigService"; import { serviceNotificationTemplateService, ServiceNotificationTemplate } from "@/services/serviceNotificationTemplateService"; import { useState, useEffect } from "react"; +import { useLanguage } from "@/contexts/LanguageContext.tsx"; interface ServiceNotificationFieldsProps { form: UseFormReturn; } export function ServiceNotificationFields({ form }: ServiceNotificationFieldsProps) { + const { t } = useLanguage(); const [alertConfigs, setAlertConfigs] = useState([]); // Get the current form values for debugging @@ -88,10 +90,10 @@ export function ServiceNotificationFields({ form }: ServiceNotificationFieldsPro
- Enable Notifications + {t("enableNotifications")} - Enable or disable notifications for this service + {t("enableNotificationsDesc")}
@@ -115,11 +117,11 @@ export function ServiceNotificationFields({ form }: ServiceNotificationFieldsPro name="notificationChannels" render={({ field }) => ( - Notification Channels + {t("notificationChannels")} {notificationStatus === "enabled" - ? "Select notification channels for this service" - : "Enable notifications first to select channels"} + ? t("notificationChannelsEnabledDesc") + : t("notificationChannelsDesc")} {/* Display selected channels as badges */} @@ -144,7 +146,7 @@ export function ServiceNotificationFields({ form }: ServiceNotificationFieldsPro value="" // Always reset to empty after selection > - + {alertConfigs @@ -169,7 +171,7 @@ export function ServiceNotificationFields({ form }: ServiceNotificationFieldsPro return ( - Alert Template + {t("alertTemplate")} HTTP/S

- Monitor websites and REST APIs with HTTP/HTTPS Protocol + {t("serviceTypeHTTPDesc")}

@@ -67,7 +69,7 @@ export function ServiceTypeField({ form }: ServiceTypeFieldProps) { PING

- Monitor host availability with PING Protocol + {t("serviceTypePINGDesc")}

@@ -78,7 +80,7 @@ export function ServiceTypeField({ form }: ServiceTypeFieldProps) { TCP

- Monitor TCP port connectivity with TCP Protocol + {t("serviceTypeTCPDesc")}

@@ -89,7 +91,7 @@ export function ServiceTypeField({ form }: ServiceTypeFieldProps) { DNS

- Monitor DNS resolution + {t("serviceTypeDNSDesc")}

diff --git a/application/src/components/services/add-service/ServiceUrlField.tsx b/application/src/components/services/add-service/ServiceUrlField.tsx index f8419c4..8b4aee0 100644 --- a/application/src/components/services/add-service/ServiceUrlField.tsx +++ b/application/src/components/services/add-service/ServiceUrlField.tsx @@ -3,12 +3,14 @@ import { FormControl, FormField, FormItem, FormLabel, FormMessage, FormDescripti import { Input } from "@/components/ui/input"; import { UseFormReturn } from "react-hook-form"; import { ServiceFormData } from "./types"; +import { useLanguage } from "@/contexts/LanguageContext.tsx"; interface ServiceUrlFieldProps { form: UseFormReturn; } export function ServiceUrlField({ form }: ServiceUrlFieldProps) { + const { t } = useLanguage(); const serviceType = form.watch("type"); const getPlaceholder = () => { @@ -22,35 +24,35 @@ export function ServiceUrlField({ form }: ServiceUrlFieldProps) { case "dns": return "example.com"; default: - return "Enter URL or hostname"; + return t("targetDefaultPlaceholder"); } }; const getDescription = () => { switch (serviceType) { case "http": - return "Enter the full URL including protocol (http:// or https://)"; + return t("targetHTTPDesc"); case "ping": - return "Enter hostname or IP address to ping"; + return t("targetPINGDesc"); case "tcp": - return "Enter hostname or IP address for TCP connection test"; + return t("targetTCPDesc"); case "dns": - return "Enter domain name for DNS record monitoring (A, AAAA, MX, etc.)"; + return t("targetDNSDesc"); default: - return "Enter the target URL or hostname for monitoring"; + return t("targetDefaultDesc"); } }; const getFieldLabel = () => { switch (serviceType) { case "dns": - return "Domain Name"; + return t("targetDNS"); case "ping": return "Hostname/IP"; case "tcp": return "Hostname/IP"; default: - return "Target URL/Host"; + return t("targetDefault"); } }; @@ -99,7 +101,7 @@ export function ServiceUrlField({ form }: ServiceUrlFieldProps) { /> - Enter the port number for TCP connection test + {t("targetTCPPortDesc")} diff --git a/application/src/components/settings/data-retention/DataRetentionSettings.tsx b/application/src/components/settings/data-retention/DataRetentionSettings.tsx index 15c1d58..5aa246b 100644 --- a/application/src/components/settings/data-retention/DataRetentionSettings.tsx +++ b/application/src/components/settings/data-retention/DataRetentionSettings.tsx @@ -170,7 +170,7 @@ const DataRetentionSettings = () => { - Permission Notice: As an admin user, you do not have access to data retention settings. These settings can only be accessed and modified by Super Admins. + {t("permissionNotice")} As an admin user, you do not have access to data retention settings. These settings can only be accessed and modified by Super Admins. diff --git a/application/src/components/settings/general/GeneralSettingsPanel.tsx b/application/src/components/settings/general/GeneralSettingsPanel.tsx index b990634..70019d3 100644 --- a/application/src/components/settings/general/GeneralSettingsPanel.tsx +++ b/application/src/components/settings/general/GeneralSettingsPanel.tsx @@ -143,7 +143,7 @@ const GeneralSettingsPanel: React.FC = () => { - Permission Notice: As an admin user, you do not have access to view or modify system and mail settings. These settings can only be accessed and modified by Super Admins. Contact your Super Admin if you need to make changes to system configuration or mail settings. + {t("permissionNotice")} {t("permissionNoticeAddUser")} @@ -153,11 +153,11 @@ const GeneralSettingsPanel: React.FC = () => { } if (isLoading) { - return
Loading settings...
; + return
{t("loadingSettings")}
; } if (error) { - return
Error loading settings
; + return
{t("loadingSettingsError")}
; } return ( diff --git a/application/src/components/settings/user-management/UserManagement.tsx b/application/src/components/settings/user-management/UserManagement.tsx index 5865377..9e4e04f 100644 --- a/application/src/components/settings/user-management/UserManagement.tsx +++ b/application/src/components/settings/user-management/UserManagement.tsx @@ -10,7 +10,10 @@ import { UserCog, Loader2, AlertCircle, Info, Users, ShieldAlert } from "lucide- import { Button } from "@/components/ui/button"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { authService } from "@/services/authService"; +import { useLanguage } from "@/contexts/LanguageContext.tsx"; + const UserManagement = () => { + const { t } = useLanguage(); const { users, loading, @@ -44,21 +47,21 @@ const UserManagement = () => {
- User Management + {t("userManagement")}
-

User Management

+

{t("userManagement")}

{isSuperAdmin && }
{!isSuperAdmin && - Permission Notice: As an admin user, you have access to view and modify existing user details. However, only Super Admins have permission to create new user accounts. Contact your Super Admin if you need to add a new user. + {t("permissionNotice")} As an admin user, you have access to view and modify existing user details. However, only Super Admins have permission to create new user accounts. Contact your Super Admin if you need to add a new user. } diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts index 02e851e..8af5efd 100644 --- a/application/src/translations/en/services.ts +++ b/application/src/translations/en/services.ts @@ -2,9 +2,6 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { - serviceName: "Service Name", - serviceNameDesc: "Enter a descriptive name for your service", - serviceType: "Service Type", serviceStatus: "Service Status", responseTime: "Response Time", uptime: "Uptime", @@ -19,4 +16,72 @@ export const servicesTranslations: ServicesTranslations = { allTypes: "All Types", createNewService: "Create New Service", createNewServiceDesc: "Fill in the details to create a new service to monitor.", + + // ServiceBasicFields.tsx + serviceName: "Service Name", + serviceNameDesc: "Enter a descriptive name for your service", + + // ServiceConfigFields.tsx + checkInterval: "Check Interval", + seconds: "seconds", + minute: "minute", + minutes: "minutes", + hour: "hour", + hours: "hours", + custom: "Custom", + checkIntervalPlaceholder: "Enter interval in seconds", + backToPresets: "Back to presets", + checkIntervalDesc: "How often to check the service status", + checkIntervalDescCustom: "Enter custom interval in seconds (minimum 10 seconds)", + retryAttempts: "Retry Attempts", + attempt: "attempt", + attempts: "attempts", + retryAttemptsDesc: "Number of retry attempts before marking as down", + + // ServiceForm.tsx + updateService: "Update Service", + createService: "Create Service", + + // ServiceNotificationFields.tsx + enableNotifications: "Enable Notifications", + enableNotificationsDesc: "Enable or disable notifications for this service", + notificationChannels: "Notification Channels", + notificationChannelsEnabledDesc: "Select notification channels for this service", + notificationChannelsDesc: "Enable notifications first to select channels", + notificationChannelsPlaceholder: "Add a notification channel", + alertTemplate: "Alert Template", + alertTemplateLoading: "Loading templates...", + alertTemplatePlaceholder: "Select an alert template", + alertTemplateEnabledDesc: "Choose a template for alert messages", + alertTemplateDesc: "Enable notifications first to select template", + + // ServiceTypeField.tsx + serviceType: "Service Type", + serviceTypeHTTPDesc: "Monitor websites and REST APIs with HTTP/HTTPS Protocol", + serviceTypePINGDesc: "Monitor host availability with PING Protocol", + serviceTypeTCPDesc: "Monitor TCP port connectivity with TCP Protocol", + serviceTypeDNSDesc: "Monitor DNS resolution", + + // ServiceRegionalFields.tsx + regionalMonitoring: "Regional Monitoring", + regionalMonitoringDesc: "Assign this service to regional monitoring agents for distributed monitoring", + regionalAgents: "Regional Agents", + regionalAgentsLoading: "Loading agents...", + regionalAgentsAvailablePlaceholder: "Select additional regional agents...", + regionalAgentsAllSelected: "All available agents selected", + regionalAgentsNoAvailable: "No regional agents available", + regionalAgentsNoOnlineAvailable: "No online regional agents available", + regionalAgentsNotFoundMessage: "No online regional agents found. Services will use default monitoring.", + regionalAgentsNotSelectedMessage: "No regional agents selected. Service will use default monitoring.", + + // ServiceUrlField.tsx + targetDefault: "Target URL/Host", + targetDNS: "Domain Name", + targetHTTPDesc: "Enter the full URL including protocol (http:// or https://)", + targetPINGDesc: "Enter hostname or IP address to ping", + targetTCPDesc: "Enter hostname or IP address for TCP connection test", + targetTCPPortDesc: "Enter the port number for TCP connection test", + targetDNSDesc: "Enter domain name for DNS record monitoring (A, AAAA, MX, etc.)", + targetDefaultDesc: "Enter the target URL or hostname for monitoring", + targetDefaultPlaceholder: "Enter URL or hostname", }; \ No newline at end of file diff --git a/application/src/translations/en/settings.ts b/application/src/translations/en/settings.ts index 9681f86..16077c5 100644 --- a/application/src/translations/en/settings.ts +++ b/application/src/translations/en/settings.ts @@ -2,18 +2,18 @@ import { SettingsTranslations } from '../types/settings'; export const settingsTranslations: SettingsTranslations = { - // Tabs + // General Settings - Tabs systemSettings: "System Settings", mailSettings: "Mail Settings", - // System Settings + // General Settings - System Settings appName: "Application Name", appURL: "Application URL", senderName: "Sender Name", senderEmail: "Sender Email Address", hideControls: "Hide Controls", - // Mail Settings + // General Settings - Mail Settings smtpSettings: "SMTP Configuration", smtpEnabled: "Enable SMTP", smtpHost: "SMTP Host", @@ -24,7 +24,7 @@ export const settingsTranslations: SettingsTranslations = { enableTLS: "Enable TLS", localName: "Local Name", - // Test Email + // General Settings - Test Email testEmail: "Test Email", sendTestEmail: "Send test email", emailTemplate: "Email template", @@ -39,7 +39,7 @@ export const settingsTranslations: SettingsTranslations = { enterEmailAddress: "Enter email address", sending: "Sending...", - // Actions and status + // General Settings - Actions and status save: "Save Changes", saving: "Saving...", settingsUpdated: "Settings updated successfully", @@ -48,5 +48,12 @@ export const settingsTranslations: SettingsTranslations = { testConnection: "Test Connection", testingConnection: "Testing Connection...", connectionSuccess: "Connection successful", - connectionFailed: "Connection failed" + connectionFailed: "Connection failed", + + // User Management + addUser: "Add User", + permissionNotice: "Permission Notice:", + permissionNoticeAddUser: "As an admin user, you do not have access to view or modify system and mail settings. These settings can only be accessed and modified by Super Admins. Contact your Super Admin if you need to make changes to system configuration or mail settings.", + loadingSettings: "Loading settings...", + loadingSettingsError: "Error loading settings", }; \ No newline at end of file diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 06d87c8..130e422 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -1,8 +1,6 @@ export interface ServicesTranslations { - serviceName: string; - serviceNameDesc: string; - serviceType: string; + serviceStatus: string; responseTime: string; uptime: string; @@ -17,4 +15,71 @@ export interface ServicesTranslations { allTypes: string; createNewService: string; createNewServiceDesc: string; + + // ServiceBasicFields.tsx + serviceName: string; + serviceNameDesc: string; + + // ServiceConfigFields.tsx + checkInterval: string; + seconds: string; + minute: string; + minutes: string; + hour: string; + hours: string; + custom: string; + checkIntervalPlaceholder: string; + backToPresets: string; + checkIntervalDesc: string; + checkIntervalDescCustom: string; + retryAttempts: string; + attempt: string; + attempts: string; + retryAttemptsDesc: string; + + // ServiceForm.tsx + updateService: string; + createService: string; + + // ServiceNotificationFields.tsx + enableNotifications: string; + enableNotificationsDesc: string; + notificationChannels: string; + notificationChannelsEnabledDesc: string; + notificationChannelsDesc: string; + notificationChannelsPlaceholder: string; + alertTemplate: string; + alertTemplateLoading: string; + alertTemplatePlaceholder: string; + alertTemplateEnabledDesc: string; + alertTemplateDesc: string; + + // ServiceTypeField.tsx + serviceType: string; + serviceTypeHTTPDesc: string; + serviceTypePINGDesc: string; + serviceTypeTCPDesc: string; + serviceTypeDNSDesc: string; + + // ServiceRegionalFields.tsx + regionalMonitoring: string; + regionalMonitoringDesc: string; + regionalAgents: string; + regionalAgentsLoading: string; + regionalAgentsAvailablePlaceholder: string; + regionalAgentsAllSelected: string; + regionalAgentsNoAvailable: string; + regionalAgentsNotFoundMessage: string; + regionalAgentsNotSelectedMessage: string; + + // ServiceUrlField.tsx + targetDefault: string; + targetDNS: string; + targetHTTPDesc: string; + targetPINGDesc: string; + targetTCPDesc: string; + targetTCPPortDesc: string; + targetDNSDesc: string; + targetDefaultDesc: string; + targetDefaultPlaceholder: string; } diff --git a/application/src/translations/types/settings.ts b/application/src/translations/types/settings.ts index 71b07e5..cf4de01 100644 --- a/application/src/translations/types/settings.ts +++ b/application/src/translations/types/settings.ts @@ -1,17 +1,17 @@ export interface SettingsTranslations { - // Tabs + // General Settings - Tabs systemSettings: string; mailSettings: string; - // System Settings + // General Settings - System Settings appName: string; appURL: string; senderName: string; senderEmail: string; hideControls: string; - // Mail Settings + // General Settings - Mail Settings smtpSettings?: string; smtpEnabled: string; smtpHost: string; @@ -22,7 +22,7 @@ export interface SettingsTranslations { enableTLS: string; localName: string; - // Test Email + // General Settings - Test Email testEmail: string; sendTestEmail: string; emailTemplate: string; @@ -37,7 +37,7 @@ export interface SettingsTranslations { enterEmailAddress: string; sending: string; - // Actions and status + // General Settings - Actions and status save: string; saving: string; settingsUpdated: string; @@ -47,4 +47,11 @@ export interface SettingsTranslations { testingConnection: string; connectionSuccess: string; connectionFailed: string; + + // User Management + addUser: string; + permissionNotice: string; + permissionNoticeAddUser: string; + loadingSettings: string; + loadingSettingsError: string; } \ No newline at end of file diff --git a/application/src/translations/zhcn/services.ts b/application/src/translations/zhcn/services.ts index 07b4659..72fe126 100644 --- a/application/src/translations/zhcn/services.ts +++ b/application/src/translations/zhcn/services.ts @@ -2,12 +2,9 @@ import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { - serviceName: "服务名称", - serviceNameDesc: "为你的服务输入一个描述性名称", - serviceType: "服务类型", serviceStatus: "服务状态", responseTime: "响应时间", - uptime: "在线", + uptime: "在线时间", lastChecked: "最后检查时间", noServices: "没有符合您筛选条件的服务。", currentlyMonitoring: "当前监控", @@ -19,4 +16,72 @@ export const servicesTranslations: ServicesTranslations = { allTypes: "所有类型", createNewService: "添加新服务", createNewServiceDesc: "填写详细信息以创建要监控的新服务。", -}; + + // ServiceBasicFields.tsx + serviceName: "服务名称", + serviceNameDesc: "为你的服务输入一个描述性名称", + + // ServiceConfigFields.tsx + checkInterval: "检查间隔", + seconds: "秒", + minute: "分钟", + minutes: "分钟", + hour: "小时", + hours: "小时", + custom: "自定义", + checkIntervalPlaceholder: "输入间隔时间(秒)", + backToPresets: "回到预设", + checkIntervalDesc: "多久检查一次服务状态", + checkIntervalDescCustom: "输入自定义间隔时间(以秒为单位,最小10秒)", + retryAttempts: "重试次数", + attempt: "次", + attempts: "次", + retryAttemptsDesc: "在标记为下线之前重试的次数", + + // ServiceForm.tsx + updateService: "更新服务", + createService: "创建服务", + + // ServiceNotificationFields.tsx + enableNotifications: "启用通知", + enableNotificationsDesc: "为本服务启用或禁用通知", + notificationChannels: "通知渠道", + notificationChannelsEnabledDesc: "为本服务选择通知渠道", + notificationChannelsDesc: "先启用通知以选择渠道", + notificationChannelsPlaceholder: "添加一个通知渠道", + alertTemplate: "警报模板", + alertTemplateLoading: "正在加载模板...", + alertTemplatePlaceholder: "选择一个警报模板", + alertTemplateEnabledDesc: "选择一个警报消息的模板", + alertTemplateDesc: "先启用通知才能选择模板", + + // ServiceTypeField.tsx + serviceType: "服务类型", + serviceTypeHTTPDesc: "使用 HTTP/HTTPS 协议监控网站和 RESTAPI", + serviceTypePINGDesc: "使用 PING 协议监控主机可用性", + serviceTypeTCPDesc: "使用 TCP 协议监控 TCP 端口连接性", + serviceTypeDNSDesc: "监控 DNS 解析", + + // ServiceRegionalFields.tsx + regionalMonitoring: "区域监控", + regionalMonitoringDesc: "将此服务分配给区域监控代理以进行分布式监控", + regionalAgents: "区域代理", + regionalAgentsLoading: "加载代理中...", + regionalAgentsAvailablePlaceholder: "选择额外的区域代理...", + regionalAgentsAllSelected: "已选择所有可用代理", + regionalAgentsNoAvailable: "无可用区域代理", + regionalAgentsNoOnlineAvailable: "无可用在线区域代理", + regionalAgentsNotFoundMessage: "未找到在线区域代理。服务将使用默认监控。", + regionalAgentsNotSelectedMessage: "未选择区域代理。服务将使用默认监控。", + + // ServiceUrlField.tsx + targetDefault: "目标 URL/Host", + targetDNS: "域名", + targetHTTPDesc: "输入完整的 URL,包括协议(http:// 或 https://)", + targetPINGDesc: "输入要 ping 的主机名或 IP 地址", + targetTCPDesc: "输入主机名或 IP 地址以进行 TCP 连接测试", + targetTCPPortDesc: "输入用于 TCP 连接测试的端口号", + targetDNSDesc: "输入要监控的 DNS 记录域名(A、AAAA、MX等)", + targetDefaultDesc: "输入要监控的目标 URL 或主机名", + targetDefaultPlaceholder: "输入 URL 或主机名", +}; \ No newline at end of file diff --git a/application/src/translations/zhcn/settings.ts b/application/src/translations/zhcn/settings.ts index 8f86b1b..a57757e 100644 --- a/application/src/translations/zhcn/settings.ts +++ b/application/src/translations/zhcn/settings.ts @@ -2,18 +2,18 @@ import { SettingsTranslations } from '../types/settings'; export const settingsTranslations: SettingsTranslations = { - // Tabs + // General Settings - Tabs systemSettings: "系统设置", mailSettings: "邮件设置", - // System Settings + // General Settings - System Settings appName: "应用名称", appURL: "应用 URL", senderName: "发送者名称", senderEmail: "发送者邮箱地址", hideControls: "隐藏控件", - // Mail Settings + // General Settings - Mail Settings smtpSettings: "SMTP 配置", smtpEnabled: "启用 SMTP", smtpHost: "SMTP 主机", @@ -24,7 +24,7 @@ export const settingsTranslations: SettingsTranslations = { enableTLS: "启用 TLS", localName: "本地名称", - // Test Email + // General Settings - Test Email testEmail: "测试邮箱", sendTestEmail: "发送测试邮箱", emailTemplate: "邮箱模板", @@ -39,7 +39,7 @@ export const settingsTranslations: SettingsTranslations = { enterEmailAddress: "输入收件人邮箱地址", sending: "发送中...", - // Actions and status + // General Settings - Actions and status save: "保存变更", saving: "保存中...", settingsUpdated: "设置已成功更新", @@ -48,5 +48,12 @@ export const settingsTranslations: SettingsTranslations = { testConnection: "测试连接", testingConnection: "测试连接中...", connectionSuccess: "连接成功", - connectionFailed: "连接失败" -}; + connectionFailed: "连接失败", + + // User Management + addUser: "添加用户", + permissionNotice: "权限问题:", + permissionNoticeAddUser: "作为管理员用户,您无权查看或修改系统及邮件设置。这些设置仅超级管理员可访问和修改。如需更改系统配置或邮件设置,请联系您的超级管理员。", + loadingSettings: "加载设置中...", + loadingSettingsError: "加载设置时出错", +}; \ No newline at end of file From fa3ad9b2e1b950d245b10317c8392b98370138c0 Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sun, 17 Aug 2025 23:13:25 +0800 Subject: [PATCH 12/46] refactor(add-service): Refactor ServiceForm.tsx to support internationalization - Extract ServiceForm.tsx validation logic into the custom hook useServiceSchema - Add internationalization support and move error messages to translation files --- .../services/add-service/ServiceForm.tsx | 4 +- .../components/services/add-service/types.ts | 58 +++++++++++++------ application/src/translations/en/services.ts | 5 ++ .../src/translations/types/services.ts | 5 ++ application/src/translations/zhcn/services.ts | 5 ++ 5 files changed, 57 insertions(+), 20 deletions(-) diff --git a/application/src/components/services/add-service/ServiceForm.tsx b/application/src/components/services/add-service/ServiceForm.tsx index 576e231..3023ff6 100644 --- a/application/src/components/services/add-service/ServiceForm.tsx +++ b/application/src/components/services/add-service/ServiceForm.tsx @@ -3,7 +3,7 @@ import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useState, useEffect } from "react"; import { useToast } from "@/hooks/use-toast"; -import { serviceSchema, ServiceFormData } from "./types"; +import { useServiceSchema, ServiceFormData } from "./types"; import { ServiceBasicFields } from "./ServiceBasicFields"; import { ServiceTypeField } from "./ServiceTypeField"; import { ServiceConfigFields } from "./ServiceConfigFields"; @@ -36,6 +36,8 @@ export function ServiceForm({ const [isSubmitting, setIsSubmitting] = useState(false); const queryClient = useQueryClient(); + const serviceSchema = useServiceSchema(); + // Initialize form with default values const form = useForm({ resolver: zodResolver(serviceSchema), diff --git a/application/src/components/services/add-service/types.ts b/application/src/components/services/add-service/types.ts index 4269a42..d3f8033 100644 --- a/application/src/components/services/add-service/types.ts +++ b/application/src/components/services/add-service/types.ts @@ -1,22 +1,42 @@ - import { z } from "zod"; +import type { ZodSchema } from "zod"; +import { useLanguage } from "@/contexts/LanguageContext"; -export const serviceSchema = z.object({ - name: z.string().min(1, "Service name is required"), - type: z.enum(["http", "ping", "tcp", "dns"]), - url: z.string().min(1, "URL/Domain/Host is required").refine((value) => { - // Basic validation - more specific validation can be added per type - return value.trim().length > 0; - }, "Please enter a valid URL, hostname, or domain"), - port: z.string().optional(), - interval: z.string(), - retries: z.string(), - notificationStatus: z.enum(["enabled", "disabled"]).optional(), - notificationChannels: z.array(z.string()).optional(), - alertTemplate: z.string().optional(), - // Regional monitoring fields - now supports multiple agents - regionalMonitoringEnabled: z.boolean().optional(), - regionalAgents: z.array(z.string()).optional(), -}); -export type ServiceFormData = z.infer; \ No newline at end of file +export type ServiceFormData = { + name: string; + type: "http" | "ping" | "tcp" | "dns"; + url: string; + port?: string; + interval: string; + retries: string; + notificationStatus?: "enabled" | "disabled"; + notificationChannels?: string[]; + alertTemplate?: string; + regionalMonitoringEnabled?: boolean; + regionalAgents?: string[]; +}; + +// Hook to use the schema with translations +export const useServiceSchema = () => { + const { t } = useLanguage(); + return z.object({ + name: z.string().min(1, t("serviceNameRequired")), + type: z.enum(["http", "ping", "tcp", "dns"]), + url: z.string() + .min(1, t("urlDomainHostRequired")) + .refine( + (value) => value.trim().length > 0, + t("enterValidUrlHostnameDomain") + ), + port: z.string().optional(), + interval: z.string(), + retries: z.string(), + notificationStatus: z.enum(["enabled", "disabled"]).optional(), + notificationChannels: z.array(z.string()).optional(), + alertTemplate: z.string().optional(), + // Regional monitoring fields - now supports multiple agents + regionalMonitoringEnabled: z.boolean().optional(), + regionalAgents: z.array(z.string()).optional(), + }); +}; \ No newline at end of file diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts index 8af5efd..66aaef3 100644 --- a/application/src/translations/en/services.ts +++ b/application/src/translations/en/services.ts @@ -84,4 +84,9 @@ export const servicesTranslations: ServicesTranslations = { targetDNSDesc: "Enter domain name for DNS record monitoring (A, AAAA, MX, etc.)", targetDefaultDesc: "Enter the target URL or hostname for monitoring", targetDefaultPlaceholder: "Enter URL or hostname", + + // types.ts + serviceNameRequired: "Service name is required", + urlDomainHostRequired: "URL/Domain/Host is required", + enterValidUrlHostnameDomain: "Please enter a valid URL, hostname, or domain", }; \ No newline at end of file diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 130e422..11b28b4 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -82,4 +82,9 @@ export interface ServicesTranslations { targetDNSDesc: string; targetDefaultDesc: string; targetDefaultPlaceholder: string; + + // types.ts + serviceNameRequired: string; + urlDomainHostRequired: string; + enterValidUrlHostnameDomain: string; } diff --git a/application/src/translations/zhcn/services.ts b/application/src/translations/zhcn/services.ts index 72fe126..a94c175 100644 --- a/application/src/translations/zhcn/services.ts +++ b/application/src/translations/zhcn/services.ts @@ -84,4 +84,9 @@ export const servicesTranslations: ServicesTranslations = { targetDNSDesc: "输入要监控的 DNS 记录域名(A、AAAA、MX等)", targetDefaultDesc: "输入要监控的目标 URL 或主机名", targetDefaultPlaceholder: "输入 URL 或主机名", + + // types.ts + serviceNameRequired: "服务名称是必填项", + urlDomainHostRequired: "URL/域名/主机名是必填项", + enterValidUrlHostnameDomain: "请输入有效的URL、主机名或域名", }; \ No newline at end of file From f9743407a4c3f96c511b89cebf160da7679a755e Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sun, 17 Aug 2025 23:21:39 +0800 Subject: [PATCH 13/46] refactor(i18n): Add internationalization support for the dashboard service status card - Add new translation items to multiple language files, including Chinese and English - Implement internationalization support in the StatusCards component --- application/src/components/dashboard/StatusCards.tsx | 11 +++++++---- application/src/translations/en/services.ts | 6 ++++++ application/src/translations/types/services.ts | 6 ++++++ application/src/translations/zhcn/services.ts | 6 ++++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/application/src/components/dashboard/StatusCards.tsx b/application/src/components/dashboard/StatusCards.tsx index 2ee4f5d..428f8c9 100644 --- a/application/src/components/dashboard/StatusCards.tsx +++ b/application/src/components/dashboard/StatusCards.tsx @@ -3,12 +3,15 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { ArrowUp, ArrowDown, Pause, AlertTriangle } from "lucide-react"; import { Service } from "@/services/serviceService"; import { useTheme } from "@/contexts/ThemeContext"; +import {useLanguage} from "@/contexts/LanguageContext.tsx"; interface StatusCardsProps { services: Service[]; } export const StatusCards = ({ services }: StatusCardsProps) => { + const { t } = useLanguage(); + // Count services by status const upServices = services.filter(s => s.status === "up").length; const downServices = services.filter(s => s.status === "down").length; @@ -42,7 +45,7 @@ export const StatusCards = ({ services }: StatusCardsProps) => { > - UP SERVICES + {t("upServices")} {upServices} @@ -74,7 +77,7 @@ export const StatusCards = ({ services }: StatusCardsProps) => { > - DOWN SERVICES + {t("downServices")} {downServices} @@ -106,7 +109,7 @@ export const StatusCards = ({ services }: StatusCardsProps) => { > - PAUSED SERVICES + {t("pausedServices")} {pausedServices} @@ -138,7 +141,7 @@ export const StatusCards = ({ services }: StatusCardsProps) => { > - WARNING SERVICES + {t("warningServices")} {warningServices} diff --git a/application/src/translations/en/services.ts b/application/src/translations/en/services.ts index 66aaef3..3058a85 100644 --- a/application/src/translations/en/services.ts +++ b/application/src/translations/en/services.ts @@ -89,4 +89,10 @@ export const servicesTranslations: ServicesTranslations = { serviceNameRequired: "Service name is required", urlDomainHostRequired: "URL/Domain/Host is required", enterValidUrlHostnameDomain: "Please enter a valid URL, hostname, or domain", + + // Dashboard + upServices: "UP SERVICES", + downServices: "DOWN SERVICES", + pausedServices: "PAUSED SERVICES", + warningServices: "WARNING SERVICES", }; \ No newline at end of file diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 11b28b4..63bd1bd 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -87,4 +87,10 @@ export interface ServicesTranslations { serviceNameRequired: string; urlDomainHostRequired: string; enterValidUrlHostnameDomain: string; + + // Dashboard + upServices: string; + downServices: string; + pausedServices: string; + warningServices: string; } diff --git a/application/src/translations/zhcn/services.ts b/application/src/translations/zhcn/services.ts index a94c175..4e9cc95 100644 --- a/application/src/translations/zhcn/services.ts +++ b/application/src/translations/zhcn/services.ts @@ -89,4 +89,10 @@ export const servicesTranslations: ServicesTranslations = { serviceNameRequired: "服务名称是必填项", urlDomainHostRequired: "URL/域名/主机名是必填项", enterValidUrlHostnameDomain: "请输入有效的URL、主机名或域名", + + // Dashboard + upServices: "在线服务", + downServices: "下线服务", + pausedServices: "暂停服务", + warningServices: "告警服务", }; \ No newline at end of file From 572c572c14f67bf272bd1a73094be35fdf05f9eb Mon Sep 17 00:00:00 2001 From: YiZixuan Date: Sun, 17 Aug 2025 23:22:08 +0800 Subject: [PATCH 14/46] refactor(i18n): improvements in Chinese translation --- application/src/translations/zhcn/maintenance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/translations/zhcn/maintenance.ts b/application/src/translations/zhcn/maintenance.ts index 7dd51bd..fa8f7c3 100644 --- a/application/src/translations/zhcn/maintenance.ts +++ b/application/src/translations/zhcn/maintenance.ts @@ -4,7 +4,7 @@ import { MaintenanceTranslations } from '../types/maintenance'; export const maintenanceTranslations: MaintenanceTranslations = { scheduledMaintenance: '计划维护', scheduledMaintenanceDesc: '查看和管理您系统和服务的计划维护窗口', - upcomingMaintenance: '即将', + upcomingMaintenance: '计划中', ongoingMaintenance: '进行中', completedMaintenance: '已完成', createMaintenanceWindow: '创建维护', From 98d33a609e019d66a79b0bae60c24756ce47a196 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 18:49:21 +0200 Subject: [PATCH 15/46] Update translations in maintenance.ts Added missing trranslations --- application/src/translations/en/maintenance.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/application/src/translations/en/maintenance.ts b/application/src/translations/en/maintenance.ts index c056eea..9586165 100644 --- a/application/src/translations/en/maintenance.ts +++ b/application/src/translations/en/maintenance.ts @@ -65,4 +65,6 @@ export const maintenanceTranslations: MaintenanceTranslations = { noScheduledMaintenance: 'No Scheduled Maintenance', noMaintenanceWindows: 'There are no maintenance windows for this period. Create one by clicking the "Create Maintenance" button.', maintenanceCreatedSuccess: 'Maintenance window created successfully', + editMaintenanceWindow: 'Edit Maintenance', + editMaintenanceDesc: '', }; From f6861345256a357fc1ac060d83ad7988b8eb4f4a Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 18:56:17 +0200 Subject: [PATCH 16/46] Added missing EN translations in incident.ts Added missing translations --- application/src/translations/en/incident.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application/src/translations/en/incident.ts b/application/src/translations/en/incident.ts index f7effaa..7a7943e 100644 --- a/application/src/translations/en/incident.ts +++ b/application/src/translations/en/incident.ts @@ -53,4 +53,12 @@ export const incidentTranslations: IncidentTranslations = { failedToUpdateStatus: 'Failed to update status', inProgress: 'In Progress', enterRootCause: 'Enter Root Cause', + enterIncidentTitle: 'Enter Incident Title', + enterIncidentDescription: 'Enter Incident Description', + enterServiceId: 'Enter Service-IDs seperated by comma', + selectAssignedUser: 'Select Assigned User', + noAssignedUser: 'Incident is currently not assigned to any user', + affectedSystems: 'Affected Systems', + enterAffectedSystems: 'Enter Affected Systems', + separateSystemsWithComma: 'Enter affected systems seperated by comma', }; From 8e013f0b0b65ba561fee9e395d15b9b499e3912f Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 19:04:20 +0200 Subject: [PATCH 17/46] Added missing EN translations to maintenance.ts Added missing translations --- application/src/translations/en/maintenance.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/application/src/translations/en/maintenance.ts b/application/src/translations/en/maintenance.ts index 9586165..4d8563f 100644 --- a/application/src/translations/en/maintenance.ts +++ b/application/src/translations/en/maintenance.ts @@ -66,5 +66,16 @@ export const maintenanceTranslations: MaintenanceTranslations = { noMaintenanceWindows: 'There are no maintenance windows for this period. Create one by clicking the "Create Maintenance" button.', maintenanceCreatedSuccess: 'Maintenance window created successfully', editMaintenanceWindow: 'Edit Maintenance', - editMaintenanceDesc: '', + editMaintenanceDesc: 'Edit maintenance details', + priorityDescription: 'Select maintenance priority', + statusDescription: 'Select maintenance status', + impactLevel: 'Impact Level', + impactLevelDescription: 'Select impact level', + selectAssignedUsers: 'Select Assigned Users', + assignedPersonnelDescription: 'Currently assigned users', + mutedNotifications: 'Notifications disabled', + notificationsAreMuted: 'Notifications are currently muted for this maintenance', + selectNotificationChannel: 'Add a notification channel', + enableNotificationsFirst: 'Enable notifications first to select channel', + updateMaintenance: 'Update Maintenance', }; From 046db61326d71e59a88a6a57561fd267390e2b8c Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:14:22 +0200 Subject: [PATCH 18/46] =?UTF-8?q?feat(i18n):=20=F0=9F=8C=90=20add=20missin?= =?UTF-8?q?g=20German=20translations=20for=20maintenance=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added the missing German translation keys to align with the English maintenance module. Now the German translation file is complete and feature-parity with English 🌟 --- application/src/translations/de/maintenance.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/application/src/translations/de/maintenance.ts b/application/src/translations/de/maintenance.ts index 0b7caf3..6e40b11 100644 --- a/application/src/translations/de/maintenance.ts +++ b/application/src/translations/de/maintenance.ts @@ -64,4 +64,17 @@ export const maintenanceTranslations: MaintenanceTranslations = { noScheduledMaintenance: 'Keine geplanten Wartungen', noMaintenanceWindows: 'Für diesen Zeitraum sind keine Wartungsfenster vorhanden. Erstellen Sie eines über die Schaltfläche „Wartung erstellen“.', maintenanceCreatedSuccess: 'Wartungsfenster erfolgreich erstellt', + editMaintenanceWindow: 'Wartung bearbeiten', + editMaintenanceDesc: 'Wartungsdetails bearbeiten', + priorityDescription: 'Wartungspriorität auswählen', + statusDescription: 'Wartungsstatus auswählen', + impactLevel: 'Auswirkungsgrad', + impactLevelDescription: 'Auswirkungsgrad auswählen', + selectAssignedUsers: 'Zugewiesene Benutzer auswählen', + assignedPersonnelDescription: 'Derzeit zugewiesene Benutzer', + mutedNotifications: 'Benachrichtigungen deaktiviert', + notificationsAreMuted: 'Benachrichtigungen sind für diese Wartung derzeit deaktiviert', + selectNotificationChannel: 'Benachrichtigungskanal hinzufügen', + enableNotificationsFirst: 'Aktivieren Sie zuerst Benachrichtigungen, um einen Kanal auszuwählen', + updateMaintenance: 'Wartung aktualisieren', }; From 98ec911281a38636196d1c6b4f10f1f7b8b01683 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:15:04 +0200 Subject: [PATCH 19/46] =?UTF-8?q?feat(i18n):=20=F0=9F=8C=90=20add=20missin?= =?UTF-8?q?g=20German=20translations=20for=20incident=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added the missing German translation keys to align with the English incident module: - enterIncidentTitle - enterIncidentDescription - enterServiceId - selectAssignedUser - noAssignedUser - affectedSystems - enterAffectedSystems - separateSystemsWithComma This ensures feature parity between the English and German translation files. --- application/src/translations/de/incident.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application/src/translations/de/incident.ts b/application/src/translations/de/incident.ts index bb83ba0..7fe6348 100644 --- a/application/src/translations/de/incident.ts +++ b/application/src/translations/de/incident.ts @@ -52,4 +52,12 @@ export const incidentTranslations: IncidentTranslations = { failedToUpdateStatus: 'Fehler beim Aktualisieren des Status', inProgress: 'In Bearbeitung', enterRootCause: 'Grundursache eingeben', + enterIncidentTitle: 'Vorfalltitel eingeben', + enterIncidentDescription: 'Vorfallbeschreibung eingeben', + enterServiceId: 'Service-IDs durch Komma getrennt eingeben', + selectAssignedUser: 'Zugewiesenen Benutzer auswählen', + noAssignedUser: 'Der Vorfall ist derzeit keinem Benutzer zugewiesen', + affectedSystems: 'Betroffene Systeme', + enterAffectedSystems: 'Betroffene Systeme eingeben', + separateSystemsWithComma: 'Betroffene Systeme durch Komma getrennt eingeben', }; From f866d36db42c14380811e2646605b336c1b48163 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:20:47 +0200 Subject: [PATCH 20/46] =?UTF-8?q?feat(i18n):=20=F0=9F=8C=90=20add=20missin?= =?UTF-8?q?g=20German=20translations=20for=20services=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added missing German translation keys to align with the English services module. Also imported section comments from the English file for better structure. Now the German translation file has full feature parity with English 🚀 --- application/src/translations/de/services.ts | 85 +++++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/application/src/translations/de/services.ts b/application/src/translations/de/services.ts index 424d57e..0117bec 100644 --- a/application/src/translations/de/services.ts +++ b/application/src/translations/de/services.ts @@ -1,11 +1,7 @@ - import { ServicesTranslations } from '../types/services'; export const servicesTranslations: ServicesTranslations = { -// Dienst-Tabelle - serviceName: "Dienstname", - serviceNameDesc: "Geben Sie einen aussagekräftigen Namen für Ihren Service ein", - serviceType: "Diensttyp", + // Service Table serviceStatus: "Dienststatus", responseTime: "Antwortzeit", uptime: "Betriebszeit", @@ -20,4 +16,83 @@ export const servicesTranslations: ServicesTranslations = { allTypes: "Alle Arten", createNewService: "Neuen Service hinzufügen", createNewServiceDesc: "Geben Sie detaillierte Informationen ein, um einen neuen zu erstellen, den Sie überwachen möchten.", + + // ServiceBasicFields.tsx + serviceName: "Dienstname", + serviceNameDesc: "Geben Sie einen aussagekräftigen Namen für Ihren Service ein", + + // ServiceConfigFields.tsx + checkInterval: "Prüfintervall", + seconds: "Sekunden", + minute: "Minute", + minutes: "Minuten", + hour: "Stunde", + hours: "Stunden", + custom: "Benutzerdefiniert", + checkIntervalPlaceholder: "Intervall in Sekunden eingeben", + backToPresets: "Zurück zu Voreinstellungen", + checkIntervalDesc: "Wie oft der Dienststatus überprüft werden soll", + checkIntervalDescCustom: "Benutzerdefiniertes Intervall in Sekunden eingeben (mindestens 10 Sekunden)", + retryAttempts: "Wiederholungsversuche", + attempt: "Versuch", + attempts: "Versuche", + retryAttemptsDesc: "Anzahl der Wiederholungsversuche, bevor der Dienst als ausgefallen markiert wird", + + // ServiceForm.tsx + updateService: "Dienst aktualisieren", + createService: "Dienst erstellen", + + // ServiceNotificationFields.tsx + enableNotifications: "Benachrichtigungen aktivieren", + enableNotificationsDesc: "Benachrichtigungen für diesen Dienst aktivieren oder deaktivieren", + notificationChannels: "Benachrichtigungskanäle", + notificationChannelsEnabledDesc: "Benachrichtigungskanäle für diesen Dienst auswählen", + notificationChannelsDesc: "Aktivieren Sie zuerst Benachrichtigungen, um Kanäle auszuwählen", + notificationChannelsPlaceholder: "Benachrichtigungskanal hinzufügen", + alertTemplate: "Alarmvorlage", + alertTemplateLoading: "Lade Vorlagen...", + alertTemplatePlaceholder: "Alarmvorlage auswählen", + alertTemplateEnabledDesc: "Wählen Sie eine Vorlage für Alarmmeldungen", + alertTemplateDesc: "Aktivieren Sie zuerst Benachrichtigungen, um eine Vorlage auszuwählen", + + // ServiceTypeField.tsx + serviceType: "Diensttyp", + serviceTypeHTTPDesc: "Webseiten und REST-APIs mit HTTP/HTTPS-Protokoll überwachen", + serviceTypePINGDesc: "Host-Verfügbarkeit mit PING-Protokoll überwachen", + serviceTypeTCPDesc: "TCP-Port-Konnektivität mit TCP-Protokoll überwachen", + serviceTypeDNSDesc: "DNS-Auflösung überwachen", + + // ServiceRegionalFields.tsx + regionalMonitoring: "Regionale Überwachung", + regionalMonitoringDesc: "Diesen Dienst regionalen Überwachungsagenten für verteilte Überwachung zuweisen", + regionalAgents: "Regionale Agenten", + regionalAgentsLoading: "Lade Agenten...", + regionalAgentsAvailablePlaceholder: "Zusätzliche regionale Agenten auswählen...", + regionalAgentsAllSelected: "Alle verfügbaren Agenten ausgewählt", + regionalAgentsNoAvailable: "Keine regionalen Agenten verfügbar", + regionalAgentsNoOnlineAvailable: "Keine regionalen Agenten online verfügbar", + regionalAgentsNotFoundMessage: "Keine regionalen Online-Agenten gefunden. Dienste verwenden die Standardüberwachung.", + regionalAgentsNotSelectedMessage: "Keine regionalen Agenten ausgewählt. Der Dienst verwendet die Standardüberwachung.", + + // ServiceUrlField.tsx + targetDefault: "Ziel-URL/Host", + targetDNS: "Domainname", + targetHTTPDesc: "Geben Sie die vollständige URL inklusive Protokoll ein (http:// oder https://)", + targetPINGDesc: "Geben Sie den Hostnamen oder die IP-Adresse zum Pingen ein", + targetTCPDesc: "Geben Sie Hostname oder IP-Adresse für TCP-Verbindungstest ein", + targetTCPPortDesc: "Geben Sie die Portnummer für den TCP-Verbindungstest ein", + targetDNSDesc: "Domainnamen für DNS-Überwachung eingeben (A, AAAA, MX, etc.)", + targetDefaultDesc: "Geben Sie die Ziel-URL oder den Hostnamen für die Überwachung ein", + targetDefaultPlaceholder: "URL oder Hostname eingeben", + + // types.ts + serviceNameRequired: "Dienstname ist erforderlich", + urlDomainHostRequired: "URL/Domain/Host ist erforderlich", + enterValidUrlHostnameDomain: "Bitte eine gültige URL, einen Hostnamen oder eine Domain eingeben", + + // Dashboard + upServices: "DIENSTE ONLINE", + downServices: "DIENSTE OFFLINE", + pausedServices: "DIENSTE PAUSIERT", + warningServices: "DIENSTE MIT WARNUNG", }; From a1a8a8443e7ca4159dbcc48a45fd6f83a1498d86 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 21:26:11 +0200 Subject: [PATCH 21/46] =?UTF-8?q?feat(i18n):=20=F0=9F=8C=90=20add=20missin?= =?UTF-8?q?g=20German=20translations=20for=20settings=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added missing German translation keys to align with the English settings module: - addUser - permissionNotice - permissionNoticeAddUser - loadingSettings - loadingSettingsError Ensured all existing German translations remain unchanged. 🚀 --- application/src/translations/de/settings.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/application/src/translations/de/settings.ts b/application/src/translations/de/settings.ts index 465087a..1e46f50 100644 --- a/application/src/translations/de/settings.ts +++ b/application/src/translations/de/settings.ts @@ -23,7 +23,7 @@ export const settingsTranslations: SettingsTranslations = { enableTLS: "TLS aktivieren", localName: "Lokaler Name", - // Test Email + // Test Email testEmail: "Test Email", sendTestEmail: "Send test email", emailTemplate: "Email template", @@ -47,5 +47,12 @@ export const settingsTranslations: SettingsTranslations = { testConnection: "Verbindung testen", testingConnection: "Verbindung wird getestet...", connectionSuccess: "Verbindung erfolgreich", - connectionFailed: "Verbindung fehlgeschlagen" + connectionFailed: "Verbindung fehlgeschlagen", + + // Ergänzte fehlende Einträge + addUser: "Benutzer hinzufügen", + permissionNotice: "Berechtigungshinweis:", + permissionNoticeAddUser: "Als Admin-Benutzer haben Sie keinen Zugriff auf die Anzeige oder Änderung von System- und E-Mail-Einstellungen. Diese Einstellungen können nur von Super-Admins aufgerufen und geändert werden. Wenden Sie sich an Ihren Super-Admin, wenn Sie Änderungen an der Systemkonfiguration oder den E-Mail-Einstellungen vornehmen müssen.", + loadingSettings: "Einstellungen werden geladen...", + loadingSettingsError: "Fehler beim Laden der Einstellungen", }; From c39296cee64d33a0ab9c7a6ea8f2139afea1bf64 Mon Sep 17 00:00:00 2001 From: taking Date: Tue, 19 Aug 2025 14:53:51 +0900 Subject: [PATCH 22/46] feat(i18n): Add Korean translations and update types - Added Korean (ko) translations for all modules (incident, login, maintenance, menu, service, settings, ssl) - Added previously empty strings in `application/src/translations/types` - Followed existing style and naming conventions --- application/src/translations/ko/about.ts | 18 +++ application/src/translations/ko/common.ts | 31 +++++ application/src/translations/ko/incident.ts | 64 ++++++++++ application/src/translations/ko/index.ts | 25 ++++ application/src/translations/ko/login.ts | 23 ++++ .../src/translations/ko/maintenance.ts | 81 ++++++++++++ application/src/translations/ko/menu.ts | 21 ++++ application/src/translations/ko/services.ts | 89 +++++++++++++ application/src/translations/ko/settings.ts | 59 +++++++++ application/src/translations/ko/ssl.ts | 117 ++++++++++++++++++ application/src/translations/types/common.ts | 1 + .../src/translations/types/incident.ts | 8 ++ .../src/translations/types/maintenance.ts | 13 ++ .../src/translations/types/services.ts | 3 +- 14 files changed, 552 insertions(+), 1 deletion(-) create mode 100644 application/src/translations/ko/about.ts create mode 100644 application/src/translations/ko/common.ts create mode 100644 application/src/translations/ko/incident.ts create mode 100644 application/src/translations/ko/index.ts create mode 100644 application/src/translations/ko/login.ts create mode 100644 application/src/translations/ko/maintenance.ts create mode 100644 application/src/translations/ko/menu.ts create mode 100644 application/src/translations/ko/services.ts create mode 100644 application/src/translations/ko/settings.ts create mode 100644 application/src/translations/ko/ssl.ts diff --git a/application/src/translations/ko/about.ts b/application/src/translations/ko/about.ts new file mode 100644 index 0000000..e0d6ad6 --- /dev/null +++ b/application/src/translations/ko/about.ts @@ -0,0 +1,18 @@ +import { AboutTranslations } from '../types/about'; + +export const aboutTranslations: AboutTranslations = { + aboutCheckCle: "About Checkcle", + systemDescription: "Checkcle는 서버 및 서비스 상태, 사고 관리, 운영 투명성에 대한 실시간 인사이트를 제공하는 오픈소스 모니터링 스택입니다. MIT 라이선스로 공개됨.", + systemVersion: "시스템 버전", + license: "라이선스", + mitLicense: "MIT 라이선스", + links: "링크", + viewOnGithub: "GitHub에서 보기", + viewDocumentation: "문서 보기", + followOnX: "X에서 팔로우", + joinDiscord: "Discord 참여", + quickActions: "빠른 작업", + quickActionsDescription: "자주 사용하는 모니터링 작업과 기능에 빠르게 접근하세요. 아래에서 작업을 선택하여 시작할 수 있습니다.", + quickTips: "빠른 팁", + releasedOn: "출시일", +}; diff --git a/application/src/translations/ko/common.ts b/application/src/translations/ko/common.ts new file mode 100644 index 0000000..fd08a0c --- /dev/null +++ b/application/src/translations/ko/common.ts @@ -0,0 +1,31 @@ +import { CommonTranslations } from '../types/common'; + +export const commonTranslations: CommonTranslations = { + welcome: "환영합니다", + logout: "로그아웃", + language: "언어", + english: "Englisch", + khmer: "ភាសាខ្មែរ", + german: "Deutsch", + korean: "한국어", + japanese: "日本語", + simplifiedChinese: "简体中文", + goodMorning: "좋은 아침입니다", + goodAfternoon: "좋은 오후입니다", + goodEvening: "좋은 저녁입니다", + profile: "프로필", + settings: "설정", + documentation: "문서", + notifications: "알림", + close: "닫기", + cancel: "취소", + view: "보기", + edit: "편집", + delete: "삭제", + status: "상태", + time: "시간", + title: "제목", + description: "설명", + success: "성공", + error: "오류", +}; diff --git a/application/src/translations/ko/incident.ts b/application/src/translations/ko/incident.ts new file mode 100644 index 0000000..e43ffaf --- /dev/null +++ b/application/src/translations/ko/incident.ts @@ -0,0 +1,64 @@ + +import { IncidentTranslations } from '../types/incident'; + +export const incidentTranslations: IncidentTranslations = { + incidentManagement: '인시던트 관리', + incidentsManagementDesc: '서비스 인시던트 및 해결 과정을 추적하고 관리합니다', + unresolvedIncidents: '미해결', + resolvedIncidents: '해결됨', + activeIncidents: '활성 인시던트', + criticalIssues: '중대한 문제', + avgResolutionTime: '평균 해결 시간', + noIncidents: '활성 인시던트 없음', + createIncident: '인시던트 생성', + investigating: '조사 중', + identified: '확인됨', + monitoring: '모니터링 중', + resolved: '해결됨', + scheduleIncidentManagement: '일정 및 인시던트 관리', + incidentName: '인시던트 이름', + incidentStatus: '인시던트 상태', + highPriority: '높은 우선순위', + configurationSettings: '구성 설정', + incidentCreatedSuccess: '인시던트가 성공적으로 생성되었습니다', + basicInfo: '기본 정보', + serviceId: '서비스 ID', + assignedTo: '담당자', + unassigned: '미할당', + timeline: '타임라인', + incidentTime: '인시던트 발생 시간', + resolutionTime: '해결 시간', + systems: '시스템', + noSystems: '영향을 받은 시스템 없음', + impactAnalysis: '영향 분석', + rootCause: '근본 원인', + resolutionSteps: '해결 단계', + lessonsLearned: '교훈', + resolutionDetails: '해결 상세', + assignment: '할당', + download: '다운로드', + downloadPdf: 'PDF 다운로드', + print: '인쇄', + confidentialNote: '이 문서는 기밀이며 내부 용도로만 사용됩니다.', + generatedOn: '생성일', + enterResolutionSteps: '인시던트 해결 단계 입력', + enterLessonsLearned: '인시던트 교훈 입력', + editIncident: '인시던트 편집', + editIncidentDesc: '인시던트 세부 정보 업데이트', + updating: '업데이트 중...', + update: '업데이트', + create: '생성', + creating: '생성 중...', + configuration: '구성', + failedToUpdateStatus: '상태 업데이트 실패', + inProgress: '진행 중', + enterRootCause: '근본 원인 입력', + enterIncidentTitle: '인시던트 제목 입력', + enterIncidentDescription: '인시던트 설명 입력', + enterServiceId: '서비스 ID를 콤마로 구분하여 입력', + selectAssignedUser: '담당자 선택', + noAssignedUser: '현재 인시던트에 할당된 사용자가 없습니다', + affectedSystems: '영향을 받은 시스템', + enterAffectedSystems: '영향을 받은 시스템 입력', + separateSystemsWithComma: '영향 시스템을 콤마로 구분하여 입력', +}; diff --git a/application/src/translations/ko/index.ts b/application/src/translations/ko/index.ts new file mode 100644 index 0000000..e282607 --- /dev/null +++ b/application/src/translations/ko/index.ts @@ -0,0 +1,25 @@ + +import { Translations } from '../types'; +import { commonTranslations } from './common'; +import { menuTranslations } from './menu'; +import { loginTranslations } from './login'; +import { aboutTranslations } from './about'; +import { servicesTranslations } from './services'; +import { maintenanceTranslations } from './maintenance'; +import { incidentTranslations } from './incident'; +import { sslTranslations } from './ssl'; +import { settingsTranslations } from './settings'; + +const enTranslations: Translations = { + common: commonTranslations, + menu: menuTranslations, + login: loginTranslations, + about: aboutTranslations, + services: servicesTranslations, + maintenance: maintenanceTranslations, + incident: incidentTranslations, + ssl: sslTranslations, + settings: settingsTranslations +}; + +export default enTranslations; \ No newline at end of file diff --git a/application/src/translations/ko/login.ts b/application/src/translations/ko/login.ts new file mode 100644 index 0000000..530787b --- /dev/null +++ b/application/src/translations/ko/login.ts @@ -0,0 +1,23 @@ + +import { LoginTranslations } from '../types/login'; + +export const loginTranslations: LoginTranslations = { + signInToYourAccount: "계정 로그인", + dontHaveAccount: "계정이 없으신가요?", + createOne: "계정 생성", + signInWithGoogle: "Google로 로그인", + orContinueWith: "또는", + email: "이메일", + password: "비밀번호", + forgot: "잊으셨나요?", + signIn: "로그인", + signingIn: "로그인 중...", + loginSuccessful: "로그인 성공", + loginSuccessMessage: "성공적으로 로그인되었습니다.", + loginFailed: "로그인 실패", + authenticationFailed: "인증 실패", + bySigningIn: "로그인하면 다음에 동의하게 됩니다:", + termsAndConditions: "이용약관", + and: "및", + privacyPolicy: "개인정보 처리방침", +}; diff --git a/application/src/translations/ko/maintenance.ts b/application/src/translations/ko/maintenance.ts new file mode 100644 index 0000000..9b4eb4c --- /dev/null +++ b/application/src/translations/ko/maintenance.ts @@ -0,0 +1,81 @@ + +import { MaintenanceTranslations } from '../types/maintenance'; + +export const maintenanceTranslations: MaintenanceTranslations = { + scheduledMaintenance: '예정된 유지보수', + scheduledMaintenanceDesc: '시스템 및 서비스에 계획된 유지보수 일정을 보고 관리합니다', + upcomingMaintenance: '예정', + ongoingMaintenance: '진행 중', + completedMaintenance: '완료됨', + createMaintenanceWindow: '유지보수 생성', + totalScheduledHours: '총 예정 시간', + maintenanceName: '유지보수 이름', + maintenanceStatus: '상태', + scheduledStart: '예정 시작', + scheduledEnd: '예정 종료', + affectedServices: '영향받는 서비스', + impact: '영향', + minor: '경미', + major: '중대', + critical: '심각', + none: '없음', + actions: '작업', + scheduled: '예정됨', + inprogress: '진행 중', + completed: '완료됨', + cancelled: '취소됨', + markAsInProgress: '진행 중으로 표시', + markAsCompleted: '완료로 표시', + markAsCancelled: '취소로 표시', + confirmDelete: '삭제 확인', + deleteMaintenanceConfirmation: '이 유지보수 일정을 삭제하시겠습니까?', + thisActionCannotBeUndone: '이 작업은 되돌릴 수 없습니다.', + maintenanceDeleted: '유지보수 삭제됨', + maintenanceDeletedDesc: '유지보수 일정이 성공적으로 삭제되었습니다.', + errorDeletingMaintenance: '유지보수 삭제 중 오류가 발생했습니다.', + statusUpdated: '상태 업데이트됨', + maintenanceStatusUpdated: '유지보수 상태가 성공적으로 업데이트되었습니다.', + errorUpdatingMaintenanceStatus: '유지보수 상태 업데이트 중 오류가 발생했습니다.', + createMaintenance: '유지보수 생성', + createMaintenanceDesc: '서비스를 위한 새 유지보수 일정을 예약합니다', + enterTitle: '유지보수 제목 입력', + enterDescription: '유지보수 상세 설명 입력', + startTime: '시작 시간', + endTime: '종료 시간', + selectDate: '날짜 선택', + enterAffectedServices: '영향받는 서비스 입력', + separateServicesWithComma: '여러 서비스를 콤마로 구분하여 입력', + priority: '우선순위', + selectPriority: '우선순위 선택', + selectStatus: '상태 선택', + selectImpact: '영향 선택', + notifySubscribers: '구독자에게 알림', + notifySubscribersDesc: '유지보수 시작 시 모든 구독자에게 알림 전송', + maintenanceCreated: '유지보수 생성됨', + maintenanceCreatedDesc: '유지보수 일정이 성공적으로 예약되었습니다.', + errorCreatingMaintenance: '유지보수 생성 중 오류 발생', + errorFetchingMaintenanceData: '유지보수 데이터 가져오기 중 오류 발생', + low: '낮음', + medium: '중간', + high: '높음', + created: '생성됨', + lastUpdated: '마지막 업데이트', + subscribersWillBeNotified: '유지보수가 시작되면 구독자에게 알림이 전송됩니다', + noNotifications: '알림이 전송되지 않습니다', + noScheduledMaintenance: '예정된 유지보수 없음', + noMaintenanceWindows: '이 기간에 유지보수 일정이 없습니다. "유지보수 생성" 버튼을 클릭하여 새 일정을 생성하세요.', + maintenanceCreatedSuccess: '유지보수 일정이 성공적으로 생성되었습니다', + editMaintenanceWindow: '유지보수 편집', + editMaintenanceDesc: '유지보수 세부정보 편집', + priorityDescription: '유지보수 우선순위 선택', + statusDescription: '유지보수 상태 선택', + impactLevel: '영향 수준', + impactLevelDescription: '영향 수준 선택', + selectAssignedUsers: '담당 사용자 선택', + assignedPersonnelDescription: '현재 할당된 사용자', + mutedNotifications: '알림 비활성화됨', + notificationsAreMuted: '현재 유지보수 알림이 비활성화되어 있습니다', + selectNotificationChannel: '알림 채널 추가', + enableNotificationsFirst: '채널을 선택하려면 먼저 알림을 활성화하세요', + updateMaintenance: '유지보수 업데이트', +}; diff --git a/application/src/translations/ko/menu.ts b/application/src/translations/ko/menu.ts new file mode 100644 index 0000000..a29c5b0 --- /dev/null +++ b/application/src/translations/ko/menu.ts @@ -0,0 +1,21 @@ + +import { MenuTranslations } from '../types/menu'; + +export const menuTranslations: MenuTranslations = { + uptimeMonitoring: "가동 시간 모니터링", + instanceMonitoring: "인스턴스 모니터링", + sslDomain: "SSL & 도메인", + scheduleIncident: "일정 및 인시던트", + operationalPage: "운영 페이지", + reports: "리포트", + regionalMonitoring: "지역 모니터링", + settingPanel: "설정 패널", + generalSettings: "일반 설정", + userManagement: "사용자 관리", + notificationSettings: "알림 설정", + alertsTemplates: "알림 템플릿", + rolesManagement: "권한 관리", + dataRetention: "데이터 보존", + backupSettings: "백업 설정", + aboutSystem: "시스템 정보", +}; diff --git a/application/src/translations/ko/services.ts b/application/src/translations/ko/services.ts new file mode 100644 index 0000000..a9b3fa7 --- /dev/null +++ b/application/src/translations/ko/services.ts @@ -0,0 +1,89 @@ + +import { ServicesTranslations } from '../types/services'; + +export const servicesTranslations: ServicesTranslations = { + serviceStatus: "서비스 상태", + responseTime: "응답 시간", + uptime: "가동 시간", + lastChecked: "마지막 확인", + noServices: "필터 조건에 맞는 서비스가 없습니다.", + currentlyMonitoring: "현재 모니터링 중", + retry: "재시도", + overview: "개요", + newService: "새 서비스", + rowsPerPage: "페이지당 행", + search: "검색", + allTypes: "모든 유형", + createNewService: "새 서비스 생성", + createNewServiceDesc: "모니터링할 새 서비스의 세부 정보를 입력하세요.", + + serviceName: "서비스 이름", + serviceNameDesc: "서비스에 대한 설명적인 이름을 입력하세요", + + checkInterval: "체크 간격", + seconds: "초", + minute: "분", + minutes: "분", + hour: "시간", + hours: "시간", + custom: "사용자 정의", + checkIntervalPlaceholder: "초 단위로 간격 입력", + backToPresets: "기본값으로 돌아가기", + checkIntervalDesc: "서비스 상태를 확인하는 간격", + checkIntervalDescCustom: "사용자 정의 간격 입력 (최소 10초)", + retryAttempts: "재시도 횟수", + attempt: "회", + attempts: "회", + retryAttemptsDesc: "서비스 다운으로 표시되기 전 재시도 횟수", + + updateService: "서비스 업데이트", + createService: "서비스 생성", + + enableNotifications: "알림 활성화", + enableNotificationsDesc: "서비스 알림을 활성화하거나 비활성화합니다", + notificationChannels: "알림 채널", + notificationChannelsEnabledDesc: "서비스 알림 채널 선택", + notificationChannelsDesc: "채널을 선택하려면 먼저 알림을 활성화하세요", + notificationChannelsPlaceholder: "알림 채널 추가", + alertTemplate: "알림 템플릿", + alertTemplateLoading: "템플릿 로딩 중...", + alertTemplatePlaceholder: "알림 템플릿 선택", + alertTemplateEnabledDesc: "알림 메시지용 템플릿 선택", + alertTemplateDesc: "템플릿 선택 전 알림을 활성화하세요", + + serviceType: "서비스 유형", + serviceTypeHTTPDesc: "HTTP/HTTPS 프로토콜로 웹사이트 및 REST API 모니터링", + serviceTypePINGDesc: "PING 프로토콜로 호스트 가용성 모니터링", + serviceTypeTCPDesc: "TCP 프로토콜로 TCP 포트 연결 상태 모니터링", + serviceTypeDNSDesc: "DNS 해석 모니터링", + + regionalMonitoring: "지역 모니터링", + regionalMonitoringDesc: "이 서비스를 지역 모니터링 에이전트에 할당하여 분산 모니터링", + regionalAgents: "지역 에이전트", + regionalAgentsLoading: "에이전트 로딩 중...", + regionalAgentsAvailablePlaceholder: "추가 지역 에이전트 선택...", + regionalAgentsAllSelected: "모든 사용 가능한 에이전트 선택됨", + regionalAgentsNoAvailable: "사용 가능한 지역 에이전트 없음", + regionalAgentsNoOnlineAvailable: "온라인 지역 에이전트 없음", + regionalAgentsNotFoundMessage: "온라인 지역 에이전트 없음. 기본 모니터링 사용", + regionalAgentsNotSelectedMessage: "지역 에이전트 선택 안됨. 기본 모니터링 사용", + + targetDefault: "대상 URL/호스트", + targetDNS: "도메인 이름", + targetHTTPDesc: "프로토콜 포함 전체 URL 입력 (http:// 또는 https://)", + targetPINGDesc: "호스트 이름 또는 IP 주소 입력", + targetTCPDesc: "TCP 연결 테스트용 호스트 이름 또는 IP 입력", + targetTCPPortDesc: "TCP 연결 테스트용 포트 번호 입력", + targetDNSDesc: "DNS 레코드 모니터링용 도메인 이름 입력 (A, AAAA, MX 등)", + targetDefaultDesc: "모니터링 대상 URL 또는 호스트 이름 입력", + targetDefaultPlaceholder: "URL 또는 호스트 이름 입력", + + serviceNameRequired: "서비스 이름은 필수입니다", + urlDomainHostRequired: "URL/도메인/호스트는 필수입니다", + enterValidUrlHostnameDomain: "유효한 URL, 호스트 이름 또는 도메인을 입력하세요", + + upServices: "가동 서비스", + downServices: "다운 서비스", + pausedServices: "일시정지 서비스", + warningServices: "경고 서비스", +}; diff --git a/application/src/translations/ko/settings.ts b/application/src/translations/ko/settings.ts new file mode 100644 index 0000000..c8f2fd4 --- /dev/null +++ b/application/src/translations/ko/settings.ts @@ -0,0 +1,59 @@ + +import { SettingsTranslations } from '../types/settings'; + +export const settingsTranslations: SettingsTranslations = { + // General Settings - Tabs + systemSettings: "시스템 설정", + mailSettings: "메일 설정", + + // General Settings - System Settings + appName: "앱 이름", + appURL: "앱 URL", + senderName: "발신자 이름", + senderEmail: "발신자 이메일 주소", + hideControls: "컨트롤 숨기기", + + // General Settings - Mail Settings + smtpSettings: "SMTP 구성", + smtpEnabled: "SMTP 활성화", + smtpHost: "SMTP 호스트", + smtpPort: "SMTP 포트", + smtpUsername: "SMTP 사용자 이름", + smtpPassword: "SMTP 비밀번호", + smtpAuthMethod: "인증 방법", + enableTLS: "TLS 활성화", + localName: "로컬 이름", + + // General Settings - Test Email + testEmail: "테스트 이메일", + sendTestEmail: "테스트 이메일 전송", + emailTemplate: "이메일 템플릿", + verification: "검증", + passwordReset: "비밀번호 재설정", + confirmEmailChange: "이메일 변경 확인", + otp: "OTP", + loginAlert: "로그인 알림", + authCollection: "인증 컬렉션", + selectCollection: "컬렉션 선택", + toEmailAddress: "받는 이메일", + enterEmailAddress: "이메일 주소 입력", + sending: "전송 중...", + + // General Settings - Actions and status + save: "변경 사항 저장", + saving: "저장 중...", + settingsUpdated: "설정이 성공적으로 업데이트되었습니다", + errorSavingSettings: "설정 저장 중 오류 발생", + errorFetchingSettings: "설정 불러오기 중 오류 발생", + testConnection: "연결 테스트", + testingConnection: "연결 테스트 중...", + connectionSuccess: "연결 성공", + connectionFailed: "연결 실패", + + // User Management + addUser: "사용자 추가", + permissionNotice: "권한 안내:", + permissionNoticeAddUser: "관리자 계정은 시스템 및 메일 설정을 확인하거나 변경할 수 없습니다. 이 설정은 슈퍼 관리자만 접근 및 수정할 수 있습니다. 시스템 구성 또는 메일 설정 변경이 필요하면 슈퍼 관리자에게 문의하세요.", + loadingSettings: "설정 로딩 중...", + loadingSettingsError: "설정 로딩 중 오류 발생", +}; \ No newline at end of file diff --git a/application/src/translations/ko/ssl.ts b/application/src/translations/ko/ssl.ts new file mode 100644 index 0000000..d08add2 --- /dev/null +++ b/application/src/translations/ko/ssl.ts @@ -0,0 +1,117 @@ + +import { SSLTranslations } from '../types/ssl'; + +export const sslTranslations: SSLTranslations = { + // Page and section titles + sslDomainManagement: "SSL & 도메인 관리", + monitorSSLCertificates: "도메인의 SSL 인증서를 모니터링하고 관리", + addSSLCertificate: "SSL 인증서 추가", + editSSLCertificate: "SSL 인증서 편집", + deleteSSLCertificate: "SSL 인증서 삭제", + sslCertificateDetails: "SSL 인증서 상세", + detailedInfo: "상세 정보", + viewDetailedInformation: "상세 정보 보기", + + // Status related + valid: "유효", + expiringSoon: "곧 만료", + expired: "만료됨", + pending: "대기 중", + + // Statistics and cards + validCertificates: "유효 인증서", + expiringSoonCertificates: "곧 만료 인증서", + expiredCertificates: "만료 인증서", + + // Form fields + domain: "도메인", + domainName: "도메인 이름", + domainCannotChange: "생성 후 도메인은 변경할 수 없습니다", + warningThreshold: "경고 임계값", + warningThresholdDays: "경고 임계값(일)", + expiryThreshold: "만료 임계값", + expiryThresholdDays: "만료 임계값(일)", + notificationChannel: "알림 채널", + chooseChannel: "알림 채널 선택", + whereToSend: "알림 전송 위치", + daysBeforeExpiration: "만료 전 경고 받을 일수", + daysBeforeCritical: "만료 임박 시 알림 받을 일수", + getNotifiedExpiration: "인증서 만료 시 알림 받기", + getNotifiedCritical: "인증서 임박 시 알림 받기", + + // Table headers and fields + issuer: "발급자", + expirationDate: "만료일", + daysLeft: "남은 일수", + status: "상태", + lastNotified: "마지막 알림", + actions: "작업", + validFrom: "유효 시작", + validUntil: "유효 종료", + validityDays: "유효 일수", + validityPeriod: "유효 기간", + organization: "조직", + commonName: "공통 이름", + serialNumber: "일련번호", + algorithm: "알고리즘", + subjectAltNames: "대체 이름", + subjectAlternativeNames: "대체 이름", + resolvedIP: "해결된 IP", + issuedTo: "발급 대상", + days: "일", + + // Buttons and actions + addDomain: "도메인 추가", + refreshAll: "모두 새로고침", + cancel: "취소", + addCertificate: "인증서 추가", + check: "확인", + view: "보기", + edit: "편집", + delete: "삭제", + close: "닫기", + saveChanges: "변경 사항 저장", + updating: "업데이트 중", + + // Sections in detail view + basicInformation: "기본 정보", + validity: "유효성", + issuerInfo: "발급자 정보", + technicalDetails: "기술 세부정보", + technicalInformation: "기술 정보", + monitoringConfig: "모니터링 구성", + monitoringConfiguration: "모니터링 구성", + recordInfo: "레코드 정보", + certificateDetails: "인증서 상세", + + // Notifications and messages + sslCertificateAdded: "SSL 인증서가 성공적으로 추가되었습니다", + sslCertificateUpdated: "SSL 인증서가 성공적으로 업데이트되었습니다", + sslCertificateDeleted: "SSL 인증서가 성공적으로 삭제되었습니다", + sslCertificateRefreshed: "{domain}의 SSL 인증서가 성공적으로 갱신되었습니다", + allCertificatesRefreshed: "총 {count}개의 인증서가 성공적으로 갱신되었습니다", + someCertificatesFailed: "{success}개의 인증서 갱신 성공, {failed}개 실패", + failedToAddCertificate: "SSL 인증서 추가 실패", + failedToLoadCertificates: "SSL 인증서 불러오기 실패", + failedToUpdateCertificate: "SSL 인증서 업데이트 실패", + failedToDeleteCertificate: "SSL 인증서 삭제 실패", + failedToCheckCertificate: "SSL 인증서 확인 실패", + noCertificatesToRefresh: "갱신할 인증서 없음", + startingRefreshAll: "{count}개의 인증서 갱신 시작", + checkingSSLCertificate: "SSL 인증서 확인 중...", + deleteConfirmation: "인증서를 삭제하시겠습니까?", + deleteWarning: "이 작업은 되돌릴 수 없으며 인증서를 영구적으로 삭제합니다.", + + // Misc + unknown: "알 수 없음", + never: "없음", + none: "없음", + loadingChannels: "채널 로딩 중...", + noChannelsFound: "알림 채널 없음", + noSSLCertificates: "SSL 인증서 없음", + created: "생성됨", + lastUpdated: "마지막 업데이트", + lastNotification: "마지막 알림", + collectionId: "컬렉션 ID", + noCertificatesFound: "인증서 없음", +}; diff --git a/application/src/translations/types/common.ts b/application/src/translations/types/common.ts index 275651b..5324bce 100644 --- a/application/src/translations/types/common.ts +++ b/application/src/translations/types/common.ts @@ -6,6 +6,7 @@ export interface CommonTranslations { english: string; khmer: string; german: string; + korean: string; japanese: string; simplifiedChinese: string; goodMorning: string; diff --git a/application/src/translations/types/incident.ts b/application/src/translations/types/incident.ts index 762338e..4ad5ccf 100644 --- a/application/src/translations/types/incident.ts +++ b/application/src/translations/types/incident.ts @@ -51,4 +51,12 @@ export interface IncidentTranslations { failedToUpdateStatus: string; inProgress: string; enterRootCause: string; + enterIncidentTitle: string; + enterIncidentDescription: string; + enterServiceId: string; + selectAssignedUser: string; + noAssignedUser: string; + affectedSystems: string; + enterAffectedSystems: string; + separateSystemsWithComma: string; } diff --git a/application/src/translations/types/maintenance.ts b/application/src/translations/types/maintenance.ts index 7170349..4189301 100644 --- a/application/src/translations/types/maintenance.ts +++ b/application/src/translations/types/maintenance.ts @@ -63,4 +63,17 @@ export interface MaintenanceTranslations { noScheduledMaintenance: string; noMaintenanceWindows: string; maintenanceCreatedSuccess: string; + editMaintenanceWindow: string; + editMaintenanceDesc: string; + priorityDescription: string; + statusDescription: string; + impactLevel: string; + impactLevelDescription: string; + selectAssignedUsers: string; + assignedPersonnelDescription: string; + mutedNotifications: string; + notificationsAreMuted: string; + selectNotificationChannel: string; + enableNotificationsFirst: string; + updateMaintenance: string; } diff --git a/application/src/translations/types/services.ts b/application/src/translations/types/services.ts index 63bd1bd..bd9e7a9 100644 --- a/application/src/translations/types/services.ts +++ b/application/src/translations/types/services.ts @@ -69,6 +69,7 @@ export interface ServicesTranslations { regionalAgentsAvailablePlaceholder: string; regionalAgentsAllSelected: string; regionalAgentsNoAvailable: string; + regionalAgentsNoOnlineAvailable: string; regionalAgentsNotFoundMessage: string; regionalAgentsNotSelectedMessage: string; @@ -92,5 +93,5 @@ export interface ServicesTranslations { upServices: string; downServices: string; pausedServices: string; - warningServices: string; + warningServices: string; } From 7f1dfcdd42f27a5255330569e2503ff0bfd8168a Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 20 Aug 2025 22:52:46 +0900 Subject: [PATCH 23/46] feat(i18n): Add translation fields for de, en, ja, km, zhcn - Update translation index to support Korean `application/src/translation/index.ts` - Update translation indexes `application/src/translation/{de,en,ja,km,zhcn}/index.ts` - Update dropdown menu item in dashboard header `application/src/components/dashboard/Header.tsx` --- application/src/components/dashboard/Header.tsx | 3 +++ application/src/translations/de/common.ts | 1 + application/src/translations/en/common.ts | 1 + application/src/translations/index.ts | 4 +++- application/src/translations/ja/common.ts | 1 + application/src/translations/km/common.ts | 1 + application/src/translations/zhcn/common.ts | 1 + 7 files changed, 11 insertions(+), 1 deletion(-) diff --git a/application/src/components/dashboard/Header.tsx b/application/src/components/dashboard/Header.tsx index ed5b542..d0db992 100644 --- a/application/src/components/dashboard/Header.tsx +++ b/application/src/components/dashboard/Header.tsx @@ -116,6 +116,9 @@ export const Header = ({ setLanguage("de")} className={language === "de" ? "bg-accent" : ""}> {t("Deutsch")} + setLanguage("ko")} className={language === "ko" ? "bg-accent" : ""}> + {t("korean")} + setLanguage("ja")} className={language === "ja" ? "bg-accent" : ""}> {t("japanese")} diff --git a/application/src/translations/de/common.ts b/application/src/translations/de/common.ts index 5d439c2..0b2f409 100644 --- a/application/src/translations/de/common.ts +++ b/application/src/translations/de/common.ts @@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = { english: "Englisch", khmer: "ភាសាខ្មែរ", german: "Deutsch", + korean: "한국어", japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "Guten Morgen", diff --git a/application/src/translations/en/common.ts b/application/src/translations/en/common.ts index 7033ff1..abda24b 100644 --- a/application/src/translations/en/common.ts +++ b/application/src/translations/en/common.ts @@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = { english: "Englisch", khmer: "ភាសាខ្មែរ", german: "Deutsch", + korean: "한국어", japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "Good morning", diff --git a/application/src/translations/index.ts b/application/src/translations/index.ts index fdd550e..8dd3223 100644 --- a/application/src/translations/index.ts +++ b/application/src/translations/index.ts @@ -1,15 +1,17 @@ import enTranslations from './en'; import kmTranslations from './km'; import deTranslations from './de'; +import koTranslations from './ko'; import jaTranslations from './ja'; import zhcnTranslations from './zhcn'; -export type Language = "en" | "km" | "de" | "ja" | "zhcn"; +export type Language = "en" | "km" | "de" | "ko" | "ja" | "zhcn"; export const translations = { en: enTranslations, km: kmTranslations, de: deTranslations, + ko: koTranslations, ja: jaTranslations, zhcn: zhcnTranslations, }; diff --git a/application/src/translations/ja/common.ts b/application/src/translations/ja/common.ts index f53f178..e59de9b 100644 --- a/application/src/translations/ja/common.ts +++ b/application/src/translations/ja/common.ts @@ -7,6 +7,7 @@ export const commonTranslations: CommonTranslations = { english: "Englisch", khmer: "ភាសាខ្មែរ", german: "Deutsch", + korean: "한국어", japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "おはようございます", diff --git a/application/src/translations/km/common.ts b/application/src/translations/km/common.ts index 1215cfa..fe1a1f9 100644 --- a/application/src/translations/km/common.ts +++ b/application/src/translations/km/common.ts @@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = { english: "Englisch", khmer: "ភាសាខ្មែរ", german: "Deutsch", + korean: "한국어", japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "អរុណសួស្តី", diff --git a/application/src/translations/zhcn/common.ts b/application/src/translations/zhcn/common.ts index d6b8dad..7d30a2e 100644 --- a/application/src/translations/zhcn/common.ts +++ b/application/src/translations/zhcn/common.ts @@ -8,6 +8,7 @@ export const commonTranslations: CommonTranslations = { english: "Englisch", khmer: "ភាសាខ្មែរ", german: "Deutsch", + korean: "한국어", japanese: "日本語", simplifiedChinese: "简体中文", goodMorning: "早上好", From 87588a912774df80b2e1c8d4c103153a11679894 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Thu, 21 Aug 2025 02:19:44 +0700 Subject: [PATCH 24/46] Added more notification channel (GoogleChat, ntfy, webhook) into the collections configuration --- ...1755250344_updated_alert_configurations.js | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 server/pb_migrations/1755250344_updated_alert_configurations.js diff --git a/server/pb_migrations/1755250344_updated_alert_configurations.js b/server/pb_migrations/1755250344_updated_alert_configurations.js new file mode 100644 index 0000000..9f38333 --- /dev/null +++ b/server/pb_migrations/1755250344_updated_alert_configurations.js @@ -0,0 +1,72 @@ +/// +migrate((app) => { + const collection = app.findCollectionByNameOrId("pbc_1938176441") + + // add field + collection.fields.addAt(20, new Field({ + "autogeneratePattern": "", + "hidden": false, + "id": "text1654359675", + "max": 0, + "min": 0, + "name": "ntfy_endpoint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + })) + + // update field + collection.fields.addAt(9, new Field({ + "hidden": false, + "id": "select887233555", + "maxSelect": 1, + "name": "notification_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "telegram", + "signal", + "discord", + "slack", + "webhook", + "google_chat", + "email", + "ntfy" + ] + })) + + return app.save(collection) +}, (app) => { + const collection = app.findCollectionByNameOrId("pbc_1938176441") + + // remove field + collection.fields.removeById("text1654359675") + + // update field + collection.fields.addAt(9, new Field({ + "hidden": false, + "id": "select887233555", + "maxSelect": 1, + "name": "notification_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "telegram", + "signal", + "discord", + "slack", + "webhook", + "google_chat", + "email" + ] + })) + + return app.save(collection) +}) From b038d878488868db012201253af198e2528637c3 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Thu, 21 Aug 2025 14:53:52 +0700 Subject: [PATCH 25/46] Database Schema Update - Database schema up to date with the latest features and improvements --- server/pb_migrations/pb_schema.json | 10180 +++++++++++++++++--------- 1 file changed, 6530 insertions(+), 3650 deletions(-) diff --git a/server/pb_migrations/pb_schema.json b/server/pb_migrations/pb_schema.json index 598e178..fe239ff 100644 --- a/server/pb_migrations/pb_schema.json +++ b/server/pb_migrations/pb_schema.json @@ -1,3667 +1,6547 @@ [ - { - "id": "pbc_3142635823", - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "name": "_superusers", - "type": "auth", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "cost": 0, - "hidden": true, - "id": "password901924565", - "max": 0, - "min": 8, - "name": "password", - "pattern": "", - "presentable": false, - "required": true, - "system": true, - "type": "password" - }, - { - "autogeneratePattern": "[a-zA-Z0-9]{50}", - "hidden": true, - "id": "text2504183744", - "max": 60, - "min": 30, - "name": "tokenKey", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "exceptDomains": null, - "hidden": false, - "id": "email3885137012", - "name": "email", - "onlyDomains": null, - "presentable": false, - "required": true, - "system": true, - "type": "email" - }, - { - "hidden": false, - "id": "bool1547992806", - "name": "emailVisibility", - "presentable": false, - "required": false, - "system": true, - "type": "bool" - }, - { - "hidden": false, - "id": "bool256245529", - "name": "verified", - "presentable": false, - "required": false, - "system": true, - "type": "bool" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": true, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": true, - "type": "autodate" - } - ], - "indexes": [ - "CREATE UNIQUE INDEX `idx_tokenKey_pbc_3142635823` ON `_superusers` (`tokenKey`)", - "CREATE UNIQUE INDEX `idx_email_pbc_3142635823` ON `_superusers` (`email`) WHERE `email` != ''" - ], - "system": true, - "authRule": "", - "manageRule": null, - "authAlert": { - "enabled": true, - "emailTemplate": { - "subject": "Login from a new location", - "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

" - } - }, - "oauth2": { - "mappedFields": { - "id": "", - "name": "", - "username": "", - "avatarURL": "" - }, - "enabled": false - }, - "passwordAuth": { - "enabled": true, - "identityFields": [ - "email" - ] - }, - "mfa": { - "enabled": false, - "duration": 1800, - "rule": "" - }, - "otp": { - "enabled": false, - "duration": 180, - "length": 8, - "emailTemplate": { - "subject": "OTP for {APP_NAME}", - "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" - } - }, - "authToken": { - "duration": 86400 - }, - "passwordResetToken": { - "duration": 1800 - }, - "emailChangeToken": { - "duration": 1800 - }, - "verificationToken": { - "duration": 259200 - }, - "fileToken": { - "duration": 180 - }, - "verificationTemplate": { - "subject": "Verify your {APP_NAME} email", - "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

" - }, - "resetPasswordTemplate": { - "subject": "Reset your {APP_NAME} password", - "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" - }, - "confirmEmailChangeTemplate": { - "subject": "Confirm your {APP_NAME} new email address", - "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" - } - }, - { - "id": "_pb_users_auth_", - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "name": "users", - "type": "auth", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "cost": 0, - "hidden": true, - "id": "password901924565", - "max": 0, - "min": 8, - "name": "password", - "pattern": "", - "presentable": false, - "required": true, - "system": true, - "type": "password" - }, - { - "autogeneratePattern": "[a-zA-Z0-9]{50}", - "hidden": true, - "id": "text2504183744", - "max": 60, - "min": 30, - "name": "tokenKey", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "exceptDomains": null, - "hidden": false, - "id": "email3885137012", - "name": "email", - "onlyDomains": null, - "presentable": false, - "required": false, - "system": true, - "type": "email" - }, - { - "hidden": false, - "id": "bool1547992806", - "name": "emailVisibility", - "presentable": false, - "required": false, - "system": true, - "type": "bool" - }, - { - "hidden": false, - "id": "bool256245529", - "name": "verified", - "presentable": false, - "required": false, - "system": true, - "type": "bool" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 255, - "min": 0, - "name": "full_name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "file376926767", - "maxSelect": 1, - "maxSize": 0, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" + { + "id": "pbc_3142635823", + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "_superusers", + "type": "auth", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 0, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 8, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "[a-zA-Z0-9]{50}", + "hidden": true, + "id": "text2504183744", + "max": 60, + "min": 30, + "name": "tokenKey", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "exceptDomains": null, + "hidden": false, + "id": "email3885137012", + "name": "email", + "onlyDomains": null, + "presentable": false, + "required": true, + "system": true, + "type": "email" + }, + { + "hidden": false, + "id": "bool1547992806", + "name": "emailVisibility", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "hidden": false, + "id": "bool256245529", + "name": "verified", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3687080900", + "max": 0, + "min": 0, + "name": "full_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4166911607", + "max": 0, + "min": 0, + "name": "username", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "active", + "inactive" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "indexes": [ + "CREATE UNIQUE INDEX `idx_tokenKey_pbc_3142635823` ON `_superusers` (`tokenKey`)", + "CREATE UNIQUE INDEX `idx_email_pbc_3142635823` ON `_superusers` (`email`) WHERE `email` != ''" + ], + "system": true, + "authRule": "", + "manageRule": null, + "authAlert": { + "enabled": true, + "emailTemplate": { + "subject": "Login from a new location", + "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } + }, + "oauth2": { + "mappedFields": { + "id": "", + "name": "", + "username": "", + "avatarURL": "" + }, + "enabled": false + }, + "passwordAuth": { + "enabled": true, + "identityFields": [ + "email" + ] + }, + "mfa": { + "enabled": false, + "duration": 1800, + "rule": "" + }, + "otp": { + "enabled": false, + "duration": 180, + "length": 8, + "emailTemplate": { + "subject": "OTP for {APP_NAME}", + "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } + }, + "authToken": { + "duration": 86400 + }, + "passwordResetToken": { + "duration": 1800 + }, + "emailChangeToken": { + "duration": 1800 + }, + "verificationToken": { + "duration": 259200 + }, + "fileToken": { + "duration": 180 + }, + "verificationTemplate": { + "subject": "Verify your {APP_NAME} email", + "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

" + }, + "resetPasswordTemplate": { + "subject": "Reset your {APP_NAME} password", + "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + }, + "confirmEmailChangeTemplate": { + "subject": "Confirm your {APP_NAME} new email address", + "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } + }, + { + "id": "_pb_users_auth_", + "listRule": "id = @request.auth.id", + "viewRule": "id = @request.auth.id", + "createRule": null, + "updateRule": "id = @request.auth.id", + "deleteRule": "id = @request.auth.id", + "name": "users", + "type": "auth", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 0, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 8, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "[a-zA-Z0-9]{50}", + "hidden": true, + "id": "text2504183744", + "max": 60, + "min": 30, + "name": "tokenKey", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "exceptDomains": null, + "hidden": false, + "id": "email3885137012", + "name": "email", + "onlyDomains": null, + "presentable": false, + "required": false, + "system": true, + "type": "email" + }, + { + "hidden": false, + "id": "bool1547992806", + "name": "emailVisibility", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "hidden": false, + "id": "bool256245529", + "name": "verified", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 255, + "min": 0, + "name": "full_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "file376926767", + "maxSelect": 1, + "maxSize": 0, + "mimeTypes": [ + "image/jpeg", + "image/png", + "image/svg+xml", + "image/gif", + "image/webp" + ], + "name": "avatar", + "presentable": false, + "protected": false, + "required": false, + "system": false, + "thumbs": null, + "type": "file" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4166911607", + "max": 0, + "min": 0, + "name": "username", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "Active", + "Inactive" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [ + "CREATE UNIQUE INDEX `idx_tokenKey__pb_users_auth_` ON `users` (`tokenKey`)", + "CREATE UNIQUE INDEX `idx_email__pb_users_auth_` ON `users` (`email`) WHERE `email` != ''" ], - "name": "avatar", - "presentable": false, - "protected": false, - "required": false, "system": false, - "thumbs": null, - "type": "file" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4166911607", - "max": 0, - "min": 0, - "name": "username", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select2063623452", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "Active", - "Inactive" - ] - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [ - "CREATE UNIQUE INDEX `idx_tokenKey__pb_users_auth_` ON `users` (`tokenKey`)", - "CREATE UNIQUE INDEX `idx_email__pb_users_auth_` ON `users` (`email`) WHERE `email` != ''" - ], - "system": false, - "authRule": "", - "manageRule": null, - "authAlert": { - "enabled": true, - "emailTemplate": { - "subject": "Login from a new location", - "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

" - } + "authRule": "", + "manageRule": null, + "authAlert": { + "enabled": true, + "emailTemplate": { + "subject": "Login from a new location", + "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } + }, + "oauth2": { + "mappedFields": { + "id": "", + "name": "", + "username": "", + "avatarURL": "avatar" + }, + "enabled": false + }, + "passwordAuth": { + "enabled": true, + "identityFields": [ + "email" + ] + }, + "mfa": { + "enabled": false, + "duration": 1800, + "rule": "" + }, + "otp": { + "enabled": false, + "duration": 180, + "length": 8, + "emailTemplate": { + "subject": "OTP for {APP_NAME}", + "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } + }, + "authToken": { + "duration": 604800 + }, + "passwordResetToken": { + "duration": 1800 + }, + "emailChangeToken": { + "duration": 1800 + }, + "verificationToken": { + "duration": 259200 + }, + "fileToken": { + "duration": 180 + }, + "verificationTemplate": { + "subject": "Verify your {APP_NAME} email", + "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

" + }, + "resetPasswordTemplate": { + "subject": "Reset your {APP_NAME} password", + "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + }, + "confirmEmailChangeTemplate": { + "subject": "Confirm your {APP_NAME} new email address", + "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + } }, - "oauth2": { - "mappedFields": { - "id": "", - "name": "", - "username": "", - "avatarURL": "avatar" - }, - "enabled": false + { + "id": "pbc_4275539003", + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "createRule": null, + "updateRule": null, + "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_authOrigins", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4228609354", + "max": 0, + "min": 0, + "name": "fingerprint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "indexes": [ + "CREATE UNIQUE INDEX `idx_authOrigins_unique_pairs` ON `_authOrigins` (collectionRef, recordRef, fingerprint)" + ], + "system": true }, - "passwordAuth": { - "enabled": true, - "identityFields": [ - "email" - ] + { + "id": "pbc_2281828961", + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "createRule": null, + "updateRule": null, + "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_externalAuths", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2462348188", + "max": 0, + "min": 0, + "name": "provider", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1044722854", + "max": 0, + "min": 0, + "name": "providerId", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "indexes": [ + "CREATE UNIQUE INDEX `idx_externalAuths_record_provider` ON `_externalAuths` (collectionRef, recordRef, provider)", + "CREATE UNIQUE INDEX `idx_externalAuths_collection_provider` ON `_externalAuths` (collectionRef, provider, providerId)" + ], + "system": true }, - "mfa": { - "enabled": false, - "duration": 1800, - "rule": "" + { + "id": "pbc_2279338944", + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "_mfas", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1582905952", + "max": 0, + "min": 0, + "name": "method", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "indexes": [ + "CREATE INDEX `idx_mfas_collectionRef_recordRef` ON `_mfas` (collectionRef,recordRef)" + ], + "system": true }, - "otp": { - "enabled": false, - "duration": 180, - "length": 8, - "emailTemplate": { - "subject": "OTP for {APP_NAME}", - "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" - } + { + "id": "pbc_1638494021", + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "_otps", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 8, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 0, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "", + "hidden": true, + "id": "text3866985172", + "max": 0, + "min": 0, + "name": "sentTo", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "indexes": [ + "CREATE INDEX `idx_otps_collectionRef_recordRef` ON `_otps` (collectionRef, recordRef)" + ], + "system": true }, - "authToken": { - "duration": 604800 + { + "id": "pbc_1938176441", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "alert_configurations", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "channel_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1104941267", + "max": 0, + "min": 0, + "name": "telegram_chat_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2654632018", + "max": 0, + "min": 0, + "name": "discord_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text904114323", + "max": 0, + "min": 0, + "name": "signal_number", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text709732016", + "max": 0, + "min": 0, + "name": "notify_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3787265959", + "max": 0, + "min": 0, + "name": "bot_token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2946855043", + "max": 0, + "min": 0, + "name": "slack_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select887233555", + "maxSelect": 1, + "name": "notification_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "telegram", + "signal", + "discord", + "slack", + "webhook", + "google_chat", + "email", + "ntfy" + ] + }, + { + "hidden": false, + "id": "select1358543748", + "maxSelect": 1, + "name": "enabled", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2962097998", + "max": 0, + "min": 0, + "name": "email_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3070882914", + "max": 0, + "min": 0, + "name": "email_sender_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2941943271", + "max": 0, + "min": 0, + "name": "smtp_port", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text393471132", + "max": 0, + "min": 0, + "name": "smtp_server", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2735050465", + "max": 0, + "min": 0, + "name": "google_chat_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1263996916", + "max": 0, + "min": 0, + "name": "signal_api_endpoint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4212033756", + "max": 0, + "min": 0, + "name": "smtp_password", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text137129747", + "max": 0, + "min": 0, + "name": "webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3590941513", + "max": 0, + "min": 0, + "name": "webhook_payload_template", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1654359675", + "max": 0, + "min": 0, + "name": "ntfy_endpoint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "passwordResetToken": { - "duration": 1800 + { + "id": "pbc_2889059272", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "data_settings", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "number1569706847", + "max": null, + "min": null, + "name": "retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1419719274", + "max": null, + "min": null, + "name": "server_retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3508549248", + "max": null, + "min": null, + "name": "uptime_retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2800013036", + "max": 0, + "min": 0, + "name": "backup", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "emailChangeToken": { - "duration": 1800 + { + "id": "pbc_285611395", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "dns_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2554192817", + "max": 0, + "min": 0, + "name": "query_type", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3731179111", + "max": 0, + "min": 0, + "name": "resolve_ip", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2323266619", + "max": 0, + "min": 0, + "name": "msg_size", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3069659470", + "max": 0, + "min": 0, + "name": "question", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3671935525", + "max": 0, + "min": 0, + "name": "answer", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1257859836", + "max": 0, + "min": 0, + "name": "authority", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2273667377", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "verificationToken": { - "duration": 259200 + { + "id": "pbc_3168803865", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "docker_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "docker_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text933879452", + "max": 0, + "min": 0, + "name": "ram_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4038915663", + "max": 0, + "min": 0, + "name": "ram_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3302315167", + "max": 0, + "min": 0, + "name": "ram_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1461425251", + "max": 0, + "min": 0, + "name": "cpu_cores", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2062996636", + "max": 0, + "min": 0, + "name": "cpu_usage", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1525183142", + "max": 0, + "min": 0, + "name": "cpu_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2583550350", + "max": 0, + "min": 0, + "name": "disk_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1976676007", + "max": 0, + "min": 0, + "name": "disk_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1102580855", + "max": 0, + "min": 0, + "name": "disk_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1936777896", + "max": null, + "min": null, + "name": "network_rx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3038767919", + "max": null, + "min": null, + "name": "network_tx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3452919696", + "max": null, + "min": null, + "name": "network_rx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number195057175", + "max": null, + "min": null, + "name": "network_tx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "fileToken": { - "duration": 180 + { + "id": "pbc_583547467", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "dockers", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1069831160", + "max": 0, + "min": 0, + "name": "docker_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3847340049", + "max": 0, + "min": 0, + "name": "hostname", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text587191692", + "max": 0, + "min": 0, + "name": "ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063420466", + "max": 0, + "min": 0, + "name": "os_template", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1563400775", + "max": 0, + "min": 0, + "name": "uptime", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number933879452", + "max": null, + "min": null, + "name": "ram_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4038915663", + "max": null, + "min": null, + "name": "ram_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1461425251", + "max": null, + "min": null, + "name": "cpu_cores", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2062996636", + "max": null, + "min": null, + "name": "cpu_usage", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2583550350", + "max": null, + "min": null, + "name": "disk_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1976676007", + "max": null, + "min": null, + "name": "disk_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2782324286", + "max": 0, + "min": 0, + "name": "timestamp", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "verificationTemplate": { - "subject": "Verify your {APP_NAME} email", - "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

" + { + "id": "pbc_2189087560", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "incidents", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2314121105", + "max": 0, + "min": 0, + "name": "assigned_users", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3210298530", + "max": 0, + "min": 0, + "name": "resolution_time", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text723782963", + "max": 0, + "min": 0, + "name": "affected_systems", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1210058505", + "max": 0, + "min": 0, + "name": "root_cause", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text178040949", + "max": 0, + "min": 0, + "name": "resolution_steps", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2767280054", + "max": 0, + "min": 0, + "name": "lessons_learned", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2722347397", + "maxSelect": 1, + "name": "impact_status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "investigating", + "found_root_cause", + "identified", + "monitoring", + "resolved" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1655102503", + "maxSelect": 1, + "name": "priority", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "hidden": false, + "id": "select3288973319", + "maxSelect": 1, + "name": "impact", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "minor", + "major", + "critical", + "none" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "resetPasswordTemplate": { - "subject": "Reset your {APP_NAME} password", - "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + { + "id": "pbc_1738231158", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "maintenance", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date1345189255", + "max": "", + "min": "", + "name": "start_time", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "date1096160257", + "max": "", + "min": "", + "name": "end_time", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3922189066", + "max": 0, + "min": 0, + "name": "affected", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3725765462", + "max": 0, + "min": 0, + "name": "created_by", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1348078739", + "max": 0, + "min": 0, + "name": "notify_subscribers", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1655102503", + "maxSelect": 1, + "name": "priority", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "scheduled", + "completed", + "cancelled", + "in_progress" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1542800728", + "maxSelect": 1, + "name": "field", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "minor", + "major", + "critical", + "none" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3490420651", + "max": 0, + "min": 0, + "name": "assigned_users", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false }, - "confirmEmailChangeTemplate": { - "subject": "Confirm your {APP_NAME} new email address", - "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

" + { + "id": "pbc_3662317132", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "operational_page", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1811784642", + "maxSelect": 1, + "name": "is_public", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2560465762", + "max": 0, + "min": 0, + "name": "slug", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2541086472", + "max": 0, + "min": 0, + "name": "theme", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text156371623", + "max": 0, + "min": 0, + "name": "logo_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2466564623", + "max": 0, + "min": 0, + "name": "custom_domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3581369753", + "max": 0, + "min": 0, + "name": "custom_css", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1430013884", + "max": 0, + "min": 0, + "name": "page_style", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "operational", + "degraded", + "partial_outage", + "major_outage", + "maintenance" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1168766540", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ping_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1341404999", + "max": 0, + "min": 0, + "name": "packet_loss", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2750318623", + "max": 0, + "min": 0, + "name": "max_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2645286934", + "max": 0, + "min": 0, + "name": "min_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text108668494", + "max": 0, + "min": 0, + "name": "packets_sent", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3848691274", + "max": 0, + "min": 0, + "name": "packets_recv", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2665772979", + "max": 0, + "min": 0, + "name": "avg_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text836103155", + "max": 0, + "min": 0, + "name": "rtts", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_171698555", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "regional_service", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1404634243", + "max": 0, + "min": 0, + "name": "agent_ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text704082790", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1597481275", + "max": 0, + "min": 0, + "name": "token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1998570700", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text933879452", + "max": 0, + "min": 0, + "name": "ram_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4038915663", + "max": 0, + "min": 0, + "name": "ram_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3302315167", + "max": 0, + "min": 0, + "name": "ram_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1461425251", + "max": 0, + "min": 0, + "name": "cpu_cores", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2062996636", + "max": 0, + "min": 0, + "name": "cpu_usage", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1525183142", + "max": 0, + "min": 0, + "name": "cpu_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2583550350", + "max": 0, + "min": 0, + "name": "disk_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1976676007", + "max": 0, + "min": 0, + "name": "disk_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1102580855", + "max": 0, + "min": 0, + "name": "disk_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1936777896", + "max": null, + "min": null, + "name": "network_rx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3038767919", + "max": null, + "min": null, + "name": "network_tx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3452919696", + "max": null, + "min": null, + "name": "network_rx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number195057175", + "max": null, + "min": null, + "name": "network_tx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text635908666", + "max": 0, + "min": 0, + "name": "agent_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1907735298", + "max": 0, + "min": 0, + "name": "max_retries", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3065852031", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text772177811", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1965843930", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2233324553", + "max": 0, + "min": 0, + "name": "ram_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3462525847", + "max": 0, + "min": 0, + "name": "cpu_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3499937189", + "max": 0, + "min": 0, + "name": "disk_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3897838783", + "max": 0, + "min": 0, + "name": "network_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "up_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "down_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2718833336", + "max": 0, + "min": 0, + "name": "paused_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3489289583", + "max": 0, + "min": 0, + "name": "cpu_temp_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2170408196", + "max": 0, + "min": 0, + "name": "disk_io_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4125531906", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1005957295", + "max": 0, + "min": 0, + "name": "warning_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text992877620", + "max": 0, + "min": 0, + "name": "restore_ram_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2334264704", + "max": 0, + "min": 0, + "name": "restore_cpu_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text808080362", + "max": 0, + "min": 0, + "name": "restore_disk_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2722458077", + "max": 0, + "min": 0, + "name": "restore_network_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text823542732", + "max": 0, + "min": 0, + "name": "restore_disk_io_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1526027363", + "max": 0, + "min": 0, + "name": "restore_cpu_temp_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1464856393", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_threshold_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2233324553", + "max": 0, + "min": 0, + "name": "ram_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3462525847", + "max": 0, + "min": 0, + "name": "cpu_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3499937189", + "max": 0, + "min": 0, + "name": "disk_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3897838783", + "max": 0, + "min": 0, + "name": "network_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3837604842", + "max": 0, + "min": 0, + "name": "disk_io_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2623591511", + "max": 0, + "min": 0, + "name": "cpu_temp_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3738798621", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "servers", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3847340049", + "max": 0, + "min": 0, + "name": "hostname", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text587191692", + "max": 0, + "min": 0, + "name": "ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063420466", + "max": 0, + "min": 0, + "name": "os_type", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1563400775", + "max": 0, + "min": 0, + "name": "uptime", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number933879452", + "max": null, + "min": null, + "name": "ram_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4038915663", + "max": null, + "min": null, + "name": "ram_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1461425251", + "max": null, + "min": null, + "name": "cpu_cores", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2062996636", + "max": null, + "min": null, + "name": "cpu_usage", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2583550350", + "max": null, + "min": null, + "name": "disk_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1976676007", + "max": null, + "min": null, + "name": "disk_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4290167602", + "max": 0, + "min": 0, + "name": "server_token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2782324286", + "max": 0, + "min": 0, + "name": "timestamp", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text704082790", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text635908666", + "max": 0, + "min": 0, + "name": "agent_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3661988513", + "max": 0, + "min": 0, + "name": "system_info", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1936777896", + "max": 0, + "min": 0, + "name": "network_rx_bytes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3038767919", + "max": 0, + "min": 0, + "name": "network_tx_bytes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3452919696", + "max": 0, + "min": 0, + "name": "network_rx_speed", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text195057175", + "max": 0, + "min": 0, + "name": "network_tx_speed", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number4097339557", + "max": null, + "min": null, + "name": "check_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "select4065722285", + "maxSelect": 1, + "name": "docker", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1907735298", + "max": 0, + "min": 0, + "name": "max_retries", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1080317331", + "max": 0, + "min": 0, + "name": "threshold_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "bool3215432513", + "name": "notification_status", + "presentable": false, + "required": false, + "system": false, + "type": "bool" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_763794515", + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "service_group", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1572233440", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "service_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "up_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "down_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3477829101", + "max": 0, + "min": 0, + "name": "maintenance_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text293022370", + "max": 0, + "min": 0, + "name": "incident_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3490715516", + "max": 0, + "min": 0, + "name": "resolved_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1005957295", + "max": 0, + "min": 0, + "name": "warning_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4125531906", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_863811952", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "services", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3475444733", + "max": 0, + "min": 0, + "name": "host", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1563400775", + "max": null, + "min": null, + "name": "uptime", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1133600204", + "max": null, + "min": null, + "name": "port", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number3142844404", + "max": null, + "min": null, + "name": "heartbeat_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1907735298", + "max": null, + "min": null, + "name": "max_retries", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1117643717", + "maxSelect": 1, + "name": "service_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "http", + "tcp", + "ping", + "dns" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4101391790", + "max": 0, + "min": 0, + "name": "url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select3434705756", + "maxSelect": 1, + "name": "alerts", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "muted", + "unmuted" + ] + }, + { + "hidden": false, + "id": "bool3215432513", + "name": "notification_status", + "presentable": false, + "required": false, + "system": false, + "type": "bool" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1745692878", + "max": 0, + "min": 0, + "name": "regional_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2502838439", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1841317061", + "max": 0, + "min": 0, + "name": "group_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3575570325", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "services_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2422262506", + "max": 0, + "min": 0, + "name": "service_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3475444733", + "max": 0, + "min": 0, + "name": "host", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1563400775", + "max": null, + "min": null, + "name": "uptime", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1133600204", + "max": null, + "min": null, + "name": "port", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number3142844404", + "max": null, + "min": null, + "name": "heartbeat_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1907735298", + "max": null, + "min": null, + "name": "max_retries", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1117643717", + "maxSelect": 1, + "name": "service_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "http", + "tcp", + "ping", + "dns" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4101391790", + "max": 0, + "min": 0, + "name": "url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select4152017003", + "maxSelect": 1, + "name": "alerts", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "muted", + "unmuted" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1519612219", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "region_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1404634243", + "max": 0, + "min": 0, + "name": "agent_ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1836745630", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ssl_certificates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2910474005", + "max": 0, + "min": 0, + "name": "issuer_o", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2857577546", + "max": "", + "min": "", + "name": "last_notified", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number2281365985", + "max": null, + "min": null, + "name": "warning_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number219021052", + "max": null, + "min": null, + "name": "expiry_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3085370608", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2077745078", + "max": "", + "min": "", + "name": "valid_from", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number227839714", + "max": null, + "min": null, + "name": "serial_number", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2790380089", + "max": 0, + "min": 0, + "name": "issued_to", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date3449712486", + "max": "", + "min": "", + "name": "valid_till", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1533826704", + "max": null, + "min": null, + "name": "validity_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4007784154", + "max": null, + "min": null, + "name": "days_left", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number437829758", + "max": null, + "min": null, + "name": "valid_days_to_expire", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3452125334", + "max": 0, + "min": 0, + "name": "resolved_ip", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2712104570", + "max": 0, + "min": 0, + "name": "issuer_cn", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1754636037", + "max": 0, + "min": 0, + "name": "cert_alg", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1208359189", + "max": 0, + "min": 0, + "name": "cert_sans", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4097339557", + "max": 0, + "min": 0, + "name": "check_interval", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2784829323", + "max": "", + "min": "", + "name": "check_at", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_351174173", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ssl_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "expired", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "exiring_soon", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1078893766", + "max": 0, + "min": 0, + "name": "warning", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1636150439", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "status_page_components", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number4101605491", + "max": null, + "min": null, + "name": "display_order", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_2331916230", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "tcp_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1341404999", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2770808759", + "max": 0, + "min": 0, + "name": "port", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2273667377", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_4014804571", + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "trigger_events", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_67962705", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "uptime_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1280981898", + "max": 0, + "min": 0, + "name": "packets", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1519612219", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2552627541", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_45665081", + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "webhook", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2809058197", + "max": 0, + "min": 0, + "name": "user_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4101391790", + "max": 0, + "min": 0, + "name": "url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1358543748", + "maxSelect": 1, + "name": "enabled", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "on", + "off" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1554180325", + "max": 0, + "min": 0, + "name": "secret", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4144189317", + "max": 0, + "min": 0, + "name": "headers", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2129530235", + "max": 0, + "min": 0, + "name": "retry_count", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2168550802", + "max": 0, + "min": 0, + "name": "trigger_events", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1582905952", + "max": 0, + "min": 0, + "name": "method", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1414600993", + "max": 0, + "min": 0, + "name": "payload_template", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false } - }, - { - "id": "pbc_4275539003", - "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "createRule": null, - "updateRule": null, - "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "name": "_authOrigins", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text455797646", - "max": 0, - "min": 0, - "name": "collectionRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text127846527", - "max": 0, - "min": 0, - "name": "recordRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4228609354", - "max": 0, - "min": 0, - "name": "fingerprint", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": true, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": true, - "type": "autodate" - } - ], - "indexes": [ - "CREATE UNIQUE INDEX `idx_authOrigins_unique_pairs` ON `_authOrigins` (collectionRef, recordRef, fingerprint)" - ], - "system": true - }, - { - "id": "pbc_2281828961", - "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "createRule": null, - "updateRule": null, - "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "name": "_externalAuths", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text455797646", - "max": 0, - "min": 0, - "name": "collectionRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text127846527", - "max": 0, - "min": 0, - "name": "recordRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2462348188", - "max": 0, - "min": 0, - "name": "provider", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1044722854", - "max": 0, - "min": 0, - "name": "providerId", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": true, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": true, - "type": "autodate" - } - ], - "indexes": [ - "CREATE UNIQUE INDEX `idx_externalAuths_record_provider` ON `_externalAuths` (collectionRef, recordRef, provider)", - "CREATE UNIQUE INDEX `idx_externalAuths_collection_provider` ON `_externalAuths` (collectionRef, provider, providerId)" - ], - "system": true - }, - { - "id": "pbc_2279338944", - "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "name": "_mfas", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text455797646", - "max": 0, - "min": 0, - "name": "collectionRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text127846527", - "max": 0, - "min": 0, - "name": "recordRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1582905952", - "max": 0, - "min": 0, - "name": "method", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": true, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": true, - "type": "autodate" - } - ], - "indexes": [ - "CREATE INDEX `idx_mfas_collectionRef_recordRef` ON `_mfas` (collectionRef,recordRef)" - ], - "system": true - }, - { - "id": "pbc_1638494021", - "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "name": "_otps", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text455797646", - "max": 0, - "min": 0, - "name": "collectionRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text127846527", - "max": 0, - "min": 0, - "name": "recordRef", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": true, - "system": true, - "type": "text" - }, - { - "cost": 8, - "hidden": true, - "id": "password901924565", - "max": 0, - "min": 0, - "name": "password", - "pattern": "", - "presentable": false, - "required": true, - "system": true, - "type": "password" - }, - { - "autogeneratePattern": "", - "hidden": true, - "id": "text3866985172", - "max": 0, - "min": 0, - "name": "sentTo", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": true, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": true, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": true, - "type": "autodate" - } - ], - "indexes": [ - "CREATE INDEX `idx_otps_collectionRef_recordRef` ON `_otps` (collectionRef, recordRef)" - ], - "system": true - }, - { - "id": "pbc_1938176441", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "alert_configurations", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3982272998", - "max": 0, - "min": 0, - "name": "service_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1104941267", - "max": 0, - "min": 0, - "name": "telegram_chat_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2654632018", - "max": 0, - "min": 0, - "name": "discord_webhook_url", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text904114323", - "max": 0, - "min": 0, - "name": "signal_number", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text709732016", - "max": 0, - "min": 0, - "name": "notify_name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3787265959", - "max": 0, - "min": 0, - "name": "bot_token", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text98176952", - "max": 0, - "min": 0, - "name": "template_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select887233555", - "maxSelect": 1, - "name": "notification_type", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "telegram", - "signal", - "discord", - "slack" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2946855043", - "max": 0, - "min": 0, - "name": "slack_webhook_url", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select1358543748", - "maxSelect": 1, - "name": "enabled", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "true", - "false" - ] - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_2889059272", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "general_settings", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1341115888", - "max": 0, - "min": 0, - "name": "system_name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text922858135", - "max": 0, - "min": 0, - "name": "timezone", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text156371623", - "max": 0, - "min": 0, - "name": "logo_url", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number1569706847", - "max": null, - "min": null, - "name": "retention_days", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1419719274", - "max": null, - "min": null, - "name": "server_retention_days", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3508549248", - "max": null, - "min": null, - "name": "uptime_retention_days", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2863891088", - "max": 0, - "min": 0, - "name": "appearance", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3571151285", - "max": 0, - "min": 0, - "name": "language", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2800013036", - "max": 0, - "min": 0, - "name": "system_name_kh", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_2189087560", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "incidents", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3982272998", - "max": 0, - "min": 0, - "name": "service_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date2782324286", - "max": "", - "min": "", - "name": "timestamp", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1843675174", - "max": 0, - "min": 0, - "name": "description", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1655102503", - "max": 0, - "min": 0, - "name": "priority", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2314121105", - "max": 0, - "min": 0, - "name": "assigned_to", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3210298530", - "max": 0, - "min": 0, - "name": "resolution_time", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text105650625", - "max": 0, - "min": 0, - "name": "category", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3288973319", - "max": 0, - "min": 0, - "name": "impact", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text723782963", - "max": 0, - "min": 0, - "name": "affected_systems", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1210058505", - "max": 0, - "min": 0, - "name": "root_cause", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text178040949", - "max": 0, - "min": 0, - "name": "resolution_steps", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2767280054", - "max": 0, - "min": 0, - "name": "lessons_learned", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4053573849", - "max": 0, - "min": 0, - "name": "operational_status_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select2722347397", - "maxSelect": 1, - "name": "impact_status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "investigating", - "found_root_cause", - "completed" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1738231158", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "maintenance_schedules", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text724990059", - "max": 0, - "min": 0, - "name": "title", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1843675174", - "max": 0, - "min": 0, - "name": "description", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date1345189255", - "max": "", - "min": "", - "name": "start_time", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "date1096160257", - "max": "", - "min": "", - "name": "end_time", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3922189066", - "max": 0, - "min": 0, - "name": "affected_services", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3725765462", - "max": 0, - "min": 0, - "name": "created_by", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1348078739", - "max": 0, - "min": 0, - "name": "notify_subscribers", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select1655102503", - "maxSelect": 1, - "name": "priority", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "Low", - "Medium", - "Hight" - ] - }, - { - "hidden": false, - "id": "select2063623452", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "Scheduled", - "InProgress", - "Completed" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text84090998", - "max": 0, - "min": 0, - "name": "affected_servers", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4011498884", - "max": 0, - "min": 0, - "name": "notification_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text98176952", - "max": 0, - "min": 0, - "name": "template_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4053573849", - "max": 0, - "min": 0, - "name": "operational_status_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3490420651", - "max": 0, - "min": 0, - "name": "assigned_users", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1572233440", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "notification_templates", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2761878292", - "max": 0, - "min": 0, - "name": "up_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3025025370", - "max": 0, - "min": 0, - "name": "down_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1368257743", - "max": 0, - "min": 0, - "name": "service_name_placeholder", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text194558213", - "max": 0, - "min": 0, - "name": "response_time_placeholder", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4047301363", - "max": 0, - "min": 0, - "name": "status_placeholder", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text360896308", - "max": 0, - "min": 0, - "name": "threshold_placeholder", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2363381545", - "max": 0, - "min": 0, - "name": "type", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3477829101", - "max": 0, - "min": 0, - "name": "maintenance_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text293022370", - "max": 0, - "min": 0, - "name": "incident_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3490715516", - "max": 0, - "min": 0, - "name": "resolved_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_3662317132", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "operational_page", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text724990059", - "max": 0, - "min": 0, - "name": "title", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1843675174", - "max": 0, - "min": 0, - "name": "description", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select1811784642", - "maxSelect": 1, - "name": "is_public", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "true", - "false" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2560465762", - "max": 0, - "min": 0, - "name": "slug", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2541086472", - "max": 0, - "min": 0, - "name": "theme", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text156371623", - "max": 0, - "min": 0, - "name": "logo_url", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2466564623", - "max": 0, - "min": 0, - "name": "custom_domain", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3581369753", - "max": 0, - "min": 0, - "name": "custom_css", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1430013884", - "max": 0, - "min": 0, - "name": "page_style", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1998570700", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "server_metrics", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date2782324286", - "max": "", - "min": "", - "name": "timestamp", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number4038915663", - "max": null, - "min": null, - "name": "ram_used", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2062996636", - "max": null, - "min": null, - "name": "cpu_usage", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1976676007", - "max": null, - "min": null, - "name": "disk_used", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number1936777896", - "max": null, - "min": null, - "name": "network_rx_bytes", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3038767919", - "max": null, - "min": null, - "name": "network_tx_bytes", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3452919696", - "max": null, - "min": null, - "name": "network_rx_speed", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number195057175", - "max": null, - "min": null, - "name": "network_tx_speed", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1965843930", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "server_notification_templates", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2233324553", - "max": 0, - "min": 0, - "name": "ram_threshold_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3462525847", - "max": 0, - "min": 0, - "name": "cpu_threshold_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3499937189", - "max": 0, - "min": 0, - "name": "disk_threshold_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3897838783", - "max": 0, - "min": 0, - "name": "network_threshold_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2761878292", - "max": 0, - "min": 0, - "name": "up_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3025025370", - "max": 0, - "min": 0, - "name": "down_message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_3414192583", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "server_notifications", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3065852031", - "max": 0, - "min": 0, - "name": "message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text887233555", - "max": 0, - "min": 0, - "name": "notification_type", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date3805952114", - "max": "", - "min": "", - "name": "read_at", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number1377725610", - "max": null, - "min": null, - "name": "cpu_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3087505384", - "max": null, - "min": null, - "name": "ram_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2833320134", - "max": null, - "min": null, - "name": "disk_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1826572927", - "max": null, - "min": null, - "name": "network_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2184331740", - "max": null, - "min": null, - "name": "notification_config_id", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_2018671343", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "server_processes", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1431356653", - "max": 0, - "min": 0, - "name": "pid", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number1391558374", - "max": null, - "min": null, - "name": "memory_percent", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2651913466", - "max": null, - "min": null, - "name": "cpu_percent", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_3738798621", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "servers", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3847340049", - "max": 0, - "min": 0, - "name": "hostname", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text587191692", - "max": 0, - "min": 0, - "name": "ip_address", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063420466", - "max": 0, - "min": 0, - "name": "os_type", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select2063623452", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "up", - "down", - "warning", - "paused" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1563400775", - "max": 0, - "min": 0, - "name": "uptime", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number933879452", - "max": null, - "min": null, - "name": "ram_total", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number4038915663", - "max": null, - "min": null, - "name": "ram_used", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1461425251", - "max": null, - "min": null, - "name": "cpu_cores", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2062996636", - "max": null, - "min": null, - "name": "cpu_usage", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2583550350", - "max": null, - "min": null, - "name": "disk_total", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1976676007", - "max": null, - "min": null, - "name": "disk_used", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "date3415181003", - "max": "", - "min": "", - "name": "last_checked", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4290167602", - "max": 0, - "min": 0, - "name": "server_token", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text98176952", - "max": 0, - "min": 0, - "name": "template_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_863811952", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "services", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3475444733", - "max": 0, - "min": 0, - "name": "host", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number1563400775", - "max": null, - "min": null, - "name": "uptime", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3275068127", - "max": null, - "min": null, - "name": "response_time", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "date3415181003", - "max": "", - "min": "", - "name": "last_checked", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "date2341372968", - "max": "", - "min": "", - "name": "created_at", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number1133600204", - "max": null, - "min": null, - "name": "port", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2812878347", - "max": 0, - "min": 0, - "name": "domain", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number3142844404", - "max": null, - "min": null, - "name": "heartbeat_interval", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1907735298", - "max": null, - "min": null, - "name": "max_retries", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4011498884", - "max": 0, - "min": 0, - "name": "notification_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text98176952", - "max": 0, - "min": 0, - "name": "template_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select1117643717", - "maxSelect": 1, - "name": "service_type", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "http", - "tcp", - "ping", - "dns" - ] - }, - { - "hidden": false, - "id": "select2063623452", - "maxSelect": 1, - "name": "status", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "up", - "down", - "warning", - "paused" - ] - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4101391790", - "max": 0, - "min": 0, - "name": "url", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "select3434705756", - "maxSelect": 1, - "name": "alerts", - "presentable": false, - "required": false, - "system": false, - "type": "select", - "values": [ - "muted", - "unmuted" - ] - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1836745630", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "ssl_certificates", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2812878347", - "max": 0, - "min": 0, - "name": "domain", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2910474005", - "max": 0, - "min": 0, - "name": "issuer_o", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date2857577546", - "max": "", - "min": "", - "name": "last_notified", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number2281365985", - "max": null, - "min": null, - "name": "warning_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number219021052", - "max": null, - "min": null, - "name": "expiry_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3085370608", - "max": 0, - "min": 0, - "name": "notification_channel", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date2077745078", - "max": "", - "min": "", - "name": "valid_from", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number227839714", - "max": null, - "min": null, - "name": "serial_number", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2790380089", - "max": 0, - "min": 0, - "name": "issued_to", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date3449712486", - "max": "", - "min": "", - "name": "valid_till", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number1533826704", - "max": null, - "min": null, - "name": "validity_days", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number4007784154", - "max": null, - "min": null, - "name": "days_left", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number437829758", - "max": null, - "min": null, - "name": "valid_days_to_expire", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3452125334", - "max": 0, - "min": 0, - "name": "resolved_ip", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2712104570", - "max": 0, - "min": 0, - "name": "issuer_cn", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1754636037", - "max": 0, - "min": 0, - "name": "cert_alg", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1208359189", - "max": 0, - "min": 0, - "name": "cert_sans", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_1636150439", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "status_page_components", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text4053573849", - "max": 0, - "min": 0, - "name": "operational_status_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1843675174", - "max": 0, - "min": 0, - "name": "description", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3982272998", - "max": 0, - "min": 0, - "name": "service_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number4101605491", - "max": null, - "min": null, - "name": "display_order", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - }, - { - "id": "pbc_67962705", - "listRule": "", - "viewRule": "", - "createRule": "", - "updateRule": "", - "deleteRule": "", - "name": "uptime_data", - "type": "base", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3982272998", - "max": 0, - "min": 0, - "name": "service_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date2782324286", - "max": "", - "min": "", - "name": "timestamp", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number3275068127", - "max": null, - "min": null, - "name": "response_time", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "indexes": [], - "system": false - } ] \ No newline at end of file From aba3120235da8546bad660078c803a3a0823c6fc Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:33:52 +0200 Subject: [PATCH 26/46] fix(incidents): persist assignee correctly via assigned_users - map form field `assigned_to` to backend field `assigned_users` - ensure assignee is stored when creating or updating incidents - keep `assigned_to` for backward compatibility --- .../services/incident/incidentOperations.ts | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/application/src/services/incident/incidentOperations.ts b/application/src/services/incident/incidentOperations.ts index c19905a..5242c09 100644 --- a/application/src/services/incident/incidentOperations.ts +++ b/application/src/services/incident/incidentOperations.ts @@ -22,7 +22,7 @@ export const updateIncidentStatus = async (id: string, status: string): Promise< console.log(`Incident ${id} status updated successfully to ${status}`); } catch (error) { - console.error('Error updating incident status:', error); + console.error('Error updating incident status:', error);ok gib mir die throw error; } }; @@ -56,7 +56,9 @@ export const createIncident = async (data: CreateIncidentInput): Promise = affected_systems: data.affected_systems, priority: data.priority.toLowerCase(), service_id: data.service_id || '', - assigned_to: data.assigned_to || '', // Direct user ID assignment + //assigned_to: data.assigned_to || '', // Direct user ID assignment + //2025-08-18: // map UI field -> server schema + assigned_users: typeof data.assigned_to === 'string' ? data.assigned_to : '', root_cause: data.root_cause || '', resolution_steps: data.resolution_steps || '', lessons_learned: data.lessons_learned || '', @@ -82,28 +84,41 @@ export const createIncident = async (data: CreateIncidentInput): Promise = export const updateIncident = async (id: string, data: Partial): Promise => { try { console.log(`Updating incident ${id} with:`, data); - - // Make sure impact and priority are lowercase - const payload = { + + const payload: Record = { ...data, - impact: data.impact?.toLowerCase(), - priority: data.priority?.toLowerCase(), - status: data.status ? formatStatus(data.status) : undefined, - impact_status: data.status ? data.status.toLowerCase() : undefined, - ...(data.status?.toLowerCase() === 'resolved' && !data.resolution_time - ? { resolution_time: new Date().toISOString() } - : {}) + ...(data.impact ? { impact: data.impact.toLowerCase() } : {}), + ...(data.priority ? { priority: data.priority.toLowerCase() } : {}), + ...(data.status + ? { + status: formatStatus(data.status), + impact_status: data.status.toLowerCase(), + } + : {}), + // set only if assigned_to was provided + ...(typeof data.assigned_to === 'string' + ? { + assigned_users: data.assigned_to, // server field + assigned_to: data.assigned_to, // legacy field for backward compatibility + } + : {}), + // add resolution_time only if status changes to resolved + ...((data.status?.toLowerCase() === 'resolved' && !data.resolution_time) + ? { resolution_time: new Date().toISOString() } + : {}), }; - + console.log("Final payload for update:", payload); await pb.collection('incidents').update(id, payload); - + // Invalidate cache after update invalidateCache(); - + console.log(`Incident ${id} updated successfully`); } catch (error) { console.error('Error updating incident:', error); throw error; } }; + + From 70fdcc9ea6ad7ab919d2bfad1b713cd170d4798f Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:37:27 +0200 Subject: [PATCH 27/46] fix(incidents): include `assigned_users` in form submit so assignee is persisted --- .../schedule-incident/incident/hooks/useIncidentForm.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/application/src/components/schedule-incident/incident/hooks/useIncidentForm.ts b/application/src/components/schedule-incident/incident/hooks/useIncidentForm.ts index 13ca86f..124e9b9 100644 --- a/application/src/components/schedule-incident/incident/hooks/useIncidentForm.ts +++ b/application/src/components/schedule-incident/incident/hooks/useIncidentForm.ts @@ -57,6 +57,7 @@ export const useIncidentForm = (onSuccess: () => void, onClose: () => void) => { priority: data.priority, service_id: data.service_id, assigned_to: data.assigned_to, + assigned_users: data.assigned_to, // map to server field root_cause: data.root_cause, resolution_steps: data.resolution_steps, lessons_learned: data.lessons_learned, From 08580794da3ff955c1f347d89eea8c19910f59b0 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:44:38 +0200 Subject: [PATCH 28/46] =?UTF-8?q?fix(incidents):=20ensure=20assignee=20is?= =?UTF-8?q?=20prefilled=20and=20persisted=20on=20edit=20(assigned=5Fto=20?= =?UTF-8?q?=E2=86=92=20assigned=5Fusers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../incident/hooks/useIncidentEditForm.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/application/src/components/schedule-incident/incident/hooks/useIncidentEditForm.ts b/application/src/components/schedule-incident/incident/hooks/useIncidentEditForm.ts index 24ae314..4d5ebc0 100644 --- a/application/src/components/schedule-incident/incident/hooks/useIncidentEditForm.ts +++ b/application/src/components/schedule-incident/incident/hooks/useIncidentEditForm.ts @@ -25,7 +25,7 @@ export const useIncidentEditForm = ( impact: (incident.impact?.toLowerCase() || 'minor') as any, priority: (incident.priority?.toLowerCase() || 'medium') as any, service_id: incident.service_id || '', - assigned_to: incident.assigned_to || '', + assigned_to: incident.assigned_users || incident.assigned_to || '', root_cause: incident.root_cause || '', resolution_steps: incident.resolution_steps || '', lessons_learned: incident.lessons_learned || '', @@ -45,11 +45,14 @@ export const useIncidentEditForm = ( impact: data.impact, priority: data.priority, service_id: data.service_id, - assigned_to: data.assigned_to, // This is the user ID from the form + ...(data.assigned_to + ? { assigned_to: data.assigned_to, assigned_users: data.assigned_to } + : {}), root_cause: data.root_cause, resolution_steps: data.resolution_steps, lessons_learned: data.lessons_learned, }); + toast({ title: t('incidentUpdated'), From d4434a64e13311dcb3c2958b841c55608ad120f1 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:48:23 +0200 Subject: [PATCH 29/46] fix(types): add assigned_users to incident types for server persistence --- application/src/services/incident/types.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/application/src/services/incident/types.ts b/application/src/services/incident/types.ts index 0297356..3a4a2ed 100644 --- a/application/src/services/incident/types.ts +++ b/application/src/services/incident/types.ts @@ -5,7 +5,8 @@ export type IncidentItem = { service_id?: string; timestamp?: string; description: string; - assigned_to?: string; + assigned_to?: string; // legacy UI field + assigned_users?: string; // server field resolution_time?: string; impact: string; affected_systems: string; @@ -32,7 +33,8 @@ export type CreateIncidentInput = { affected_systems: string; priority: string; service_id?: string; - assigned_to?: string; + assigned_to?: string; // legacy UI field + assigned_users?: string; // server field root_cause?: string; resolution_steps?: string; lessons_learned?: string; @@ -50,7 +52,8 @@ export type UpdateIncidentInput = { affected_systems?: string; priority?: string; service_id?: string; - assigned_to?: string; + assigned_to?: string; // legacy UI field + assigned_users?: string; // server field root_cause?: string; resolution_steps?: string; lessons_learned?: string; From 7b1880606660f023426d7e51d2e16c5cb3414faf Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 22:56:31 +0200 Subject: [PATCH 30/46] fix(incidents): show assignee in table using assigned_users with fallback to assigned_to --- .../schedule-incident/incident/table/IncidentTableRow.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/components/schedule-incident/incident/table/IncidentTableRow.tsx b/application/src/components/schedule-incident/incident/table/IncidentTableRow.tsx index 8f068ff..43c1228 100644 --- a/application/src/components/schedule-incident/incident/table/IncidentTableRow.tsx +++ b/application/src/components/schedule-incident/incident/table/IncidentTableRow.tsx @@ -86,7 +86,7 @@ export const IncidentTableRow = memo(({ - + e.stopPropagation()}>
From 7ff180bea4c6c867b3ad17ba2facf8be847455a9 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:03:37 +0200 Subject: [PATCH 31/46] fix(incidents): fetch and display assignee in detail dialog via assigned_users with fallback --- .../incident/detail-dialog/IncidentDetailContent.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailContent.tsx b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailContent.tsx index 7fe8737..3424dee 100644 --- a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailContent.tsx +++ b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailContent.tsx @@ -25,19 +25,20 @@ export const IncidentDetailContent = ({ onClose, assignedUser }: IncidentDetailContentProps) => { - // Fetch assigned user details if one wasn't provided and there's an assigned_to field + // Fetch assigned user details if none was provided; prefer server field + const assigneeId = incident?.assigned_users || incident?.assigned_to; const { data: fetchedUser } = useQuery({ - queryKey: ['user', incident?.assigned_to], + queryKey: ['user', assigneeId], queryFn: async () => { - if (!incident?.assigned_to) return null; + if (!assigneeId) return null; try { - return await userService.getUser(incident.assigned_to); + return await userService.getUser(assigneeId); } catch (error) { console.error("Failed to fetch assigned user:", error); return null; } }, - enabled: !!incident?.assigned_to && !assignedUser, + enabled: !!assigneeId && !assignedUser, staleTime: 300000 // Cache for 5 minutes }); From 58fa09bea78cf38a2ed3c82f4ebc70fdcc0c78d9 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:07:20 +0200 Subject: [PATCH 32/46] fix(incidents): show assignee in AssignmentSection via assigned_users with fallback to assigned_to --- .../incident/detail-dialog/sections/AssignmentSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/components/schedule-incident/incident/detail-dialog/sections/AssignmentSection.tsx b/application/src/components/schedule-incident/incident/detail-dialog/sections/AssignmentSection.tsx index 2b41230..e5b9a6a 100644 --- a/application/src/components/schedule-incident/incident/detail-dialog/sections/AssignmentSection.tsx +++ b/application/src/components/schedule-incident/incident/detail-dialog/sections/AssignmentSection.tsx @@ -31,8 +31,8 @@ export const AssignmentSection: React.FC = ({ incident, {assignedUser.full_name || assignedUser.username}
- ) : incident.assigned_to ? ( - {incident.assigned_to} + ) : (incident.assigned_users || incident.assigned_to) ? ( + {incident.assigned_users || incident.assigned_to} ) : ( {t('unassigned')} )} From 4bd08efc9af8b69488b5d573550e0bb9a291f2fd Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:12:35 +0200 Subject: [PATCH 33/46] fix(incidents): display assignee in BasicInfoSection via assigned_users fallback --- .../incident/detail-dialog/sections/BasicInfoSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/components/schedule-incident/incident/detail-dialog/sections/BasicInfoSection.tsx b/application/src/components/schedule-incident/incident/detail-dialog/sections/BasicInfoSection.tsx index e343a2d..062ee01 100644 --- a/application/src/components/schedule-incident/incident/detail-dialog/sections/BasicInfoSection.tsx +++ b/application/src/components/schedule-incident/incident/detail-dialog/sections/BasicInfoSection.tsx @@ -50,8 +50,8 @@ export const BasicInfoSection: React.FC = ({ incident, as {assignedUser.full_name || assignedUser.username} - ) : incident.assigned_to ? ( - {incident.assigned_to} + ) : (incident.assigned_users || incident.assigned_to) ? ( + {incident.assigned_users || incident.assigned_to} ) : ( {t('unassigned')} )} From b164602ee504931420238c25300da025388f7093 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:18:20 +0200 Subject: [PATCH 34/46] fix(pdf): render assignee using assigned_users with fallback to assigned_to --- application/src/services/incident/pdf/sections.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/services/incident/pdf/sections.ts b/application/src/services/incident/pdf/sections.ts index a3ee403..f2e8602 100644 --- a/application/src/services/incident/pdf/sections.ts +++ b/application/src/services/incident/pdf/sections.ts @@ -158,7 +158,7 @@ export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: n yPos += 10; doc.setFontSize(10); doc.setTextColor(0, 0, 0); - const assignedTo = incident.assigned_to || 'Not assigned'; + const assignedTo = incident.assigned_users || incident.assigned_to || 'Not assigned'; doc.text(`Assigned to: ${assignedTo}`, 15, yPos); return yPos + 10; From b574073294614d545637bba48c1bcad083354c53 Mon Sep 17 00:00:00 2001 From: ghotso Date: Mon, 18 Aug 2025 23:55:26 +0200 Subject: [PATCH 35/46] fix(incidents): update detail dialog and PDF generation to prefer assigned_users over assigned_to for assignee --- .gitignore | 1 + application/package-lock.json | 300 +- .../detail-dialog/IncidentDetailDialog.tsx | 10 +- .../detail-dialog/IncidentDetailSections.tsx | 10 +- .../services/incident/incidentOperations.ts | 2 +- .../src/services/incident/pdf/generator.ts | 15 +- .../src/services/incident/pdf/sections.ts | 14 +- package-lock.json | 6 + server/pb_data/auxiliary.db-shm | Bin 32768 -> 32768 bytes server/pb_data/data.db-shm | Bin 32768 -> 32768 bytes server/pb_data/data.db-wal | Bin 0 -> 78312 bytes server/pb_data/types.d.ts | 4912 +++++++++-------- 12 files changed, 2807 insertions(+), 2463 deletions(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index efda3c4..8987ced 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ dist-ssr *.njsproj *.sln *.sw? +pocketbase.exe application/src/lib/pocketbase.ts Dockerfile application/src/lib/pocketbase-prod.ts diff --git a/application/package-lock.json b/application/package-lock.json index 1491f66..adec743 100644 --- a/application/package-lock.json +++ b/application/package-lock.json @@ -27,7 +27,7 @@ "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", - "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-separator": "^1.1.6", "@radix-ui/react-slider": "^1.2.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.0", @@ -43,6 +43,8 @@ "date-fns": "^3.6.0", "embla-carousel-react": "^8.3.0", "input-otp": "^1.2.4", + "jspdf": "^3.0.1", + "jspdf-autotable": "^5.0.2", "lucide-react": "^0.462.0", "next-themes": "^0.3.0", "pocketbase": "^0.19.0", @@ -91,13 +93,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.9.tgz", - "integrity": "sha512-4zpTHZ9Cm6L9L+uIqghQX8ZXg8HKFcjYO3qHoO8zTmRm6HQUJ8SSJ+KRvbMBZn0EGVlT4DRYeQ/6hjlyXBh+Kg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } @@ -1811,12 +1810,12 @@ } }, "node_modules/@radix-ui/react-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.0.tgz", - "integrity": "sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -1833,6 +1832,62 @@ } } }, + "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-slider": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.1.tgz", @@ -2832,6 +2887,13 @@ "devOptional": true, "license": "MIT" }, + "node_modules/@types/raf": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", + "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/react": { "version": "18.3.12", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", @@ -2853,6 +2915,13 @@ "@types/react": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", @@ -3206,6 +3275,18 @@ "node": ">=10" } }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -3250,6 +3331,16 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3318,6 +3409,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3358,6 +3461,26 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvg": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3843,6 +3966,18 @@ "dev": true, "license": "MIT" }, + "node_modules/core-js": { + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz", + "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3856,6 +3991,16 @@ "node": ">= 8" } }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -4064,6 +4209,16 @@ "csstype": "^3.0.2" } }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -4424,6 +4579,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -4647,6 +4808,20 @@ "node": ">= 0.4" } }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "optional": true, + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4848,6 +5023,33 @@ "dev": true, "license": "MIT" }, + "node_modules/jspdf": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.1.tgz", + "integrity": "sha512-qaGIxqxetdoNnFQQXxTKUD9/Z7AloLaw94fFsOiJMxbfYdBbrBuhWmbzI8TVjrw7s3jBY1PFHofBKMV/wZPapg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.7", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.11", + "core-js": "^3.6.0", + "dompurify": "^3.2.4", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/jspdf-autotable": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-5.0.2.tgz", + "integrity": "sha512-YNKeB7qmx3pxOLcNeoqAv3qTS7KuvVwkFe5AduCawpop3NOkBUtqDToxNc225MlNecxT4kP2Zy3z/y/yvGdXUQ==", + "license": "MIT", + "peerDependencies": { + "jspdf": "^2 || ^3" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5208,6 +5410,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT", + "optional": true + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -5450,6 +5659,16 @@ ], "license": "MIT" }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "optional": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -5708,10 +5927,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "optional": true }, "node_modules/resolve": { "version": "1.22.8", @@ -5750,6 +5970,16 @@ "node": ">=0.10.0" } }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, "node_modules/rollup": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", @@ -5883,6 +6113,16 @@ "node": ">=0.10.0" } }, + "node_modules/stackblur-canvas": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", + "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.14" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -6039,6 +6279,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/tailwind-merge": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", @@ -6095,6 +6345,16 @@ "tailwindcss": ">=3.0.0 || insiders" } }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -6314,6 +6574,16 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/vaul": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.9.9.tgz", diff --git a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailDialog.tsx b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailDialog.tsx index e0d26bf..5b0f77e 100644 --- a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailDialog.tsx +++ b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailDialog.tsx @@ -17,7 +17,7 @@ export const IncidentDetailDialog = ({ onOpenChange, incident }: IncidentDetailDialogProps) => { - // Fetch user data for assigned_to field + // Fetch user data for assigned field (prefer assigned_users, fallback to assigned_to) const { data: users = [] } = useQuery({ queryKey: ['users'], queryFn: async () => { @@ -25,12 +25,12 @@ export const IncidentDetailDialog = ({ return Array.isArray(usersList) ? usersList : []; }, staleTime: 300000, // Cache for 5 minutes - enabled: !!incident?.assigned_to && open // Only run query if there's an assigned_to value and dialog is open + enabled: !!(incident?.assigned_users || incident?.assigned_to) && open // Only run query if there's an assigned value and dialog is open }); - // Find the assigned user - const assignedUser = incident?.assigned_to - ? users.find(user => user.id === incident.assigned_to) + // Find the assigned user (prefer assigned_users, fallback to assigned_to) + const assignedUser = (incident?.assigned_users || incident?.assigned_to) + ? users.find(user => user.id === (incident?.assigned_users || incident?.assigned_to)) : null; if (!incident) return null; diff --git a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailSections.tsx b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailSections.tsx index b33f15e..3eb9ae3 100644 --- a/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailSections.tsx +++ b/application/src/components/schedule-incident/incident/detail-dialog/IncidentDetailSections.tsx @@ -23,19 +23,19 @@ export { // Legacy component - keeping this for backward compatibility with other imports export const IncidentDetailSections = ({ incident }: { incident: IncidentItem | null }) => { - // Fetch assigned user details if there's an assigned_to field + // Fetch assigned user details if there's an assigned field (prefer assigned_users, fallback to assigned_to) const { data: assignedUser } = useQuery({ - queryKey: ['user', incident?.assigned_to], + queryKey: ['user', incident?.assigned_users || incident?.assigned_to], queryFn: async () => { - if (!incident?.assigned_to) return null; + if (!(incident?.assigned_users || incident?.assigned_to)) return null; try { - return await userService.getUser(incident.assigned_to); + return await userService.getUser(incident?.assigned_users || incident?.assigned_to); } catch (error) { console.error("Failed to fetch assigned user:", error); return null; } }, - enabled: !!incident?.assigned_to, + enabled: !!(incident?.assigned_users || incident?.assigned_to), staleTime: 300000 // Cache for 5 minutes }); diff --git a/application/src/services/incident/incidentOperations.ts b/application/src/services/incident/incidentOperations.ts index 5242c09..8166389 100644 --- a/application/src/services/incident/incidentOperations.ts +++ b/application/src/services/incident/incidentOperations.ts @@ -22,7 +22,7 @@ export const updateIncidentStatus = async (id: string, status: string): Promise< console.log(`Incident ${id} status updated successfully to ${status}`); } catch (error) { - console.error('Error updating incident status:', error);ok gib mir die + console.error('Error updating incident status:', error); throw error; } }; diff --git a/application/src/services/incident/pdf/generator.ts b/application/src/services/incident/pdf/generator.ts index 5ce2ffd..6ffb398 100644 --- a/application/src/services/incident/pdf/generator.ts +++ b/application/src/services/incident/pdf/generator.ts @@ -1,6 +1,7 @@ import jsPDF from 'jspdf'; import { IncidentItem } from '../types'; +import { userService } from '@/services/userService'; import { addBasicInfoSection, addDescriptionSection, @@ -22,6 +23,18 @@ export const generatePdf = async (incident: IncidentItem): Promise => { throw new Error('Invalid incident data'); } + // Fetch assigned user data if available + let assignedUser = null; + const assigneeId = incident?.assigned_users || incident?.assigned_to; + if (assigneeId) { + try { + assignedUser = await userService.getUser(assigneeId); + } catch (error) { + console.warn('Failed to fetch assigned user for PDF:', error); + // Continue without user data + } + } + try { // Create new PDF document with portrait orientation const doc = new jsPDF({ @@ -85,7 +98,7 @@ export const generatePdf = async (incident: IncidentItem): Promise => { } // Add assignment section - yPos = addAssignmentSection(doc, incident, yPos); + yPos = addAssignmentSection(doc, incident, yPos, assignedUser); // Check if we need to add a new page if (yPos > 250) { diff --git a/application/src/services/incident/pdf/sections.ts b/application/src/services/incident/pdf/sections.ts index f2e8602..3f5b464 100644 --- a/application/src/services/incident/pdf/sections.ts +++ b/application/src/services/incident/pdf/sections.ts @@ -146,7 +146,7 @@ export const addResolutionSection = (doc: jsPDF, incident: IncidentItem, yPos: n /** * Add the assignment information section to the PDF */ -export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: number): number => { +export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: number, assignedUser?: any): number => { doc.setFontSize(14); doc.setTextColor(30, 64, 175); // Blue-800 doc.text('Assignment Information', 15, yPos); @@ -158,8 +158,16 @@ export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: n yPos += 10; doc.setFontSize(10); doc.setTextColor(0, 0, 0); - const assignedTo = incident.assigned_users || incident.assigned_to || 'Not assigned'; - doc.text(`Assigned to: ${assignedTo}`, 15, yPos); + + if (assignedUser) { + // Show user name if available + const userName = assignedUser.full_name || assignedUser.username || 'Unknown User'; + doc.text(`Assigned to: ${userName}`, 15, yPos); + } else { + // Fallback to ID if no user data available + const assignedTo = incident.assigned_users || incident.assigned_to || 'Not assigned'; + doc.text(`Assigned to: ${assignedTo}`, 15, yPos); + } return yPos + 10; }; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cc76d8e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "checkcle", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/server/pb_data/auxiliary.db-shm b/server/pb_data/auxiliary.db-shm index 9a867ac43c58c793a51a7c23235b99aace921af4..a7f5dd46951c4340d0370d02433157e679a24f6a 100644 GIT binary patch delta 86 zcmZo@U}|V!;*@x#%K!!wIpqcOBR+gEIQ}dcSx^%u2vNqs&<14uM*?v1jg9s70HBN> A<^TWy delta 86 zcmZo@U}|V!;*@x#%K!pQ6FKDtJ0m`Ph&ui(7+FvgCJ0srB!q$ZKN5h6Gi+?EuLl6G C1s-_- diff --git a/server/pb_data/data.db-shm b/server/pb_data/data.db-shm index fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10..4f477cfa3137b4539bc861d9f406c6c4332172b6 100644 GIT binary patch delta 317 zcmZo@U}|V!s+V}A%K!q*K+MR%ARr8+PcShsJYBrd>>bb5nC(XoR3G5`tkA0U@$|Q9 zxhtfq2bm25AanmC0k9wg!^C<{PoT97KpVkMU0#O^>G3&fc~yaYZzfih7N(+Ve-Ptr!q>&ubVCd+l zPcxc1bLXDrE_3GIbEOYd?{~HSVv5T()7_4xhn zTVCC?`H@d=+ORsFRRTS!^gt{d2;*wE+jUAH0NTwim-|Uvb`7>?W9!4QF(eKBqo!y4 zDY4z`YWwhnDxCDvFA$PA{W|?B{U`bl^b7Qh^e<|ES~JD_4R5OI58h=}XL&wT)#QHB zeWL3I>bIcXf5s%Qzqy&ZcxyJ+nNXs!p={r}bi6m7%vkrQEZw+#$>!yO%}Y*Qy*$ui zJ=GDI+tHOuB$TdfJeAz2^mGI^FF$K@VA=B1mTXzQIWT8VVC}lifwfy!uWku+bfuM8 zR_V5->4_(MmGodbp3K_P#f@avZ(O-%$;Pt-tCpW_-gfSs^qf6=5~*EEdTyVxdu}?G z>`o1ICQ_Yqr4T;WOr@2sRJyxd)`teW?Xw<|CRh7cHB+v5vRm1mIX?lV6G^4i|52;Z zqOA4b)O|}Qdi`5N)cy%7X}o)PRN0+X(#cq22^5lv<^&uaOs96nyOnf4gYqb{_seS+7&4qVih z;6jsg2@WP#$U#9OBg=hG(|OrP=J#jEdHtafbzqiO5c0&4FPw=5g&~jh*cXRmX6B~q z>(=;lR8N|y=q4#bYO_`H6B!za^Q-wj{gplZg!sCX~>s1~u*Ng=w>v6xha6X|rb9BtM~j z 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 literal 0 HcmV?d00001 diff --git a/server/pb_data/types.d.ts b/server/pb_data/types.d.ts index 2503831..5e2e23a 100644 --- a/server/pb_data/types.d.ts +++ b/server/pb_data/types.d.ts @@ -1,4 +1,4 @@ -// 1746911627 +// 1754113151 // GENERATED CODE - DO NOT MODIFY BY HAND // ------------------------------------------------------------------- @@ -170,14 +170,46 @@ declare function readerToString(reader: any, maxBytes?: number): string; * // io.Reader * const ex1 = toString(e.request.body) * - * // slice of bytes ("hello") - * const ex2 = toString([104 101 108 108 111]) + * // slice of bytes + * const ex2 = toString([104 101 108 108 111]) // "hello" + * + * // null + * const ex3 = toString(null) // "" * ``` * * @group PocketBase */ declare function toString(val: any, maxBytes?: number): string; +/** + * toBytes converts the specified value into a bytes slice. + * + * Support optional second maxBytes argument to limit the max read bytes + * when the value is a io.Reader (default to 32MB). + * + * Types that don't have Go slice representation (bool, objects, etc.) + * are serialized to UTF8 string and its bytes slice is returned. + * + * Example: + * + * ```js + * // io.Reader + * const ex1 = toBytes(e.request.body) + * + * // string + * const ex2 = toBytes("hello") // [104 101 108 108 111] + * + * // object (the same as the string '{"test":1}') + * const ex3 = toBytes({"test":1}) // [123 34 116 101 115 116 34 58 49 125] + * + * // null + * const ex4 = toBytes(null) // [] + * ``` + * + * @group PocketBase + */ +declare function toBytes(val: any, maxBytes?: number): Array; + /** * sleep pauses the current goroutine for at least the specified user duration (in ms). * A zero or negative duration returns immediately. @@ -211,7 +243,9 @@ declare function arrayOf(model: T): Array; /** * DynamicModel creates a new dynamic model with fields from the provided data shape. * - * Note that in order to use 0 as double/float initialization number you have to use negative zero (`-0`). + * Caveats: + * - In order to use 0 as double/float initialization number you have to negate it (`-0`). + * - You need to use lowerCamelCase when accessing the model fields (e.g. `model.roles` and not `model.Roles`). * * Example: * @@ -221,7 +255,7 @@ declare function arrayOf(model: T): Array; * age: 0, // int64 * totalSpent: -0, // float64 * active: false, - * roles: [], + * Roles: [], // maps to "Roles" in the DB/JSON but the prop would be accessible via "model.roles" * meta: {} * }) * ``` @@ -1770,8 +1804,8 @@ namespace os { * than ReadFrom. This is used to permit ReadFrom to call io.Copy * without leading to a recursive call to ReadFrom. */ - type _snLnyFf = noReadFrom&File - interface fileWithoutReadFrom extends _snLnyFf { + type _skYdpyD = noReadFrom&File + interface fileWithoutReadFrom extends _skYdpyD { } interface File { /** @@ -1815,8 +1849,8 @@ namespace os { * than WriteTo. This is used to permit WriteTo to call io.Copy * without leading to a recursive call to WriteTo. */ - type _syNvbJl = noWriteTo&File - interface fileWithoutWriteTo extends _syNvbJl { + type _sGGDXoE = noWriteTo&File + interface fileWithoutWriteTo extends _sGGDXoE { } interface File { /** @@ -2460,8 +2494,8 @@ namespace os { * * The methods of File are safe for concurrent use. */ - type _sDzXOPD = file - interface File extends _sDzXOPD { + type _sfAdXkW = file + interface File extends _sfAdXkW { } /** * A FileInfo describes a file and is returned by [Stat] and [Lstat]. @@ -2853,6 +2887,111 @@ namespace filepath { } } +/** + * Package template is a thin wrapper around the standard html/template + * and text/template packages that implements a convenient registry to + * load and cache templates on the fly concurrently. + * + * It was created to assist the JSVM plugin HTML rendering, but could be used in other Go code. + * + * Example: + * + * ``` + * registry := template.NewRegistry() + * + * html1, err := registry.LoadFiles( + * // the files set wil be parsed only once and then cached + * "layout.html", + * "content.html", + * ).Render(map[string]any{"name": "John"}) + * + * html2, err := registry.LoadFiles( + * // reuse the already parsed and cached files set + * "layout.html", + * "content.html", + * ).Render(map[string]any{"name": "Jane"}) + * ``` + */ +namespace template { + interface newRegistry { + /** + * NewRegistry creates and initializes a new templates registry with + * some defaults (eg. global "raw" template function for unescaped HTML). + * + * Use the Registry.Load* methods to load templates into the registry. + */ + (): (Registry) + } + /** + * Registry defines a templates registry that is safe to be used by multiple goroutines. + * + * Use the Registry.Load* methods to load templates into the registry. + */ + interface Registry { + } + interface Registry { + /** + * AddFuncs registers new global template functions. + * + * The key of each map entry is the function name that will be used in the templates. + * If a function with the map entry name already exists it will be replaced with the new one. + * + * The value of each map entry is a function that must have either a + * single return value, or two return values of which the second has type error. + * + * Example: + * + * ``` + * r.AddFuncs(map[string]any{ + * "toUpper": func(str string) string { + * return strings.ToUppser(str) + * }, + * ... + * }) + * ``` + */ + addFuncs(funcs: _TygojaDict): (Registry) + } + interface Registry { + /** + * LoadFiles caches (if not already) the specified filenames set as a + * single template and returns a ready to use Renderer instance. + * + * There must be at least 1 filename specified. + */ + loadFiles(...filenames: string[]): (Renderer) + } + interface Registry { + /** + * LoadString caches (if not already) the specified inline string as a + * single template and returns a ready to use Renderer instance. + */ + loadString(text: string): (Renderer) + } + interface Registry { + /** + * LoadFS caches (if not already) the specified fs and globPatterns + * pair as single template and returns a ready to use Renderer instance. + * + * There must be at least 1 file matching the provided globPattern(s) + * (note that most file names serves as glob patterns matching themselves). + */ + loadFS(fsys: fs.FS, ...globPatterns: string[]): (Renderer) + } + /** + * Renderer defines a single parsed template. + */ + interface Renderer { + } + interface Renderer { + /** + * Render executes the template with the specified data as the dot object + * and returns the result as plain string. + */ + render(data: any): string + } +} + /** * Package validation provides configurable and extensible rules for validating data of various types. */ @@ -3207,14 +3346,14 @@ namespace dbx { /** * MssqlBuilder is the builder for SQL Server databases. */ - type _sLlglaO = BaseBuilder - interface MssqlBuilder extends _sLlglaO { + type _sitJnyF = BaseBuilder + interface MssqlBuilder extends _sitJnyF { } /** * MssqlQueryBuilder is the query builder for SQL Server databases. */ - type _sIerFva = BaseQueryBuilder - interface MssqlQueryBuilder extends _sIerFva { + type _sjbsCyj = BaseQueryBuilder + interface MssqlQueryBuilder extends _sjbsCyj { } interface newMssqlBuilder { /** @@ -3285,8 +3424,8 @@ namespace dbx { /** * MysqlBuilder is the builder for MySQL databases. */ - type _sJRJGqZ = BaseBuilder - interface MysqlBuilder extends _sJRJGqZ { + type _sLzXYwy = BaseBuilder + interface MysqlBuilder extends _sLzXYwy { } interface newMysqlBuilder { /** @@ -3361,14 +3500,14 @@ namespace dbx { /** * OciBuilder is the builder for Oracle databases. */ - type _sHTbvIJ = BaseBuilder - interface OciBuilder extends _sHTbvIJ { + type _sGUxGfe = BaseBuilder + interface OciBuilder extends _sGUxGfe { } /** * OciQueryBuilder is the query builder for Oracle databases. */ - type _sGNFgrc = BaseQueryBuilder - interface OciQueryBuilder extends _sGNFgrc { + type _sbEZsEf = BaseQueryBuilder + interface OciQueryBuilder extends _sbEZsEf { } interface newOciBuilder { /** @@ -3431,8 +3570,8 @@ namespace dbx { /** * PgsqlBuilder is the builder for PostgreSQL databases. */ - type _sALdjlO = BaseBuilder - interface PgsqlBuilder extends _sALdjlO { + type _sFQOdZA = BaseBuilder + interface PgsqlBuilder extends _sFQOdZA { } interface newPgsqlBuilder { /** @@ -3499,8 +3638,8 @@ namespace dbx { /** * SqliteBuilder is the builder for SQLite databases. */ - type _spUmBhh = BaseBuilder - interface SqliteBuilder extends _spUmBhh { + type _sgEruTR = BaseBuilder + interface SqliteBuilder extends _sgEruTR { } interface newSqliteBuilder { /** @@ -3599,8 +3738,8 @@ namespace dbx { /** * StandardBuilder is the builder that is used by DB for an unknown driver. */ - type _sWjnuHQ = BaseBuilder - interface StandardBuilder extends _sWjnuHQ { + type _ssvZWuw = BaseBuilder + interface StandardBuilder extends _ssvZWuw { } interface newStandardBuilder { /** @@ -3666,8 +3805,8 @@ namespace dbx { * DB enhances sql.DB by providing a set of DB-agnostic query building methods. * DB allows easier query building and population of data into Go variables. */ - type _swIUbPb = Builder - interface DB extends _swIUbPb { + type _sqKgRBR = Builder + interface DB extends _sqKgRBR { /** * FieldMapper maps struct fields to DB columns. Defaults to DefaultFieldMapFunc. */ @@ -4471,8 +4610,8 @@ namespace dbx { * Rows enhances sql.Rows by providing additional data query methods. * Rows can be obtained by calling Query.Rows(). It is mainly used to populate data row by row. */ - type _sguxiye = sql.Rows - interface Rows extends _sguxiye { + type _scDwQDq = sql.Rows + interface Rows extends _scDwQDq { } interface Rows { /** @@ -4844,8 +4983,8 @@ namespace dbx { }): string } interface structInfo { } - type _sPncttL = structInfo - interface structValue extends _sPncttL { + type _smjtWVp = structInfo + interface structValue extends _smjtWVp { } interface fieldInfo { } @@ -4884,8 +5023,8 @@ namespace dbx { /** * Tx enhances sql.Tx with additional querying methods. */ - type _sbhRiou = Builder - interface Tx extends _sbhRiou { + type _sJnbhAq = Builder + interface Tx extends _sJnbhAq { } interface Tx { /** @@ -5140,8 +5279,8 @@ namespace filesystem { */ open(): io.ReadSeekCloser } - type _sgrUUXz = bytes.Reader - interface bytesReadSeekCloser extends _sgrUUXz { + type _sQJTdxu = bytes.Reader + interface bytesReadSeekCloser extends _sQJTdxu { } interface bytesReadSeekCloser { /** @@ -7106,8 +7245,8 @@ namespace core { /** * AuthOrigin defines a Record proxy for working with the authOrigins collection. */ - type _sUmzkLl = Record - interface AuthOrigin extends _sUmzkLl { + type _swwwIyo = Record + interface AuthOrigin extends _swwwIyo { } interface newAuthOrigin { /** @@ -7852,8 +7991,8 @@ namespace core { /** * @todo experiment eventually replacing the rules *string with a struct? */ - type _smUOmdS = BaseModel - interface baseCollection extends _smUOmdS { + type _stnEsaK = BaseModel + interface baseCollection extends _stnEsaK { listRule?: string viewRule?: string createRule?: string @@ -7880,8 +8019,8 @@ namespace core { /** * Collection defines the table, fields and various options related to a set of records. */ - type _sKRFDEg = baseCollection&collectionAuthOptions&collectionViewOptions - interface Collection extends _sKRFDEg { + type _sSFOxxn = baseCollection&collectionAuthOptions&collectionViewOptions + interface Collection extends _sSFOxxn { } interface newCollection { /** @@ -8891,8 +9030,8 @@ namespace core { /** * RequestEvent defines the PocketBase router handler event. */ - type _sKhraUa = router.Event - interface RequestEvent extends _sKhraUa { + type _sSsuavW = router.Event + interface RequestEvent extends _sSsuavW { app: App auth?: Record } @@ -8952,8 +9091,8 @@ namespace core { */ clone(): (RequestInfo) } - type _sbXFFhl = hook.Event&RequestEvent - interface BatchRequestEvent extends _sbXFFhl { + type _scfHRWh = hook.Event&RequestEvent + interface BatchRequestEvent extends _scfHRWh { batch: Array<(InternalRequest | undefined)> } interface InternalRequest { @@ -8990,28 +9129,34 @@ namespace core { interface baseCollectionEventData { tags(): Array } - type _spyRtBo = hook.Event - interface BootstrapEvent extends _spyRtBo { + type _sDyjMmr = hook.Event + interface BootstrapEvent extends _sDyjMmr { app: App } - type _scmVEbS = hook.Event - interface TerminateEvent extends _scmVEbS { + type _sCKjszS = hook.Event + interface TerminateEvent extends _sCKjszS { app: App isRestart: boolean } - type _sLJKyMQ = hook.Event - interface BackupEvent extends _sLJKyMQ { + type _sCEgcwo = hook.Event + interface BackupEvent extends _sCEgcwo { app: App context: context.Context name: string // the name of the backup to create/restore. exclude: Array // list of dir entries to exclude from the backup create/restore. } - type _sZsAFoN = hook.Event - interface ServeEvent extends _sZsAFoN { + type _swcVeOr = hook.Event + interface ServeEvent extends _swcVeOr { app: App router?: router.Router server?: http.Server certManager?: any + /** + * Listener allow specifying a custom network listener. + * + * Leave it nil to use the default net.Listen("tcp", e.Server.Addr). + */ + listener: net.Listener /** * InstallerFunc is the "installer" function that is called after * successful server tcp bind but only if there is no explicit @@ -9030,31 +9175,31 @@ namespace core { */ installerFunc: (app: App, systemSuperuser: Record, baseURL: string) => void } - type _szpyhbL = hook.Event&RequestEvent - interface SettingsListRequestEvent extends _szpyhbL { + type _sEtdHeu = hook.Event&RequestEvent + interface SettingsListRequestEvent extends _sEtdHeu { settings?: Settings } - type _sUrpTPz = hook.Event&RequestEvent - interface SettingsUpdateRequestEvent extends _sUrpTPz { + type _sHnRUbb = hook.Event&RequestEvent + interface SettingsUpdateRequestEvent extends _sHnRUbb { oldSettings?: Settings newSettings?: Settings } - type _sOIBUYK = hook.Event - interface SettingsReloadEvent extends _sOIBUYK { + type _szGInmz = hook.Event + interface SettingsReloadEvent extends _szGInmz { app: App } - type _srxGkIn = hook.Event - interface MailerEvent extends _srxGkIn { + type _stFCNKk = hook.Event + interface MailerEvent extends _stFCNKk { app: App mailer: mailer.Mailer message?: mailer.Message } - type _spcbBxx = MailerEvent&baseRecordEventData - interface MailerRecordEvent extends _spcbBxx { + type _sFVWybE = MailerEvent&baseRecordEventData + interface MailerRecordEvent extends _sFVWybE { meta: _TygojaDict } - type _seMeelk = hook.Event&baseModelEventData - interface ModelEvent extends _seMeelk { + type _skpgJYU = hook.Event&baseModelEventData + interface ModelEvent extends _skpgJYU { app: App context: context.Context /** @@ -9066,12 +9211,12 @@ namespace core { */ type: string } - type _stQeXll = ModelEvent - interface ModelErrorEvent extends _stQeXll { + type _scJGyGJ = ModelEvent + interface ModelErrorEvent extends _scJGyGJ { error: Error } - type _sLYFFhx = hook.Event&baseRecordEventData - interface RecordEvent extends _sLYFFhx { + type _sFNskcE = hook.Event&baseRecordEventData + interface RecordEvent extends _sFNskcE { app: App context: context.Context /** @@ -9083,12 +9228,12 @@ namespace core { */ type: string } - type _sWPmnLi = RecordEvent - interface RecordErrorEvent extends _sWPmnLi { + type _sADBBFO = RecordEvent + interface RecordErrorEvent extends _sADBBFO { error: Error } - type _seGYfWU = hook.Event&baseCollectionEventData - interface CollectionEvent extends _seGYfWU { + type _sjVFTsc = hook.Event&baseCollectionEventData + interface CollectionEvent extends _sjVFTsc { app: App context: context.Context /** @@ -9100,95 +9245,95 @@ namespace core { */ type: string } - type _sOEsoWv = CollectionEvent - interface CollectionErrorEvent extends _sOEsoWv { + type _sTVOfiH = CollectionEvent + interface CollectionErrorEvent extends _sTVOfiH { error: Error } - type _swJRVXC = hook.Event&RequestEvent&baseRecordEventData - interface FileTokenRequestEvent extends _swJRVXC { + type _svcaken = hook.Event&RequestEvent&baseRecordEventData + interface FileTokenRequestEvent extends _svcaken { token: string } - type _skWTzPe = hook.Event&RequestEvent&baseCollectionEventData - interface FileDownloadRequestEvent extends _skWTzPe { + type _sfwgWUc = hook.Event&RequestEvent&baseCollectionEventData + interface FileDownloadRequestEvent extends _sfwgWUc { record?: Record fileField?: FileField servedPath: string servedName: string } - type _sjZNtLd = hook.Event&RequestEvent - interface CollectionsListRequestEvent extends _sjZNtLd { + type _sSbGVqN = hook.Event&RequestEvent + interface CollectionsListRequestEvent extends _sSbGVqN { collections: Array<(Collection | undefined)> result?: search.Result } - type _sQwJwmj = hook.Event&RequestEvent - interface CollectionsImportRequestEvent extends _sQwJwmj { + type _slOXOLE = hook.Event&RequestEvent + interface CollectionsImportRequestEvent extends _slOXOLE { collectionsData: Array<_TygojaDict> deleteMissing: boolean } - type _ssHWEJn = hook.Event&RequestEvent&baseCollectionEventData - interface CollectionRequestEvent extends _ssHWEJn { + type _siujKnZ = hook.Event&RequestEvent&baseCollectionEventData + interface CollectionRequestEvent extends _siujKnZ { } - type _sZMxaAS = hook.Event&RequestEvent - interface RealtimeConnectRequestEvent extends _sZMxaAS { + type _sKakeGz = hook.Event&RequestEvent + interface RealtimeConnectRequestEvent extends _sKakeGz { client: subscriptions.Client /** * note: modifying it after the connect has no effect */ idleTimeout: time.Duration } - type _sirsirI = hook.Event&RequestEvent - interface RealtimeMessageEvent extends _sirsirI { + type _smPsqTB = hook.Event&RequestEvent + interface RealtimeMessageEvent extends _smPsqTB { client: subscriptions.Client message?: subscriptions.Message } - type _sGVLXGI = hook.Event&RequestEvent - interface RealtimeSubscribeRequestEvent extends _sGVLXGI { + type _sjjKWUu = hook.Event&RequestEvent + interface RealtimeSubscribeRequestEvent extends _sjjKWUu { client: subscriptions.Client subscriptions: Array } - type _sNkctgx = hook.Event&RequestEvent&baseCollectionEventData - interface RecordsListRequestEvent extends _sNkctgx { + type _sPluviw = hook.Event&RequestEvent&baseCollectionEventData + interface RecordsListRequestEvent extends _sPluviw { /** * @todo consider removing and maybe add as generic to the search.Result? */ records: Array<(Record | undefined)> result?: search.Result } - type _sesXIeC = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestEvent extends _sesXIeC { + type _snemiHd = hook.Event&RequestEvent&baseCollectionEventData + interface RecordRequestEvent extends _snemiHd { record?: Record } - type _sNqEfxw = hook.Event&baseRecordEventData - interface RecordEnrichEvent extends _sNqEfxw { + type _sTpdYFO = hook.Event&baseRecordEventData + interface RecordEnrichEvent extends _sTpdYFO { app: App requestInfo?: RequestInfo } - type _saJisDV = hook.Event&RequestEvent&baseCollectionEventData - interface RecordCreateOTPRequestEvent extends _saJisDV { + type _slOmiMf = hook.Event&RequestEvent&baseCollectionEventData + interface RecordCreateOTPRequestEvent extends _slOmiMf { record?: Record password: string } - type _sOSfgvh = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithOTPRequestEvent extends _sOSfgvh { + type _sdQxezU = hook.Event&RequestEvent&baseCollectionEventData + interface RecordAuthWithOTPRequestEvent extends _sdQxezU { record?: Record otp?: OTP } - type _sAHiJnG = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthRequestEvent extends _sAHiJnG { + type _sWTDBZU = hook.Event&RequestEvent&baseCollectionEventData + interface RecordAuthRequestEvent extends _sWTDBZU { record?: Record token: string meta: any authMethod: string } - type _syiXgiO = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithPasswordRequestEvent extends _syiXgiO { + type _sxFIkue = hook.Event&RequestEvent&baseCollectionEventData + interface RecordAuthWithPasswordRequestEvent extends _sxFIkue { record?: Record identity: string identityField: string password: string } - type _sRauTZa = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithOAuth2RequestEvent extends _sRauTZa { + type _sJlcwKU = hook.Event&RequestEvent&baseCollectionEventData + interface RecordAuthWithOAuth2RequestEvent extends _sJlcwKU { providerName: string providerClient: auth.Provider record?: Record @@ -9196,41 +9341,41 @@ namespace core { createData: _TygojaDict isNewRecord: boolean } - type _srGgmEJ = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthRefreshRequestEvent extends _srGgmEJ { + type _sMBnUFa = hook.Event&RequestEvent&baseCollectionEventData + interface RecordAuthRefreshRequestEvent extends _sMBnUFa { record?: Record } - type _sFfmUxk = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestPasswordResetRequestEvent extends _sFfmUxk { + type _sHvAkrq = hook.Event&RequestEvent&baseCollectionEventData + interface RecordRequestPasswordResetRequestEvent extends _sHvAkrq { record?: Record } - type _sLGZbki = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmPasswordResetRequestEvent extends _sLGZbki { + type _sKukvnc = hook.Event&RequestEvent&baseCollectionEventData + interface RecordConfirmPasswordResetRequestEvent extends _sKukvnc { record?: Record } - type _sQcbAzh = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestVerificationRequestEvent extends _sQcbAzh { + type _snAikpn = hook.Event&RequestEvent&baseCollectionEventData + interface RecordRequestVerificationRequestEvent extends _snAikpn { record?: Record } - type _sIJpEBx = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmVerificationRequestEvent extends _sIJpEBx { + type _sWfOAbO = hook.Event&RequestEvent&baseCollectionEventData + interface RecordConfirmVerificationRequestEvent extends _sWfOAbO { record?: Record } - type _sGcXDVI = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestEmailChangeRequestEvent extends _sGcXDVI { + type _sCDRxYR = hook.Event&RequestEvent&baseCollectionEventData + interface RecordRequestEmailChangeRequestEvent extends _sCDRxYR { record?: Record newEmail: string } - type _sFyRDNw = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmEmailChangeRequestEvent extends _sFyRDNw { + type _sfXHbki = hook.Event&RequestEvent&baseCollectionEventData + interface RecordConfirmEmailChangeRequestEvent extends _sfXHbki { record?: Record newEmail: string } /** * ExternalAuth defines a Record proxy for working with the externalAuths collection. */ - type _sBktZEa = Record - interface ExternalAuth extends _sBktZEa { + type _sMtCbYa = Record + interface ExternalAuth extends _sMtCbYa { } interface newExternalAuth { /** @@ -11692,8 +11837,8 @@ namespace core { interface onlyFieldType { type: string } - type _sHqecYH = Field - interface fieldWithType extends _sHqecYH { + type _swZLBAb = Field + interface fieldWithType extends _swZLBAb { type: string } interface fieldWithType { @@ -11725,8 +11870,8 @@ namespace core { */ scan(value: any): void } - type _sUWXjNf = BaseModel - interface Log extends _sUWXjNf { + type _sphBvpU = BaseModel + interface Log extends _sphBvpU { created: types.DateTime data: types.JSONMap message: string @@ -11772,8 +11917,8 @@ namespace core { /** * MFA defines a Record proxy for working with the mfas collection. */ - type _sobFmjd = Record - interface MFA extends _sobFmjd { + type _sCBfLbc = Record + interface MFA extends _sCBfLbc { } interface newMFA { /** @@ -11995,8 +12140,8 @@ namespace core { /** * OTP defines a Record proxy for working with the otps collection. */ - type _swyrTJF = Record - interface OTP extends _swyrTJF { + type _szherMo = Record + interface OTP extends _szherMo { } interface newOTP { /** @@ -12232,8 +12377,8 @@ namespace core { } interface runner { } - type _sksdbkz = BaseModel - interface Record extends _sksdbkz { + type _svnfMnv = BaseModel + interface Record extends _svnfMnv { } interface newRecord { /** @@ -12708,8 +12853,8 @@ namespace core { * BaseRecordProxy implements the [RecordProxy] interface and it is intended * to be used as embed to custom user provided Record proxy structs. */ - type _sPOlOfX = Record - interface BaseRecordProxy extends _sPOlOfX { + type _sUpBOaT = Record + interface BaseRecordProxy extends _sUpBOaT { } interface BaseRecordProxy { /** @@ -12958,8 +13103,8 @@ namespace core { /** * Settings defines the PocketBase app settings. */ - type _sXtvxjh = settings - interface Settings extends _sXtvxjh { + type _sKtHOEb = settings + interface Settings extends _sKtHOEb { } interface Settings { /** @@ -13260,8 +13405,14 @@ namespace core { */ durationTime(): time.Duration } - type _sCbDiPV = BaseModel - interface Param extends _sCbDiPV { + interface RateLimitRule { + /** + * String returns a string representation of the rule. + */ + string(): string + } + type _sUaqFVw = BaseModel + interface Param extends _sUaqFVw { created: types.DateTime updated: types.DateTime value: types.JSONRaw @@ -13775,8 +13926,8 @@ namespace apis { */ (limitBytes: number): (hook.Handler) } - type _svzUclG = io.ReadCloser - interface limitedReader extends _svzUclG { + type _spXrWSL = io.ReadCloser + interface limitedReader extends _spXrWSL { } interface limitedReader { read(b: string|Array): number @@ -13927,8 +14078,8 @@ namespace apis { */ (config: GzipConfig): (hook.Handler) } - type _sGCwxMx = http.ResponseWriter&io.Writer - interface gzipResponseWriter extends _sGCwxMx { + type _sPsHNXs = http.ResponseWriter&io.Writer + interface gzipResponseWriter extends _sPsHNXs { } interface gzipResponseWriter { writeHeader(code: number): void @@ -13948,11 +14099,11 @@ namespace apis { interface gzipResponseWriter { unwrap(): http.ResponseWriter } - type _sXBRDsb = sync.RWMutex - interface rateLimiter extends _sXBRDsb { + type _svOFjDw = sync.RWMutex + interface rateLimiter extends _svOFjDw { } - type _sxuiJKx = sync.Mutex - interface fixedWindow extends _sxuiJKx { + type _sOTuHjq = sync.Mutex + interface fixedWindow extends _sOTuHjq { } interface realtimeSubscribeForm { clientId: string @@ -14193,8 +14344,8 @@ namespace pocketbase { * It implements [CoreApp] via embedding and all of the app interface methods * could be accessed directly through the instance (eg. PocketBase.DataDir()). */ - type _sQnaLxt = CoreApp - interface PocketBase extends _sQnaLxt { + type _sEJLutg = CoreApp + interface PocketBase extends _sEJLutg { /** * RootCmd is the main console command */ @@ -14279,111 +14430,6 @@ namespace pocketbase { } } -/** - * Package template is a thin wrapper around the standard html/template - * and text/template packages that implements a convenient registry to - * load and cache templates on the fly concurrently. - * - * It was created to assist the JSVM plugin HTML rendering, but could be used in other Go code. - * - * Example: - * - * ``` - * registry := template.NewRegistry() - * - * html1, err := registry.LoadFiles( - * // the files set wil be parsed only once and then cached - * "layout.html", - * "content.html", - * ).Render(map[string]any{"name": "John"}) - * - * html2, err := registry.LoadFiles( - * // reuse the already parsed and cached files set - * "layout.html", - * "content.html", - * ).Render(map[string]any{"name": "Jane"}) - * ``` - */ -namespace template { - interface newRegistry { - /** - * NewRegistry creates and initializes a new templates registry with - * some defaults (eg. global "raw" template function for unescaped HTML). - * - * Use the Registry.Load* methods to load templates into the registry. - */ - (): (Registry) - } - /** - * Registry defines a templates registry that is safe to be used by multiple goroutines. - * - * Use the Registry.Load* methods to load templates into the registry. - */ - interface Registry { - } - interface Registry { - /** - * AddFuncs registers new global template functions. - * - * The key of each map entry is the function name that will be used in the templates. - * If a function with the map entry name already exists it will be replaced with the new one. - * - * The value of each map entry is a function that must have either a - * single return value, or two return values of which the second has type error. - * - * Example: - * - * ``` - * r.AddFuncs(map[string]any{ - * "toUpper": func(str string) string { - * return strings.ToUppser(str) - * }, - * ... - * }) - * ``` - */ - addFuncs(funcs: _TygojaDict): (Registry) - } - interface Registry { - /** - * LoadFiles caches (if not already) the specified filenames set as a - * single template and returns a ready to use Renderer instance. - * - * There must be at least 1 filename specified. - */ - loadFiles(...filenames: string[]): (Renderer) - } - interface Registry { - /** - * LoadString caches (if not already) the specified inline string as a - * single template and returns a ready to use Renderer instance. - */ - loadString(text: string): (Renderer) - } - interface Registry { - /** - * LoadFS caches (if not already) the specified fs and globPatterns - * pair as single template and returns a ready to use Renderer instance. - * - * There must be at least 1 file matching the provided globPattern(s) - * (note that most file names serves as glob patterns matching themselves). - */ - loadFS(fsys: fs.FS, ...globPatterns: string[]): (Renderer) - } - /** - * Renderer defines a single parsed template. - */ - interface Renderer { - } - interface Renderer { - /** - * Render executes the template with the specified data as the dot object - * and returns the result as plain string. - */ - render(data: any): string - } -} - /** * Package sync provides basic synchronization primitives such as mutual * exclusion locks. Other than the [Once] and [WaitGroup] types, most are intended @@ -15790,6 +15836,243 @@ namespace context { } } +/** + * Package net provides a portable interface for network I/O, including + * TCP/IP, UDP, domain name resolution, and Unix domain sockets. + * + * Although the package provides access to low-level networking + * primitives, most clients will need only the basic interface provided + * by the [Dial], [Listen], and Accept functions and the associated + * [Conn] and [Listener] interfaces. The crypto/tls package uses + * the same interfaces and similar Dial and Listen functions. + * + * The Dial function connects to a server: + * + * ``` + * conn, err := net.Dial("tcp", "golang.org:80") + * if err != nil { + * // handle error + * } + * fmt.Fprintf(conn, "GET / HTTP/1.0\r\n\r\n") + * status, err := bufio.NewReader(conn).ReadString('\n') + * // ... + * ``` + * + * The Listen function creates servers: + * + * ``` + * ln, err := net.Listen("tcp", ":8080") + * if err != nil { + * // handle error + * } + * for { + * conn, err := ln.Accept() + * if err != nil { + * // handle error + * } + * go handleConnection(conn) + * } + * ``` + * + * # Name Resolution + * + * The method for resolving domain names, whether indirectly with functions like Dial + * or directly with functions like [LookupHost] and [LookupAddr], varies by operating system. + * + * On Unix systems, the resolver has two options for resolving names. + * It can use a pure Go resolver that sends DNS requests directly to the servers + * listed in /etc/resolv.conf, or it can use a cgo-based resolver that calls C + * library routines such as getaddrinfo and getnameinfo. + * + * On Unix the pure Go resolver is preferred over the cgo resolver, because a blocked DNS + * request consumes only a goroutine, while a blocked C call consumes an operating system thread. + * When cgo is available, the cgo-based resolver is used instead under a variety of + * conditions: on systems that do not let programs make direct DNS requests (OS X), + * when the LOCALDOMAIN environment variable is present (even if empty), + * when the RES_OPTIONS or HOSTALIASES environment variable is non-empty, + * when the ASR_CONFIG environment variable is non-empty (OpenBSD only), + * when /etc/resolv.conf or /etc/nsswitch.conf specify the use of features that the + * Go resolver does not implement. + * + * On all systems (except Plan 9), when the cgo resolver is being used + * this package applies a concurrent cgo lookup limit to prevent the system + * from running out of system threads. Currently, it is limited to 500 concurrent lookups. + * + * The resolver decision can be overridden by setting the netdns value of the + * GODEBUG environment variable (see package runtime) to go or cgo, as in: + * + * ``` + * export GODEBUG=netdns=go # force pure Go resolver + * export GODEBUG=netdns=cgo # force native resolver (cgo, win32) + * ``` + * + * The decision can also be forced while building the Go source tree + * by setting the netgo or netcgo build tag. + * + * A numeric netdns setting, as in GODEBUG=netdns=1, causes the resolver + * to print debugging information about its decisions. + * To force a particular resolver while also printing debugging information, + * join the two settings by a plus sign, as in GODEBUG=netdns=go+1. + * + * The Go resolver will send an EDNS0 additional header with a DNS request, + * to signal a willingness to accept a larger DNS packet size. + * This can reportedly cause sporadic failures with the DNS server run + * by some modems and routers. Setting GODEBUG=netedns0=0 will disable + * sending the additional header. + * + * On macOS, if Go code that uses the net package is built with + * -buildmode=c-archive, linking the resulting archive into a C program + * requires passing -lresolv when linking the C code. + * + * On Plan 9, the resolver always accesses /net/cs and /net/dns. + * + * On Windows, in Go 1.18.x and earlier, the resolver always used C + * library functions, such as GetAddrInfo and DnsQuery. + */ +namespace net { + /** + * Conn is a generic stream-oriented network connection. + * + * Multiple goroutines may invoke methods on a Conn simultaneously. + */ + interface Conn { + [key:string]: any; + /** + * Read reads data from the connection. + * Read can be made to time out and return an error after a fixed + * time limit; see SetDeadline and SetReadDeadline. + */ + read(b: string|Array): number + /** + * Write writes data to the connection. + * Write can be made to time out and return an error after a fixed + * time limit; see SetDeadline and SetWriteDeadline. + */ + write(b: string|Array): number + /** + * Close closes the connection. + * Any blocked Read or Write operations will be unblocked and return errors. + */ + close(): void + /** + * LocalAddr returns the local network address, if known. + */ + localAddr(): Addr + /** + * RemoteAddr returns the remote network address, if known. + */ + remoteAddr(): Addr + /** + * SetDeadline sets the read and write deadlines associated + * with the connection. It is equivalent to calling both + * SetReadDeadline and SetWriteDeadline. + * + * A deadline is an absolute time after which I/O operations + * fail instead of blocking. The deadline applies to all future + * and pending I/O, not just the immediately following call to + * Read or Write. After a deadline has been exceeded, the + * connection can be refreshed by setting a deadline in the future. + * + * If the deadline is exceeded a call to Read or Write or to other + * I/O methods will return an error that wraps os.ErrDeadlineExceeded. + * This can be tested using errors.Is(err, os.ErrDeadlineExceeded). + * The error's Timeout method will return true, but note that there + * are other possible errors for which the Timeout method will + * return true even if the deadline has not been exceeded. + * + * An idle timeout can be implemented by repeatedly extending + * the deadline after successful Read or Write calls. + * + * A zero value for t means I/O operations will not time out. + */ + setDeadline(t: time.Time): void + /** + * SetReadDeadline sets the deadline for future Read calls + * and any currently-blocked Read call. + * A zero value for t means Read will not time out. + */ + setReadDeadline(t: time.Time): void + /** + * SetWriteDeadline sets the deadline for future Write calls + * and any currently-blocked Write call. + * Even if write times out, it may return n > 0, indicating that + * some of the data was successfully written. + * A zero value for t means Write will not time out. + */ + setWriteDeadline(t: time.Time): void + } + /** + * A Listener is a generic network listener for stream-oriented protocols. + * + * Multiple goroutines may invoke methods on a Listener simultaneously. + */ + interface Listener { + [key:string]: any; + /** + * Accept waits for and returns the next connection to the listener. + */ + accept(): Conn + /** + * Close closes the listener. + * Any blocked Accept operations will be unblocked and return errors. + */ + close(): void + /** + * Addr returns the listener's network address. + */ + addr(): Addr + } +} + +/** + * Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html + * + * See README.md for more info. + */ +namespace jwt { + /** + * MapClaims is a claims type that uses the map[string]any for JSON + * decoding. This is the default claims type if you don't supply one + */ + interface MapClaims extends _TygojaDict{} + interface MapClaims { + /** + * GetExpirationTime implements the Claims interface. + */ + getExpirationTime(): (NumericDate) + } + interface MapClaims { + /** + * GetNotBefore implements the Claims interface. + */ + getNotBefore(): (NumericDate) + } + interface MapClaims { + /** + * GetIssuedAt implements the Claims interface. + */ + getIssuedAt(): (NumericDate) + } + interface MapClaims { + /** + * GetAudience implements the Claims interface. + */ + getAudience(): ClaimStrings + } + interface MapClaims { + /** + * GetIssuer implements the Claims interface. + */ + getIssuer(): string + } + interface MapClaims { + /** + * GetSubject implements the Claims interface. + */ + getSubject(): string + } +} + /** * Package sql provides a generic interface around SQL (or SQL-like) * databases. @@ -16627,347 +16910,6 @@ namespace syntax { interface Flags extends Number{} } -namespace store { - /** - * Store defines a concurrent safe in memory key-value data store. - */ - interface Store { - } - interface Store { - /** - * Reset clears the store and replaces the store data with a - * shallow copy of the provided newData. - */ - reset(newData: _TygojaDict): void - } - interface Store { - /** - * Length returns the current number of elements in the store. - */ - length(): number - } - interface Store { - /** - * RemoveAll removes all the existing store entries. - */ - removeAll(): void - } - interface Store { - /** - * Remove removes a single entry from the store. - * - * Remove does nothing if key doesn't exist in the store. - */ - remove(key: K): void - } - interface Store { - /** - * Has checks if element with the specified key exist or not. - */ - has(key: K): boolean - } - interface Store { - /** - * Get returns a single element value from the store. - * - * If key is not set, the zero T value is returned. - */ - get(key: K): T - } - interface Store { - /** - * GetOk is similar to Get but returns also a boolean indicating whether the key exists or not. - */ - getOk(key: K): [T, boolean] - } - interface Store { - /** - * GetAll returns a shallow copy of the current store data. - */ - getAll(): _TygojaDict - } - interface Store { - /** - * Values returns a slice with all of the current store values. - */ - values(): Array - } - interface Store { - /** - * Set sets (or overwrite if already exists) a new value for key. - */ - set(key: K, value: T): void - } - interface Store { - /** - * SetFunc sets (or overwrite if already exists) a new value resolved - * from the function callback for the provided key. - * - * The function callback receives as argument the old store element value (if exists). - * If there is no old store element, the argument will be the T zero value. - * - * Example: - * - * ``` - * s := store.New[string, int](nil) - * s.SetFunc("count", func(old int) int { - * return old + 1 - * }) - * ``` - */ - setFunc(key: K, fn: (old: T) => T): void - } - interface Store { - /** - * GetOrSet retrieves a single existing value for the provided key - * or stores a new one if it doesn't exist. - */ - getOrSet(key: K, setFunc: () => T): T - } - interface Store { - /** - * SetIfLessThanLimit sets (or overwrite if already exist) a new value for key. - * - * This method is similar to Set() but **it will skip adding new elements** - * to the store if the store length has reached the specified limit. - * false is returned if maxAllowedElements limit is reached. - */ - setIfLessThanLimit(key: K, value: T, maxAllowedElements: number): boolean - } - interface Store { - /** - * UnmarshalJSON implements [json.Unmarshaler] and imports the - * provided JSON data into the store. - * - * The store entries that match with the ones from the data will be overwritten with the new value. - */ - unmarshalJSON(data: string|Array): void - } - interface Store { - /** - * MarshalJSON implements [json.Marshaler] and export the current - * store data into valid JSON. - */ - marshalJSON(): string|Array - } -} - -/** - * Package net provides a portable interface for network I/O, including - * TCP/IP, UDP, domain name resolution, and Unix domain sockets. - * - * Although the package provides access to low-level networking - * primitives, most clients will need only the basic interface provided - * by the [Dial], [Listen], and Accept functions and the associated - * [Conn] and [Listener] interfaces. The crypto/tls package uses - * the same interfaces and similar Dial and Listen functions. - * - * The Dial function connects to a server: - * - * ``` - * conn, err := net.Dial("tcp", "golang.org:80") - * if err != nil { - * // handle error - * } - * fmt.Fprintf(conn, "GET / HTTP/1.0\r\n\r\n") - * status, err := bufio.NewReader(conn).ReadString('\n') - * // ... - * ``` - * - * The Listen function creates servers: - * - * ``` - * ln, err := net.Listen("tcp", ":8080") - * if err != nil { - * // handle error - * } - * for { - * conn, err := ln.Accept() - * if err != nil { - * // handle error - * } - * go handleConnection(conn) - * } - * ``` - * - * # Name Resolution - * - * The method for resolving domain names, whether indirectly with functions like Dial - * or directly with functions like [LookupHost] and [LookupAddr], varies by operating system. - * - * On Unix systems, the resolver has two options for resolving names. - * It can use a pure Go resolver that sends DNS requests directly to the servers - * listed in /etc/resolv.conf, or it can use a cgo-based resolver that calls C - * library routines such as getaddrinfo and getnameinfo. - * - * On Unix the pure Go resolver is preferred over the cgo resolver, because a blocked DNS - * request consumes only a goroutine, while a blocked C call consumes an operating system thread. - * When cgo is available, the cgo-based resolver is used instead under a variety of - * conditions: on systems that do not let programs make direct DNS requests (OS X), - * when the LOCALDOMAIN environment variable is present (even if empty), - * when the RES_OPTIONS or HOSTALIASES environment variable is non-empty, - * when the ASR_CONFIG environment variable is non-empty (OpenBSD only), - * when /etc/resolv.conf or /etc/nsswitch.conf specify the use of features that the - * Go resolver does not implement. - * - * On all systems (except Plan 9), when the cgo resolver is being used - * this package applies a concurrent cgo lookup limit to prevent the system - * from running out of system threads. Currently, it is limited to 500 concurrent lookups. - * - * The resolver decision can be overridden by setting the netdns value of the - * GODEBUG environment variable (see package runtime) to go or cgo, as in: - * - * ``` - * export GODEBUG=netdns=go # force pure Go resolver - * export GODEBUG=netdns=cgo # force native resolver (cgo, win32) - * ``` - * - * The decision can also be forced while building the Go source tree - * by setting the netgo or netcgo build tag. - * - * A numeric netdns setting, as in GODEBUG=netdns=1, causes the resolver - * to print debugging information about its decisions. - * To force a particular resolver while also printing debugging information, - * join the two settings by a plus sign, as in GODEBUG=netdns=go+1. - * - * The Go resolver will send an EDNS0 additional header with a DNS request, - * to signal a willingness to accept a larger DNS packet size. - * This can reportedly cause sporadic failures with the DNS server run - * by some modems and routers. Setting GODEBUG=netedns0=0 will disable - * sending the additional header. - * - * On macOS, if Go code that uses the net package is built with - * -buildmode=c-archive, linking the resulting archive into a C program - * requires passing -lresolv when linking the C code. - * - * On Plan 9, the resolver always accesses /net/cs and /net/dns. - * - * On Windows, in Go 1.18.x and earlier, the resolver always used C - * library functions, such as GetAddrInfo and DnsQuery. - */ -namespace net { - /** - * Conn is a generic stream-oriented network connection. - * - * Multiple goroutines may invoke methods on a Conn simultaneously. - */ - interface Conn { - [key:string]: any; - /** - * Read reads data from the connection. - * Read can be made to time out and return an error after a fixed - * time limit; see SetDeadline and SetReadDeadline. - */ - read(b: string|Array): number - /** - * Write writes data to the connection. - * Write can be made to time out and return an error after a fixed - * time limit; see SetDeadline and SetWriteDeadline. - */ - write(b: string|Array): number - /** - * Close closes the connection. - * Any blocked Read or Write operations will be unblocked and return errors. - */ - close(): void - /** - * LocalAddr returns the local network address, if known. - */ - localAddr(): Addr - /** - * RemoteAddr returns the remote network address, if known. - */ - remoteAddr(): Addr - /** - * SetDeadline sets the read and write deadlines associated - * with the connection. It is equivalent to calling both - * SetReadDeadline and SetWriteDeadline. - * - * A deadline is an absolute time after which I/O operations - * fail instead of blocking. The deadline applies to all future - * and pending I/O, not just the immediately following call to - * Read or Write. After a deadline has been exceeded, the - * connection can be refreshed by setting a deadline in the future. - * - * If the deadline is exceeded a call to Read or Write or to other - * I/O methods will return an error that wraps os.ErrDeadlineExceeded. - * This can be tested using errors.Is(err, os.ErrDeadlineExceeded). - * The error's Timeout method will return true, but note that there - * are other possible errors for which the Timeout method will - * return true even if the deadline has not been exceeded. - * - * An idle timeout can be implemented by repeatedly extending - * the deadline after successful Read or Write calls. - * - * A zero value for t means I/O operations will not time out. - */ - setDeadline(t: time.Time): void - /** - * SetReadDeadline sets the deadline for future Read calls - * and any currently-blocked Read call. - * A zero value for t means Read will not time out. - */ - setReadDeadline(t: time.Time): void - /** - * SetWriteDeadline sets the deadline for future Write calls - * and any currently-blocked Write call. - * Even if write times out, it may return n > 0, indicating that - * some of the data was successfully written. - * A zero value for t means Write will not time out. - */ - setWriteDeadline(t: time.Time): void - } -} - -/** - * Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html - * - * See README.md for more info. - */ -namespace jwt { - /** - * MapClaims is a claims type that uses the map[string]interface{} for JSON - * decoding. This is the default claims type if you don't supply one - */ - interface MapClaims extends _TygojaDict{} - interface MapClaims { - /** - * GetExpirationTime implements the Claims interface. - */ - getExpirationTime(): (NumericDate) - } - interface MapClaims { - /** - * GetNotBefore implements the Claims interface. - */ - getNotBefore(): (NumericDate) - } - interface MapClaims { - /** - * GetIssuedAt implements the Claims interface. - */ - getIssuedAt(): (NumericDate) - } - interface MapClaims { - /** - * GetAudience implements the Claims interface. - */ - getAudience(): ClaimStrings - } - interface MapClaims { - /** - * GetIssuer implements the Claims interface. - */ - getIssuer(): string - } - interface MapClaims { - /** - * GetSubject implements the Claims interface. - */ - getSubject(): string - } -} - /** * Package types implements some commonly used db serializable types * like datetime, json, etc. @@ -17169,539 +17111,6 @@ namespace types { } } -namespace search { - /** - * Result defines the returned search result structure. - */ - interface Result { - items: any - page: number - perPage: number - totalItems: number - totalPages: number - } - /** - * ResolverResult defines a single FieldResolver.Resolve() successfully parsed result. - */ - interface ResolverResult { - /** - * Identifier is the plain SQL identifier/column that will be used - * in the final db expression as left or right operand. - */ - identifier: string - /** - * NoCoalesce instructs to not use COALESCE or NULL fallbacks - * when building the identifier expression. - */ - noCoalesce: boolean - /** - * Params is a map with db placeholder->value pairs that will be added - * to the query when building both resolved operands/sides in a single expression. - */ - params: dbx.Params - /** - * MultiMatchSubQuery is an optional sub query expression that will be added - * in addition to the combined ResolverResult expression during build. - */ - multiMatchSubQuery: dbx.Expression - /** - * AfterBuild is an optional function that will be called after building - * and combining the result of both resolved operands/sides in a single expression. - */ - afterBuild: (expr: dbx.Expression) => dbx.Expression - } -} - -/** - * Package slog provides structured logging, - * in which log records include a message, - * a severity level, and various other attributes - * expressed as key-value pairs. - * - * It defines a type, [Logger], - * which provides several methods (such as [Logger.Info] and [Logger.Error]) - * for reporting events of interest. - * - * Each Logger is associated with a [Handler]. - * A Logger output method creates a [Record] from the method arguments - * and passes it to the Handler, which decides how to handle it. - * There is a default Logger accessible through top-level functions - * (such as [Info] and [Error]) that call the corresponding Logger methods. - * - * A log record consists of a time, a level, a message, and a set of key-value - * pairs, where the keys are strings and the values may be of any type. - * As an example, - * - * ``` - * slog.Info("hello", "count", 3) - * ``` - * - * creates a record containing the time of the call, - * a level of Info, the message "hello", and a single - * pair with key "count" and value 3. - * - * The [Info] top-level function calls the [Logger.Info] method on the default Logger. - * In addition to [Logger.Info], there are methods for Debug, Warn and Error levels. - * Besides these convenience methods for common levels, - * there is also a [Logger.Log] method which takes the level as an argument. - * Each of these methods has a corresponding top-level function that uses the - * default logger. - * - * The default handler formats the log record's message, time, level, and attributes - * as a string and passes it to the [log] package. - * - * ``` - * 2022/11/08 15:28:26 INFO hello count=3 - * ``` - * - * For more control over the output format, create a logger with a different handler. - * This statement uses [New] to create a new logger with a [TextHandler] - * that writes structured records in text form to standard error: - * - * ``` - * logger := slog.New(slog.NewTextHandler(os.Stderr, nil)) - * ``` - * - * [TextHandler] output is a sequence of key=value pairs, easily and unambiguously - * parsed by machine. This statement: - * - * ``` - * logger.Info("hello", "count", 3) - * ``` - * - * produces this output: - * - * ``` - * time=2022-11-08T15:28:26.000-05:00 level=INFO msg=hello count=3 - * ``` - * - * The package also provides [JSONHandler], whose output is line-delimited JSON: - * - * ``` - * logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) - * logger.Info("hello", "count", 3) - * ``` - * - * produces this output: - * - * ``` - * {"time":"2022-11-08T15:28:26.000000000-05:00","level":"INFO","msg":"hello","count":3} - * ``` - * - * Both [TextHandler] and [JSONHandler] can be configured with [HandlerOptions]. - * There are options for setting the minimum level (see Levels, below), - * displaying the source file and line of the log call, and - * modifying attributes before they are logged. - * - * Setting a logger as the default with - * - * ``` - * slog.SetDefault(logger) - * ``` - * - * will cause the top-level functions like [Info] to use it. - * [SetDefault] also updates the default logger used by the [log] package, - * so that existing applications that use [log.Printf] and related functions - * will send log records to the logger's handler without needing to be rewritten. - * - * Some attributes are common to many log calls. - * For example, you may wish to include the URL or trace identifier of a server request - * with all log events arising from the request. - * Rather than repeat the attribute with every log call, you can use [Logger.With] - * to construct a new Logger containing the attributes: - * - * ``` - * logger2 := logger.With("url", r.URL) - * ``` - * - * The arguments to With are the same key-value pairs used in [Logger.Info]. - * The result is a new Logger with the same handler as the original, but additional - * attributes that will appear in the output of every call. - * - * # Levels - * - * A [Level] is an integer representing the importance or severity of a log event. - * The higher the level, the more severe the event. - * This package defines constants for the most common levels, - * but any int can be used as a level. - * - * In an application, you may wish to log messages only at a certain level or greater. - * One common configuration is to log messages at Info or higher levels, - * suppressing debug logging until it is needed. - * The built-in handlers can be configured with the minimum level to output by - * setting [HandlerOptions.Level]. - * The program's `main` function typically does this. - * The default value is LevelInfo. - * - * Setting the [HandlerOptions.Level] field to a [Level] value - * fixes the handler's minimum level throughout its lifetime. - * Setting it to a [LevelVar] allows the level to be varied dynamically. - * A LevelVar holds a Level and is safe to read or write from multiple - * goroutines. - * To vary the level dynamically for an entire program, first initialize - * a global LevelVar: - * - * ``` - * var programLevel = new(slog.LevelVar) // Info by default - * ``` - * - * Then use the LevelVar to construct a handler, and make it the default: - * - * ``` - * h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel}) - * slog.SetDefault(slog.New(h)) - * ``` - * - * Now the program can change its logging level with a single statement: - * - * ``` - * programLevel.Set(slog.LevelDebug) - * ``` - * - * # Groups - * - * Attributes can be collected into groups. - * A group has a name that is used to qualify the names of its attributes. - * How this qualification is displayed depends on the handler. - * [TextHandler] separates the group and attribute names with a dot. - * [JSONHandler] treats each group as a separate JSON object, with the group name as the key. - * - * Use [Group] to create a Group attribute from a name and a list of key-value pairs: - * - * ``` - * slog.Group("request", - * "method", r.Method, - * "url", r.URL) - * ``` - * - * TextHandler would display this group as - * - * ``` - * request.method=GET request.url=http://example.com - * ``` - * - * JSONHandler would display it as - * - * ``` - * "request":{"method":"GET","url":"http://example.com"} - * ``` - * - * Use [Logger.WithGroup] to qualify all of a Logger's output - * with a group name. Calling WithGroup on a Logger results in a - * new Logger with the same Handler as the original, but with all - * its attributes qualified by the group name. - * - * This can help prevent duplicate attribute keys in large systems, - * where subsystems might use the same keys. - * Pass each subsystem a different Logger with its own group name so that - * potential duplicates are qualified: - * - * ``` - * logger := slog.Default().With("id", systemID) - * parserLogger := logger.WithGroup("parser") - * parseInput(input, parserLogger) - * ``` - * - * When parseInput logs with parserLogger, its keys will be qualified with "parser", - * so even if it uses the common key "id", the log line will have distinct keys. - * - * # Contexts - * - * Some handlers may wish to include information from the [context.Context] that is - * available at the call site. One example of such information - * is the identifier for the current span when tracing is enabled. - * - * The [Logger.Log] and [Logger.LogAttrs] methods take a context as a first - * argument, as do their corresponding top-level functions. - * - * Although the convenience methods on Logger (Info and so on) and the - * corresponding top-level functions do not take a context, the alternatives ending - * in "Context" do. For example, - * - * ``` - * slog.InfoContext(ctx, "message") - * ``` - * - * It is recommended to pass a context to an output method if one is available. - * - * # Attrs and Values - * - * An [Attr] is a key-value pair. The Logger output methods accept Attrs as well as - * alternating keys and values. The statement - * - * ``` - * slog.Info("hello", slog.Int("count", 3)) - * ``` - * - * behaves the same as - * - * ``` - * slog.Info("hello", "count", 3) - * ``` - * - * There are convenience constructors for [Attr] such as [Int], [String], and [Bool] - * for common types, as well as the function [Any] for constructing Attrs of any - * type. - * - * The value part of an Attr is a type called [Value]. - * Like an [any], a Value can hold any Go value, - * but it can represent typical values, including all numbers and strings, - * without an allocation. - * - * For the most efficient log output, use [Logger.LogAttrs]. - * It is similar to [Logger.Log] but accepts only Attrs, not alternating - * keys and values; this allows it, too, to avoid allocation. - * - * The call - * - * ``` - * logger.LogAttrs(ctx, slog.LevelInfo, "hello", slog.Int("count", 3)) - * ``` - * - * is the most efficient way to achieve the same output as - * - * ``` - * slog.InfoContext(ctx, "hello", "count", 3) - * ``` - * - * # Customizing a type's logging behavior - * - * If a type implements the [LogValuer] interface, the [Value] returned from its LogValue - * method is used for logging. You can use this to control how values of the type - * appear in logs. For example, you can redact secret information like passwords, - * or gather a struct's fields in a Group. See the examples under [LogValuer] for - * details. - * - * A LogValue method may return a Value that itself implements [LogValuer]. The [Value.Resolve] - * method handles these cases carefully, avoiding infinite loops and unbounded recursion. - * Handler authors and others may wish to use [Value.Resolve] instead of calling LogValue directly. - * - * # Wrapping output methods - * - * The logger functions use reflection over the call stack to find the file name - * and line number of the logging call within the application. This can produce - * incorrect source information for functions that wrap slog. For instance, if you - * define this function in file mylog.go: - * - * ``` - * func Infof(logger *slog.Logger, format string, args ...any) { - * logger.Info(fmt.Sprintf(format, args...)) - * } - * ``` - * - * and you call it like this in main.go: - * - * ``` - * Infof(slog.Default(), "hello, %s", "world") - * ``` - * - * then slog will report the source file as mylog.go, not main.go. - * - * A correct implementation of Infof will obtain the source location - * (pc) and pass it to NewRecord. - * The Infof function in the package-level example called "wrapping" - * demonstrates how to do this. - * - * # Working with Records - * - * Sometimes a Handler will need to modify a Record - * before passing it on to another Handler or backend. - * A Record contains a mixture of simple public fields (e.g. Time, Level, Message) - * and hidden fields that refer to state (such as attributes) indirectly. This - * means that modifying a simple copy of a Record (e.g. by calling - * [Record.Add] or [Record.AddAttrs] to add attributes) - * may have unexpected effects on the original. - * Before modifying a Record, use [Record.Clone] to - * create a copy that shares no state with the original, - * or create a new Record with [NewRecord] - * and build up its Attrs by traversing the old ones with [Record.Attrs]. - * - * # Performance considerations - * - * If profiling your application demonstrates that logging is taking significant time, - * the following suggestions may help. - * - * If many log lines have a common attribute, use [Logger.With] to create a Logger with - * that attribute. The built-in handlers will format that attribute only once, at the - * call to [Logger.With]. The [Handler] interface is designed to allow that optimization, - * and a well-written Handler should take advantage of it. - * - * The arguments to a log call are always evaluated, even if the log event is discarded. - * If possible, defer computation so that it happens only if the value is actually logged. - * For example, consider the call - * - * ``` - * slog.Info("starting request", "url", r.URL.String()) // may compute String unnecessarily - * ``` - * - * The URL.String method will be called even if the logger discards Info-level events. - * Instead, pass the URL directly: - * - * ``` - * slog.Info("starting request", "url", &r.URL) // calls URL.String only if needed - * ``` - * - * The built-in [TextHandler] will call its String method, but only - * if the log event is enabled. - * Avoiding the call to String also preserves the structure of the underlying value. - * For example [JSONHandler] emits the components of the parsed URL as a JSON object. - * If you want to avoid eagerly paying the cost of the String call - * without causing the handler to potentially inspect the structure of the value, - * wrap the value in a fmt.Stringer implementation that hides its Marshal methods. - * - * You can also use the [LogValuer] interface to avoid unnecessary work in disabled log - * calls. Say you need to log some expensive value: - * - * ``` - * slog.Debug("frobbing", "value", computeExpensiveValue(arg)) - * ``` - * - * Even if this line is disabled, computeExpensiveValue will be called. - * To avoid that, define a type implementing LogValuer: - * - * ``` - * type expensive struct { arg int } - * - * func (e expensive) LogValue() slog.Value { - * return slog.AnyValue(computeExpensiveValue(e.arg)) - * } - * ``` - * - * Then use a value of that type in log calls: - * - * ``` - * slog.Debug("frobbing", "value", expensive{arg}) - * ``` - * - * Now computeExpensiveValue will only be called when the line is enabled. - * - * The built-in handlers acquire a lock before calling [io.Writer.Write] - * to ensure that exactly one [Record] is written at a time in its entirety. - * Although each log record has a timestamp, - * the built-in handlers do not use that time to sort the written records. - * User-defined handlers are responsible for their own locking and sorting. - * - * # Writing a handler - * - * For a guide to writing a custom handler, see https://golang.org/s/slog-handler-guide. - */ -namespace slog { - // @ts-ignore - import loginternal = internal - /** - * A Logger records structured information about each call to its - * Log, Debug, Info, Warn, and Error methods. - * For each call, it creates a [Record] and passes it to a [Handler]. - * - * To create a new Logger, call [New] or a Logger method - * that begins "With". - */ - interface Logger { - } - interface Logger { - /** - * Handler returns l's Handler. - */ - handler(): Handler - } - interface Logger { - /** - * With returns a Logger that includes the given attributes - * in each output operation. Arguments are converted to - * attributes as if by [Logger.Log]. - */ - with(...args: any[]): (Logger) - } - interface Logger { - /** - * WithGroup returns a Logger that starts a group, if name is non-empty. - * The keys of all attributes added to the Logger will be qualified by the given - * name. (How that qualification happens depends on the [Handler.WithGroup] - * method of the Logger's Handler.) - * - * If name is empty, WithGroup returns the receiver. - */ - withGroup(name: string): (Logger) - } - interface Logger { - /** - * Enabled reports whether l emits log records at the given context and level. - */ - enabled(ctx: context.Context, level: Level): boolean - } - interface Logger { - /** - * Log emits a log record with the current time and the given level and message. - * The Record's Attrs consist of the Logger's attributes followed by - * the Attrs specified by args. - * - * The attribute arguments are processed as follows: - * ``` - * - If an argument is an Attr, it is used as is. - * - If an argument is a string and this is not the last argument, - * the following argument is treated as the value and the two are combined - * into an Attr. - * - Otherwise, the argument is treated as a value with key "!BADKEY". - * ``` - */ - log(ctx: context.Context, level: Level, msg: string, ...args: any[]): void - } - interface Logger { - /** - * LogAttrs is a more efficient version of [Logger.Log] that accepts only Attrs. - */ - logAttrs(ctx: context.Context, level: Level, msg: string, ...attrs: Attr[]): void - } - interface Logger { - /** - * Debug logs at [LevelDebug]. - */ - debug(msg: string, ...args: any[]): void - } - interface Logger { - /** - * DebugContext logs at [LevelDebug] with the given context. - */ - debugContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Info logs at [LevelInfo]. - */ - info(msg: string, ...args: any[]): void - } - interface Logger { - /** - * InfoContext logs at [LevelInfo] with the given context. - */ - infoContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Warn logs at [LevelWarn]. - */ - warn(msg: string, ...args: any[]): void - } - interface Logger { - /** - * WarnContext logs at [LevelWarn] with the given context. - */ - warnContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Error logs at [LevelError]. - */ - error(msg: string, ...args: any[]): void - } - interface Logger { - /** - * ErrorContext logs at [LevelError] with the given context. - */ - errorContext(ctx: context.Context, msg: string, ...args: any[]): void - } -} - /** * Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer * object, creating another object (Reader or Writer) that also implements @@ -17712,8 +17121,8 @@ namespace bufio { * ReadWriter stores pointers to a [Reader] and a [Writer]. * It implements [io.ReadWriter]. */ - type _sFTbWSf = Reader&Writer - interface ReadWriter extends _sFTbWSf { + type _spGRHvr = Reader&Writer + interface ReadWriter extends _spGRHvr { } } @@ -18744,90 +18153,128 @@ namespace http { } } -namespace hook { +namespace store { /** - * Event implements [Resolver] and it is intended to be used as a base - * Hook event that you can embed in your custom typed event structs. - * - * Example: - * - * ``` - * type CustomEvent struct { - * hook.Event - * - * SomeField int - * } - * ``` + * Store defines a concurrent safe in memory key-value data store. */ - interface Event { + interface Store { } - interface Event { + interface Store { /** - * Next calls the next hook handler. + * Reset clears the store and replaces the store data with a + * shallow copy of the provided newData. */ - next(): void + reset(newData: _TygojaDict): void } - /** - * Handler defines a single Hook handler. - * Multiple handlers can share the same id. - * If Id is not explicitly set it will be autogenerated by Hook.Add and Hook.AddHandler. - */ - interface Handler { + interface Store { /** - * Func defines the handler function to execute. - * - * Note that users need to call e.Next() in order to proceed with - * the execution of the hook chain. + * Length returns the current number of elements in the store. */ - func: (_arg0: T) => void - /** - * Id is the unique identifier of the handler. - * - * It could be used later to remove the handler from a hook via [Hook.Remove]. - * - * If missing, an autogenerated value will be assigned when adding - * the handler to a hook. - */ - id: string - /** - * Priority allows changing the default exec priority of the handler within a hook. - * - * If 0, the handler will be executed in the same order it was registered. - */ - priority: number + length(): number } - /** - * Hook defines a generic concurrent safe structure for managing event hooks. - * - * When using custom event it must embed the base [hook.Event]. - * - * Example: - * - * ``` - * type CustomEvent struct { - * hook.Event - * SomeField int - * } - * - * h := Hook[*CustomEvent]{} - * - * h.BindFunc(func(e *CustomEvent) error { - * println(e.SomeField) - * - * return e.Next() - * }) - * - * h.Trigger(&CustomEvent{ SomeField: 123 }) - * ``` - */ - interface Hook { + interface Store { + /** + * RemoveAll removes all the existing store entries. + */ + removeAll(): void } - /** - * TaggedHook defines a proxy hook which register handlers that are triggered only - * if the TaggedHook.tags are empty or includes at least one of the event data tag(s). - */ - type _sSpEQZd = mainHook - interface TaggedHook extends _sSpEQZd { + interface Store { + /** + * Remove removes a single entry from the store. + * + * Remove does nothing if key doesn't exist in the store. + */ + remove(key: K): void + } + interface Store { + /** + * Has checks if element with the specified key exist or not. + */ + has(key: K): boolean + } + interface Store { + /** + * Get returns a single element value from the store. + * + * If key is not set, the zero T value is returned. + */ + get(key: K): T + } + interface Store { + /** + * GetOk is similar to Get but returns also a boolean indicating whether the key exists or not. + */ + getOk(key: K): [T, boolean] + } + interface Store { + /** + * GetAll returns a shallow copy of the current store data. + */ + getAll(): _TygojaDict + } + interface Store { + /** + * Values returns a slice with all of the current store values. + */ + values(): Array + } + interface Store { + /** + * Set sets (or overwrite if already exists) a new value for key. + */ + set(key: K, value: T): void + } + interface Store { + /** + * SetFunc sets (or overwrite if already exists) a new value resolved + * from the function callback for the provided key. + * + * The function callback receives as argument the old store element value (if exists). + * If there is no old store element, the argument will be the T zero value. + * + * Example: + * + * ``` + * s := store.New[string, int](nil) + * s.SetFunc("count", func(old int) int { + * return old + 1 + * }) + * ``` + */ + setFunc(key: K, fn: (old: T) => T): void + } + interface Store { + /** + * GetOrSet retrieves a single existing value for the provided key + * or stores a new one if it doesn't exist. + */ + getOrSet(key: K, setFunc: () => T): T + } + interface Store { + /** + * SetIfLessThanLimit sets (or overwrite if already exist) a new value for key. + * + * This method is similar to Set() but **it will skip adding new elements** + * to the store if the store length has reached the specified limit. + * false is returned if maxAllowedElements limit is reached. + */ + setIfLessThanLimit(key: K, value: T, maxAllowedElements: number): boolean + } + interface Store { + /** + * UnmarshalJSON implements [json.Unmarshaler] and imports the + * provided JSON data into the store. + * + * The store entries that match with the ones from the data will be overwritten with the new value. + */ + unmarshalJSON(data: string|Array): void + } + interface Store { + /** + * MarshalJSON implements [json.Marshaler] and export the current + * store data into valid JSON. + */ + marshalJSON(): string|Array } } @@ -19109,191 +18556,338 @@ namespace exec { } } -namespace mailer { +/** + * Package cron implements a crontab-like service to execute and schedule + * repeative tasks/jobs. + * + * Example: + * + * ``` + * c := cron.New() + * c.MustAdd("dailyReport", "0 0 * * *", func() { ... }) + * c.Start() + * ``` + */ +namespace cron { /** - * Message defines a generic email message struct. + * Cron is a crontab-like struct for tasks/jobs scheduling. */ - interface Message { - from: { address: string; name?: string; } - to: Array<{ address: string; name?: string; }> - bcc: Array<{ address: string; name?: string; }> - cc: Array<{ address: string; name?: string; }> - subject: string - html: string - text: string - headers: _TygojaDict - attachments: _TygojaDict - inlineAttachments: _TygojaDict + interface Cron { } - /** - * Mailer defines a base mail client interface. - */ - interface Mailer { - [key:string]: any; + interface Cron { /** - * Send sends an email with the provided Message. + * SetInterval changes the current cron tick interval + * (it usually should be >= 1 minute). */ - send(message: Message): void + setInterval(d: time.Duration): void + } + interface Cron { + /** + * SetTimezone changes the current cron tick timezone. + */ + setTimezone(l: time.Location): void + } + interface Cron { + /** + * MustAdd is similar to Add() but panic on failure. + */ + mustAdd(jobId: string, cronExpr: string, run: () => void): void + } + interface Cron { + /** + * Add registers a single cron job. + * + * If there is already a job with the provided id, then the old job + * will be replaced with the new one. + * + * cronExpr is a regular cron expression, eg. "0 *\/3 * * *" (aka. at minute 0 past every 3rd hour). + * Check cron.NewSchedule() for the supported tokens. + */ + add(jobId: string, cronExpr: string, fn: () => void): void + } + interface Cron { + /** + * Remove removes a single cron job by its id. + */ + remove(jobId: string): void + } + interface Cron { + /** + * RemoveAll removes all registered cron jobs. + */ + removeAll(): void + } + interface Cron { + /** + * Total returns the current total number of registered cron jobs. + */ + total(): number + } + interface Cron { + /** + * Jobs returns a shallow copy of the currently registered cron jobs. + */ + jobs(): Array<(Job | undefined)> + } + interface Cron { + /** + * Stop stops the current cron ticker (if not already). + * + * You can resume the ticker by calling Start(). + */ + stop(): void + } + interface Cron { + /** + * Start starts the cron ticker. + * + * Calling Start() on already started cron will restart the ticker. + */ + start(): void + } + interface Cron { + /** + * HasStarted checks whether the current Cron ticker has been started. + */ + hasStarted(): boolean } } -/** - * Package blob defines a lightweight abstration for interacting with - * various storage services (local filesystem, S3, etc.). - * - * NB! - * For compatibility with earlier PocketBase versions and to prevent - * unnecessary breaking changes, this package is based and implemented - * as a minimal, stripped down version of the previously used gocloud.dev/blob. - * While there is no promise that it won't diverge in the future to accommodate - * better some PocketBase specific use cases, currently it copies and - * tries to follow as close as possible the same implementations, - * conventions and rules for the key escaping/unescaping, blob read/write - * interfaces and struct options as gocloud.dev/blob, therefore the - * credits goes to the original Go Cloud Development Kit Authors. - */ -namespace blob { +namespace hook { /** - * ListObject represents a single blob returned from List. + * Event implements [Resolver] and it is intended to be used as a base + * Hook event that you can embed in your custom typed event structs. + * + * Example: + * + * ``` + * type CustomEvent struct { + * hook.Event + * + * SomeField int + * } + * ``` */ - interface ListObject { + interface Event { + } + interface Event { /** - * Key is the key for this blob. + * Next calls the next hook handler. */ - key: string - /** - * ModTime is the time the blob was last modified. - */ - modTime: time.Time - /** - * Size is the size of the blob's content in bytes. - */ - size: number - /** - * MD5 is an MD5 hash of the blob contents or nil if not available. - */ - md5: string|Array - /** - * IsDir indicates that this result represents a "directory" in the - * hierarchical namespace, ending in ListOptions.Delimiter. Key can be - * passed as ListOptions.Prefix to list items in the "directory". - * Fields other than Key and IsDir will not be set if IsDir is true. - */ - isDir: boolean + next(): void } /** - * Attributes contains attributes about a blob. + * Handler defines a single Hook handler. + * Multiple handlers can share the same id. + * If Id is not explicitly set it will be autogenerated by Hook.Add and Hook.AddHandler. */ - interface Attributes { + interface Handler { /** - * CacheControl specifies caching attributes that services may use - * when serving the blob. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control - */ - cacheControl: string - /** - * ContentDisposition specifies whether the blob content is expected to be - * displayed inline or as an attachment. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition - */ - contentDisposition: string - /** - * ContentEncoding specifies the encoding used for the blob's content, if any. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding - */ - contentEncoding: string - /** - * ContentLanguage specifies the language used in the blob's content, if any. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language - */ - contentLanguage: string - /** - * ContentType is the MIME type of the blob. It will not be empty. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type - */ - contentType: string - /** - * Metadata holds key/value pairs associated with the blob. - * Keys are guaranteed to be in lowercase, even if the backend service - * has case-sensitive keys (although note that Metadata written via - * this package will always be lowercased). If there are duplicate - * case-insensitive keys (e.g., "foo" and "FOO"), only one value - * will be kept, and it is undefined which one. - */ - metadata: _TygojaDict - /** - * CreateTime is the time the blob was created, if available. If not available, - * CreateTime will be the zero time. - */ - createTime: time.Time - /** - * ModTime is the time the blob was last modified. - */ - modTime: time.Time - /** - * Size is the size of the blob's content in bytes. - */ - size: number - /** - * MD5 is an MD5 hash of the blob contents or nil if not available. - */ - md5: string|Array - /** - * ETag for the blob; see https://en.wikipedia.org/wiki/HTTP_ETag. - */ - eTag: string - } - /** - * Reader reads bytes from a blob. - * It implements io.ReadSeekCloser, and must be closed after reads are finished. - */ - interface Reader { - } - interface Reader { - /** - * Read implements io.Reader (https://golang.org/pkg/io/#Reader). - */ - read(p: string|Array): number - } - interface Reader { - /** - * Seek implements io.Seeker (https://golang.org/pkg/io/#Seeker). - */ - seek(offset: number, whence: number): number - } - interface Reader { - /** - * Close implements io.Closer (https://golang.org/pkg/io/#Closer). - */ - close(): void - } - interface Reader { - /** - * ContentType returns the MIME type of the blob. - */ - contentType(): string - } - interface Reader { - /** - * ModTime returns the time the blob was last modified. - */ - modTime(): time.Time - } - interface Reader { - /** - * Size returns the size of the blob content in bytes. - */ - size(): number - } - interface Reader { - /** - * WriteTo reads from r and writes to w until there's no more data or - * an error occurs. - * The return value is the number of bytes written to w. + * Func defines the handler function to execute. * - * It implements the io.WriterTo interface. + * Note that users need to call e.Next() in order to proceed with + * the execution of the hook chain. */ - writeTo(w: io.Writer): number + func: (_arg0: T) => void + /** + * Id is the unique identifier of the handler. + * + * It could be used later to remove the handler from a hook via [Hook.Remove]. + * + * If missing, an autogenerated value will be assigned when adding + * the handler to a hook. + */ + id: string + /** + * Priority allows changing the default exec priority of the handler within a hook. + * + * If 0, the handler will be executed in the same order it was registered. + */ + priority: number + } + /** + * Hook defines a generic concurrent safe structure for managing event hooks. + * + * When using custom event it must embed the base [hook.Event]. + * + * Example: + * + * ``` + * type CustomEvent struct { + * hook.Event + * SomeField int + * } + * + * h := Hook[*CustomEvent]{} + * + * h.BindFunc(func(e *CustomEvent) error { + * println(e.SomeField) + * + * return e.Next() + * }) + * + * h.Trigger(&CustomEvent{ SomeField: 123 }) + * ``` + */ + interface Hook { + } + /** + * TaggedHook defines a proxy hook which register handlers that are triggered only + * if the TaggedHook.tags are empty or includes at least one of the event data tag(s). + */ + type _sbtKKCI = mainHook + interface TaggedHook extends _sbtKKCI { + } +} + +namespace auth { + /** + * Provider defines a common interface for an OAuth2 client. + */ + interface Provider { + [key:string]: any; + /** + * Context returns the context associated with the provider (if any). + */ + context(): context.Context + /** + * SetContext assigns the specified context to the current provider. + */ + setContext(ctx: context.Context): void + /** + * PKCE indicates whether the provider can use the PKCE flow. + */ + pkce(): boolean + /** + * SetPKCE toggles the state whether the provider can use the PKCE flow or not. + */ + setPKCE(enable: boolean): void + /** + * DisplayName usually returns provider name as it is officially written + * and it could be used directly in the UI. + */ + displayName(): string + /** + * SetDisplayName sets the provider's display name. + */ + setDisplayName(displayName: string): void + /** + * Scopes returns the provider access permissions that will be requested. + */ + scopes(): Array + /** + * SetScopes sets the provider access permissions that will be requested later. + */ + setScopes(scopes: Array): void + /** + * ClientId returns the provider client's app ID. + */ + clientId(): string + /** + * SetClientId sets the provider client's ID. + */ + setClientId(clientId: string): void + /** + * ClientSecret returns the provider client's app secret. + */ + clientSecret(): string + /** + * SetClientSecret sets the provider client's app secret. + */ + setClientSecret(secret: string): void + /** + * RedirectURL returns the end address to redirect the user + * going through the OAuth flow. + */ + redirectURL(): string + /** + * SetRedirectURL sets the provider's RedirectURL. + */ + setRedirectURL(url: string): void + /** + * AuthURL returns the provider's authorization service url. + */ + authURL(): string + /** + * SetAuthURL sets the provider's AuthURL. + */ + setAuthURL(url: string): void + /** + * TokenURL returns the provider's token exchange service url. + */ + tokenURL(): string + /** + * SetTokenURL sets the provider's TokenURL. + */ + setTokenURL(url: string): void + /** + * UserInfoURL returns the provider's user info api url. + */ + userInfoURL(): string + /** + * SetUserInfoURL sets the provider's UserInfoURL. + */ + setUserInfoURL(url: string): void + /** + * Extra returns a shallow copy of any custom config data + * that the provider may be need. + */ + extra(): _TygojaDict + /** + * SetExtra updates the provider's custom config data. + */ + setExtra(data: _TygojaDict): void + /** + * Client returns an http client using the provided token. + */ + client(token: oauth2.Token): (any) + /** + * BuildAuthURL returns a URL to the provider's consent page + * that asks for permissions for the required scopes explicitly. + */ + buildAuthURL(state: string, ...opts: oauth2.AuthCodeOption[]): string + /** + * FetchToken converts an authorization code to token. + */ + fetchToken(code: string, ...opts: oauth2.AuthCodeOption[]): (oauth2.Token) + /** + * FetchRawUserInfo requests and marshalizes into `result` the + * the OAuth user api response. + */ + fetchRawUserInfo(token: oauth2.Token): string|Array + /** + * FetchAuthUser is similar to FetchRawUserInfo, but normalizes and + * marshalizes the user api response into a standardized AuthUser struct. + */ + fetchAuthUser(token: oauth2.Token): (AuthUser) + } + /** + * AuthUser defines a standardized OAuth2 user data structure. + */ + interface AuthUser { + expiry: types.DateTime + rawUser: _TygojaDict + id: string + name: string + username: string + email: string + avatarURL: string + accessToken: string + refreshToken: string + /** + * @todo + * deprecated: use AvatarURL instead + * AvatarUrl will be removed after dropping v0.22 support + */ + avatarUrl: string + } + interface AuthUser { + /** + * MarshalJSON implements the [json.Marshaler] interface. + * + * @todo remove after dropping v0.22 support + */ + marshalJSON(): string|Array } } @@ -20379,154 +19973,206 @@ namespace cobra { } } -namespace auth { +/** + * Package blob defines a lightweight abstration for interacting with + * various storage services (local filesystem, S3, etc.). + * + * NB! + * For compatibility with earlier PocketBase versions and to prevent + * unnecessary breaking changes, this package is based and implemented + * as a minimal, stripped down version of the previously used gocloud.dev/blob. + * While there is no promise that it won't diverge in the future to accommodate + * better some PocketBase specific use cases, currently it copies and + * tries to follow as close as possible the same implementations, + * conventions and rules for the key escaping/unescaping, blob read/write + * interfaces and struct options as gocloud.dev/blob, therefore the + * credits goes to the original Go Cloud Development Kit Authors. + */ +namespace blob { /** - * Provider defines a common interface for an OAuth2 client. + * ListObject represents a single blob returned from List. */ - interface Provider { - [key:string]: any; + interface ListObject { /** - * Context returns the context associated with the provider (if any). + * Key is the key for this blob. */ - context(): context.Context + key: string /** - * SetContext assigns the specified context to the current provider. + * ModTime is the time the blob was last modified. */ - setContext(ctx: context.Context): void + modTime: time.Time /** - * PKCE indicates whether the provider can use the PKCE flow. + * Size is the size of the blob's content in bytes. */ - pkce(): boolean + size: number /** - * SetPKCE toggles the state whether the provider can use the PKCE flow or not. + * MD5 is an MD5 hash of the blob contents or nil if not available. */ - setPKCE(enable: boolean): void + md5: string|Array /** - * DisplayName usually returns provider name as it is officially written - * and it could be used directly in the UI. + * IsDir indicates that this result represents a "directory" in the + * hierarchical namespace, ending in ListOptions.Delimiter. Key can be + * passed as ListOptions.Prefix to list items in the "directory". + * Fields other than Key and IsDir will not be set if IsDir is true. */ - displayName(): string - /** - * SetDisplayName sets the provider's display name. - */ - setDisplayName(displayName: string): void - /** - * Scopes returns the provider access permissions that will be requested. - */ - scopes(): Array - /** - * SetScopes sets the provider access permissions that will be requested later. - */ - setScopes(scopes: Array): void - /** - * ClientId returns the provider client's app ID. - */ - clientId(): string - /** - * SetClientId sets the provider client's ID. - */ - setClientId(clientId: string): void - /** - * ClientSecret returns the provider client's app secret. - */ - clientSecret(): string - /** - * SetClientSecret sets the provider client's app secret. - */ - setClientSecret(secret: string): void - /** - * RedirectURL returns the end address to redirect the user - * going through the OAuth flow. - */ - redirectURL(): string - /** - * SetRedirectURL sets the provider's RedirectURL. - */ - setRedirectURL(url: string): void - /** - * AuthURL returns the provider's authorization service url. - */ - authURL(): string - /** - * SetAuthURL sets the provider's AuthURL. - */ - setAuthURL(url: string): void - /** - * TokenURL returns the provider's token exchange service url. - */ - tokenURL(): string - /** - * SetTokenURL sets the provider's TokenURL. - */ - setTokenURL(url: string): void - /** - * UserInfoURL returns the provider's user info api url. - */ - userInfoURL(): string - /** - * SetUserInfoURL sets the provider's UserInfoURL. - */ - setUserInfoURL(url: string): void - /** - * Extra returns a shallow copy of any custom config data - * that the provider may be need. - */ - extra(): _TygojaDict - /** - * SetExtra updates the provider's custom config data. - */ - setExtra(data: _TygojaDict): void - /** - * Client returns an http client using the provided token. - */ - client(token: oauth2.Token): (any) - /** - * BuildAuthURL returns a URL to the provider's consent page - * that asks for permissions for the required scopes explicitly. - */ - buildAuthURL(state: string, ...opts: oauth2.AuthCodeOption[]): string - /** - * FetchToken converts an authorization code to token. - */ - fetchToken(code: string, ...opts: oauth2.AuthCodeOption[]): (oauth2.Token) - /** - * FetchRawUserInfo requests and marshalizes into `result` the - * the OAuth user api response. - */ - fetchRawUserInfo(token: oauth2.Token): string|Array - /** - * FetchAuthUser is similar to FetchRawUserInfo, but normalizes and - * marshalizes the user api response into a standardized AuthUser struct. - */ - fetchAuthUser(token: oauth2.Token): (AuthUser) + isDir: boolean } /** - * AuthUser defines a standardized OAuth2 user data structure. + * Attributes contains attributes about a blob. */ - interface AuthUser { - expiry: types.DateTime - rawUser: _TygojaDict - id: string - name: string - username: string - email: string - avatarURL: string - accessToken: string - refreshToken: string + interface Attributes { /** - * @todo - * deprecated: use AvatarURL instead - * AvatarUrl will be removed after dropping v0.22 support + * CacheControl specifies caching attributes that services may use + * when serving the blob. + * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control */ - avatarUrl: string - } - interface AuthUser { + cacheControl: string /** - * MarshalJSON implements the [json.Marshaler] interface. + * ContentDisposition specifies whether the blob content is expected to be + * displayed inline or as an attachment. + * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition + */ + contentDisposition: string + /** + * ContentEncoding specifies the encoding used for the blob's content, if any. + * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding + */ + contentEncoding: string + /** + * ContentLanguage specifies the language used in the blob's content, if any. + * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language + */ + contentLanguage: string + /** + * ContentType is the MIME type of the blob. It will not be empty. + * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type + */ + contentType: string + /** + * Metadata holds key/value pairs associated with the blob. + * Keys are guaranteed to be in lowercase, even if the backend service + * has case-sensitive keys (although note that Metadata written via + * this package will always be lowercased). If there are duplicate + * case-insensitive keys (e.g., "foo" and "FOO"), only one value + * will be kept, and it is undefined which one. + */ + metadata: _TygojaDict + /** + * CreateTime is the time the blob was created, if available. If not available, + * CreateTime will be the zero time. + */ + createTime: time.Time + /** + * ModTime is the time the blob was last modified. + */ + modTime: time.Time + /** + * Size is the size of the blob's content in bytes. + */ + size: number + /** + * MD5 is an MD5 hash of the blob contents or nil if not available. + */ + md5: string|Array + /** + * ETag for the blob; see https://en.wikipedia.org/wiki/HTTP_ETag. + */ + eTag: string + } + /** + * Reader reads bytes from a blob. + * It implements io.ReadSeekCloser, and must be closed after reads are finished. + */ + interface Reader { + } + interface Reader { + /** + * Read implements io.Reader (https://golang.org/pkg/io/#Reader). + */ + read(p: string|Array): number + } + interface Reader { + /** + * Seek implements io.Seeker (https://golang.org/pkg/io/#Seeker). + */ + seek(offset: number, whence: number): number + } + interface Reader { + /** + * Close implements io.Closer (https://golang.org/pkg/io/#Closer). + */ + close(): void + } + interface Reader { + /** + * ContentType returns the MIME type of the blob. + */ + contentType(): string + } + interface Reader { + /** + * ModTime returns the time the blob was last modified. + */ + modTime(): time.Time + } + interface Reader { + /** + * Size returns the size of the blob content in bytes. + */ + size(): number + } + interface Reader { + /** + * WriteTo reads from r and writes to w until there's no more data or + * an error occurs. + * The return value is the number of bytes written to w. * - * @todo remove after dropping v0.22 support + * It implements the io.WriterTo interface. */ - marshalJSON(): string|Array + writeTo(w: io.Writer): number + } +} + +namespace search { + /** + * Result defines the returned search result structure. + */ + interface Result { + items: any + page: number + perPage: number + totalItems: number + totalPages: number + } + /** + * ResolverResult defines a single FieldResolver.Resolve() successfully parsed result. + */ + interface ResolverResult { + /** + * Identifier is the plain SQL identifier/column that will be used + * in the final db expression as left or right operand. + */ + identifier: string + /** + * NoCoalesce instructs to not use COALESCE or NULL fallbacks + * when building the identifier expression. + */ + noCoalesce: boolean + /** + * Params is a map with db placeholder->value pairs that will be added + * to the query when building both resolved operands/sides in a single expression. + */ + params: dbx.Params + /** + * MultiMatchSubQuery is an optional sub query expression that will be added + * in addition to the combined ResolverResult expression during build. + */ + multiMatchSubQuery: dbx.Expression + /** + * AfterBuild is an optional function that will be called after building + * and combining the result of both resolved operands/sides in a single expression. + */ + afterBuild: (expr: dbx.Expression) => dbx.Expression } } @@ -20565,8 +20211,8 @@ namespace router { * * NB! It is expected that the Response and Request fields are always set. */ - type _sZPWzsb = hook.Event - interface Event extends _sZPWzsb { + type _sTluqnw = hook.Event + interface Event extends _sTluqnw { response: http.ResponseWriter request?: http.Request } @@ -20802,8 +20448,526 @@ namespace router { * http.ListenAndServe("localhost:8090", mux) * ``` */ - type _sAyDGzz = RouterGroup - interface Router extends _sAyDGzz { + type _sAiKeOv = RouterGroup + interface Router extends _sAiKeOv { + } +} + +namespace mailer { + /** + * Message defines a generic email message struct. + */ + interface Message { + from: { address: string; name?: string; } + to: Array<{ address: string; name?: string; }> + bcc: Array<{ address: string; name?: string; }> + cc: Array<{ address: string; name?: string; }> + subject: string + html: string + text: string + headers: _TygojaDict + attachments: _TygojaDict + inlineAttachments: _TygojaDict + } + /** + * Mailer defines a base mail client interface. + */ + interface Mailer { + [key:string]: any; + /** + * Send sends an email with the provided Message. + */ + send(message: Message): void + } +} + +/** + * Package slog provides structured logging, + * in which log records include a message, + * a severity level, and various other attributes + * expressed as key-value pairs. + * + * It defines a type, [Logger], + * which provides several methods (such as [Logger.Info] and [Logger.Error]) + * for reporting events of interest. + * + * Each Logger is associated with a [Handler]. + * A Logger output method creates a [Record] from the method arguments + * and passes it to the Handler, which decides how to handle it. + * There is a default Logger accessible through top-level functions + * (such as [Info] and [Error]) that call the corresponding Logger methods. + * + * A log record consists of a time, a level, a message, and a set of key-value + * pairs, where the keys are strings and the values may be of any type. + * As an example, + * + * ``` + * slog.Info("hello", "count", 3) + * ``` + * + * creates a record containing the time of the call, + * a level of Info, the message "hello", and a single + * pair with key "count" and value 3. + * + * The [Info] top-level function calls the [Logger.Info] method on the default Logger. + * In addition to [Logger.Info], there are methods for Debug, Warn and Error levels. + * Besides these convenience methods for common levels, + * there is also a [Logger.Log] method which takes the level as an argument. + * Each of these methods has a corresponding top-level function that uses the + * default logger. + * + * The default handler formats the log record's message, time, level, and attributes + * as a string and passes it to the [log] package. + * + * ``` + * 2022/11/08 15:28:26 INFO hello count=3 + * ``` + * + * For more control over the output format, create a logger with a different handler. + * This statement uses [New] to create a new logger with a [TextHandler] + * that writes structured records in text form to standard error: + * + * ``` + * logger := slog.New(slog.NewTextHandler(os.Stderr, nil)) + * ``` + * + * [TextHandler] output is a sequence of key=value pairs, easily and unambiguously + * parsed by machine. This statement: + * + * ``` + * logger.Info("hello", "count", 3) + * ``` + * + * produces this output: + * + * ``` + * time=2022-11-08T15:28:26.000-05:00 level=INFO msg=hello count=3 + * ``` + * + * The package also provides [JSONHandler], whose output is line-delimited JSON: + * + * ``` + * logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + * logger.Info("hello", "count", 3) + * ``` + * + * produces this output: + * + * ``` + * {"time":"2022-11-08T15:28:26.000000000-05:00","level":"INFO","msg":"hello","count":3} + * ``` + * + * Both [TextHandler] and [JSONHandler] can be configured with [HandlerOptions]. + * There are options for setting the minimum level (see Levels, below), + * displaying the source file and line of the log call, and + * modifying attributes before they are logged. + * + * Setting a logger as the default with + * + * ``` + * slog.SetDefault(logger) + * ``` + * + * will cause the top-level functions like [Info] to use it. + * [SetDefault] also updates the default logger used by the [log] package, + * so that existing applications that use [log.Printf] and related functions + * will send log records to the logger's handler without needing to be rewritten. + * + * Some attributes are common to many log calls. + * For example, you may wish to include the URL or trace identifier of a server request + * with all log events arising from the request. + * Rather than repeat the attribute with every log call, you can use [Logger.With] + * to construct a new Logger containing the attributes: + * + * ``` + * logger2 := logger.With("url", r.URL) + * ``` + * + * The arguments to With are the same key-value pairs used in [Logger.Info]. + * The result is a new Logger with the same handler as the original, but additional + * attributes that will appear in the output of every call. + * + * # Levels + * + * A [Level] is an integer representing the importance or severity of a log event. + * The higher the level, the more severe the event. + * This package defines constants for the most common levels, + * but any int can be used as a level. + * + * In an application, you may wish to log messages only at a certain level or greater. + * One common configuration is to log messages at Info or higher levels, + * suppressing debug logging until it is needed. + * The built-in handlers can be configured with the minimum level to output by + * setting [HandlerOptions.Level]. + * The program's `main` function typically does this. + * The default value is LevelInfo. + * + * Setting the [HandlerOptions.Level] field to a [Level] value + * fixes the handler's minimum level throughout its lifetime. + * Setting it to a [LevelVar] allows the level to be varied dynamically. + * A LevelVar holds a Level and is safe to read or write from multiple + * goroutines. + * To vary the level dynamically for an entire program, first initialize + * a global LevelVar: + * + * ``` + * var programLevel = new(slog.LevelVar) // Info by default + * ``` + * + * Then use the LevelVar to construct a handler, and make it the default: + * + * ``` + * h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel}) + * slog.SetDefault(slog.New(h)) + * ``` + * + * Now the program can change its logging level with a single statement: + * + * ``` + * programLevel.Set(slog.LevelDebug) + * ``` + * + * # Groups + * + * Attributes can be collected into groups. + * A group has a name that is used to qualify the names of its attributes. + * How this qualification is displayed depends on the handler. + * [TextHandler] separates the group and attribute names with a dot. + * [JSONHandler] treats each group as a separate JSON object, with the group name as the key. + * + * Use [Group] to create a Group attribute from a name and a list of key-value pairs: + * + * ``` + * slog.Group("request", + * "method", r.Method, + * "url", r.URL) + * ``` + * + * TextHandler would display this group as + * + * ``` + * request.method=GET request.url=http://example.com + * ``` + * + * JSONHandler would display it as + * + * ``` + * "request":{"method":"GET","url":"http://example.com"} + * ``` + * + * Use [Logger.WithGroup] to qualify all of a Logger's output + * with a group name. Calling WithGroup on a Logger results in a + * new Logger with the same Handler as the original, but with all + * its attributes qualified by the group name. + * + * This can help prevent duplicate attribute keys in large systems, + * where subsystems might use the same keys. + * Pass each subsystem a different Logger with its own group name so that + * potential duplicates are qualified: + * + * ``` + * logger := slog.Default().With("id", systemID) + * parserLogger := logger.WithGroup("parser") + * parseInput(input, parserLogger) + * ``` + * + * When parseInput logs with parserLogger, its keys will be qualified with "parser", + * so even if it uses the common key "id", the log line will have distinct keys. + * + * # Contexts + * + * Some handlers may wish to include information from the [context.Context] that is + * available at the call site. One example of such information + * is the identifier for the current span when tracing is enabled. + * + * The [Logger.Log] and [Logger.LogAttrs] methods take a context as a first + * argument, as do their corresponding top-level functions. + * + * Although the convenience methods on Logger (Info and so on) and the + * corresponding top-level functions do not take a context, the alternatives ending + * in "Context" do. For example, + * + * ``` + * slog.InfoContext(ctx, "message") + * ``` + * + * It is recommended to pass a context to an output method if one is available. + * + * # Attrs and Values + * + * An [Attr] is a key-value pair. The Logger output methods accept Attrs as well as + * alternating keys and values. The statement + * + * ``` + * slog.Info("hello", slog.Int("count", 3)) + * ``` + * + * behaves the same as + * + * ``` + * slog.Info("hello", "count", 3) + * ``` + * + * There are convenience constructors for [Attr] such as [Int], [String], and [Bool] + * for common types, as well as the function [Any] for constructing Attrs of any + * type. + * + * The value part of an Attr is a type called [Value]. + * Like an [any], a Value can hold any Go value, + * but it can represent typical values, including all numbers and strings, + * without an allocation. + * + * For the most efficient log output, use [Logger.LogAttrs]. + * It is similar to [Logger.Log] but accepts only Attrs, not alternating + * keys and values; this allows it, too, to avoid allocation. + * + * The call + * + * ``` + * logger.LogAttrs(ctx, slog.LevelInfo, "hello", slog.Int("count", 3)) + * ``` + * + * is the most efficient way to achieve the same output as + * + * ``` + * slog.InfoContext(ctx, "hello", "count", 3) + * ``` + * + * # Customizing a type's logging behavior + * + * If a type implements the [LogValuer] interface, the [Value] returned from its LogValue + * method is used for logging. You can use this to control how values of the type + * appear in logs. For example, you can redact secret information like passwords, + * or gather a struct's fields in a Group. See the examples under [LogValuer] for + * details. + * + * A LogValue method may return a Value that itself implements [LogValuer]. The [Value.Resolve] + * method handles these cases carefully, avoiding infinite loops and unbounded recursion. + * Handler authors and others may wish to use [Value.Resolve] instead of calling LogValue directly. + * + * # Wrapping output methods + * + * The logger functions use reflection over the call stack to find the file name + * and line number of the logging call within the application. This can produce + * incorrect source information for functions that wrap slog. For instance, if you + * define this function in file mylog.go: + * + * ``` + * func Infof(logger *slog.Logger, format string, args ...any) { + * logger.Info(fmt.Sprintf(format, args...)) + * } + * ``` + * + * and you call it like this in main.go: + * + * ``` + * Infof(slog.Default(), "hello, %s", "world") + * ``` + * + * then slog will report the source file as mylog.go, not main.go. + * + * A correct implementation of Infof will obtain the source location + * (pc) and pass it to NewRecord. + * The Infof function in the package-level example called "wrapping" + * demonstrates how to do this. + * + * # Working with Records + * + * Sometimes a Handler will need to modify a Record + * before passing it on to another Handler or backend. + * A Record contains a mixture of simple public fields (e.g. Time, Level, Message) + * and hidden fields that refer to state (such as attributes) indirectly. This + * means that modifying a simple copy of a Record (e.g. by calling + * [Record.Add] or [Record.AddAttrs] to add attributes) + * may have unexpected effects on the original. + * Before modifying a Record, use [Record.Clone] to + * create a copy that shares no state with the original, + * or create a new Record with [NewRecord] + * and build up its Attrs by traversing the old ones with [Record.Attrs]. + * + * # Performance considerations + * + * If profiling your application demonstrates that logging is taking significant time, + * the following suggestions may help. + * + * If many log lines have a common attribute, use [Logger.With] to create a Logger with + * that attribute. The built-in handlers will format that attribute only once, at the + * call to [Logger.With]. The [Handler] interface is designed to allow that optimization, + * and a well-written Handler should take advantage of it. + * + * The arguments to a log call are always evaluated, even if the log event is discarded. + * If possible, defer computation so that it happens only if the value is actually logged. + * For example, consider the call + * + * ``` + * slog.Info("starting request", "url", r.URL.String()) // may compute String unnecessarily + * ``` + * + * The URL.String method will be called even if the logger discards Info-level events. + * Instead, pass the URL directly: + * + * ``` + * slog.Info("starting request", "url", &r.URL) // calls URL.String only if needed + * ``` + * + * The built-in [TextHandler] will call its String method, but only + * if the log event is enabled. + * Avoiding the call to String also preserves the structure of the underlying value. + * For example [JSONHandler] emits the components of the parsed URL as a JSON object. + * If you want to avoid eagerly paying the cost of the String call + * without causing the handler to potentially inspect the structure of the value, + * wrap the value in a fmt.Stringer implementation that hides its Marshal methods. + * + * You can also use the [LogValuer] interface to avoid unnecessary work in disabled log + * calls. Say you need to log some expensive value: + * + * ``` + * slog.Debug("frobbing", "value", computeExpensiveValue(arg)) + * ``` + * + * Even if this line is disabled, computeExpensiveValue will be called. + * To avoid that, define a type implementing LogValuer: + * + * ``` + * type expensive struct { arg int } + * + * func (e expensive) LogValue() slog.Value { + * return slog.AnyValue(computeExpensiveValue(e.arg)) + * } + * ``` + * + * Then use a value of that type in log calls: + * + * ``` + * slog.Debug("frobbing", "value", expensive{arg}) + * ``` + * + * Now computeExpensiveValue will only be called when the line is enabled. + * + * The built-in handlers acquire a lock before calling [io.Writer.Write] + * to ensure that exactly one [Record] is written at a time in its entirety. + * Although each log record has a timestamp, + * the built-in handlers do not use that time to sort the written records. + * User-defined handlers are responsible for their own locking and sorting. + * + * # Writing a handler + * + * For a guide to writing a custom handler, see https://golang.org/s/slog-handler-guide. + */ +namespace slog { + // @ts-ignore + import loginternal = internal + /** + * A Logger records structured information about each call to its + * Log, Debug, Info, Warn, and Error methods. + * For each call, it creates a [Record] and passes it to a [Handler]. + * + * To create a new Logger, call [New] or a Logger method + * that begins "With". + */ + interface Logger { + } + interface Logger { + /** + * Handler returns l's Handler. + */ + handler(): Handler + } + interface Logger { + /** + * With returns a Logger that includes the given attributes + * in each output operation. Arguments are converted to + * attributes as if by [Logger.Log]. + */ + with(...args: any[]): (Logger) + } + interface Logger { + /** + * WithGroup returns a Logger that starts a group, if name is non-empty. + * The keys of all attributes added to the Logger will be qualified by the given + * name. (How that qualification happens depends on the [Handler.WithGroup] + * method of the Logger's Handler.) + * + * If name is empty, WithGroup returns the receiver. + */ + withGroup(name: string): (Logger) + } + interface Logger { + /** + * Enabled reports whether l emits log records at the given context and level. + */ + enabled(ctx: context.Context, level: Level): boolean + } + interface Logger { + /** + * Log emits a log record with the current time and the given level and message. + * The Record's Attrs consist of the Logger's attributes followed by + * the Attrs specified by args. + * + * The attribute arguments are processed as follows: + * ``` + * - If an argument is an Attr, it is used as is. + * - If an argument is a string and this is not the last argument, + * the following argument is treated as the value and the two are combined + * into an Attr. + * - Otherwise, the argument is treated as a value with key "!BADKEY". + * ``` + */ + log(ctx: context.Context, level: Level, msg: string, ...args: any[]): void + } + interface Logger { + /** + * LogAttrs is a more efficient version of [Logger.Log] that accepts only Attrs. + */ + logAttrs(ctx: context.Context, level: Level, msg: string, ...attrs: Attr[]): void + } + interface Logger { + /** + * Debug logs at [LevelDebug]. + */ + debug(msg: string, ...args: any[]): void + } + interface Logger { + /** + * DebugContext logs at [LevelDebug] with the given context. + */ + debugContext(ctx: context.Context, msg: string, ...args: any[]): void + } + interface Logger { + /** + * Info logs at [LevelInfo]. + */ + info(msg: string, ...args: any[]): void + } + interface Logger { + /** + * InfoContext logs at [LevelInfo] with the given context. + */ + infoContext(ctx: context.Context, msg: string, ...args: any[]): void + } + interface Logger { + /** + * Warn logs at [LevelWarn]. + */ + warn(msg: string, ...args: any[]): void + } + interface Logger { + /** + * WarnContext logs at [LevelWarn] with the given context. + */ + warnContext(ctx: context.Context, msg: string, ...args: any[]): void + } + interface Logger { + /** + * Error logs at [LevelError]. + */ + error(msg: string, ...args: any[]): void + } + interface Logger { + /** + * ErrorContext logs at [LevelError] with the given context. + */ + errorContext(ctx: context.Context, msg: string, ...args: any[]): void } } @@ -20949,103 +21113,6 @@ namespace subscriptions { } } -/** - * Package cron implements a crontab-like service to execute and schedule - * repeative tasks/jobs. - * - * Example: - * - * ``` - * c := cron.New() - * c.MustAdd("dailyReport", "0 0 * * *", func() { ... }) - * c.Start() - * ``` - */ -namespace cron { - /** - * Cron is a crontab-like struct for tasks/jobs scheduling. - */ - interface Cron { - } - interface Cron { - /** - * SetInterval changes the current cron tick interval - * (it usually should be >= 1 minute). - */ - setInterval(d: time.Duration): void - } - interface Cron { - /** - * SetTimezone changes the current cron tick timezone. - */ - setTimezone(l: time.Location): void - } - interface Cron { - /** - * MustAdd is similar to Add() but panic on failure. - */ - mustAdd(jobId: string, cronExpr: string, run: () => void): void - } - interface Cron { - /** - * Add registers a single cron job. - * - * If there is already a job with the provided id, then the old job - * will be replaced with the new one. - * - * cronExpr is a regular cron expression, eg. "0 *\/3 * * *" (aka. at minute 0 past every 3rd hour). - * Check cron.NewSchedule() for the supported tokens. - */ - add(jobId: string, cronExpr: string, fn: () => void): void - } - interface Cron { - /** - * Remove removes a single cron job by its id. - */ - remove(jobId: string): void - } - interface Cron { - /** - * RemoveAll removes all registered cron jobs. - */ - removeAll(): void - } - interface Cron { - /** - * Total returns the current total number of registered cron jobs. - */ - total(): number - } - interface Cron { - /** - * Jobs returns a shallow copy of the currently registered cron jobs. - */ - jobs(): Array<(Job | undefined)> - } - interface Cron { - /** - * Stop stops the current cron ticker (if not already). - * - * You can resume the ticker by calling Start(). - */ - stop(): void - } - interface Cron { - /** - * Start starts the cron ticker. - * - * Calling Start() on already started cron will restart the ticker. - */ - start(): void - } - interface Cron { - /** - * HasStarted checks whether the current Cron ticker has been started. - */ - hasStarted(): boolean - } -} - namespace sync { /** * A Locker represents an object that can be locked and unlocked. @@ -21057,47 +21124,6 @@ namespace sync { } } -namespace syscall { - /** - * SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux. - * See user_namespaces(7). - * - * Note that User Namespaces are not available on a number of popular Linux - * versions (due to security issues), or are available but subject to AppArmor - * restrictions like in Ubuntu 24.04. - */ - interface SysProcIDMap { - containerID: number // Container ID. - hostID: number // Host ID. - size: number // Size. - } - // @ts-ignore - import errorspkg = errors - /** - * Credential holds user and group identities to be assumed - * by a child process started by [StartProcess]. - */ - interface Credential { - uid: number // User ID. - gid: number // Group ID. - groups: Array // Supplementary group IDs. - noSetGroups: boolean // If true, don't set supplementary groups - } - // @ts-ignore - import runtimesyscall = syscall - /** - * A Signal is a number describing a process signal. - * It implements the [os.Signal] interface. - */ - interface Signal extends Number{} - interface Signal { - signal(): void - } - interface Signal { - string(): string - } -} - namespace io { /** * WriteCloser is the interface that groups the basic Write and Close methods. @@ -21107,587 +21133,6 @@ namespace io { } } -namespace time { - /** - * A Month specifies a month of the year (January = 1, ...). - */ - interface Month extends Number{} - interface Month { - /** - * String returns the English name of the month ("January", "February", ...). - */ - string(): string - } - /** - * A Weekday specifies a day of the week (Sunday = 0, ...). - */ - interface Weekday extends Number{} - interface Weekday { - /** - * String returns the English name of the day ("Sunday", "Monday", ...). - */ - string(): string - } - /** - * A Location maps time instants to the zone in use at that time. - * Typically, the Location represents the collection of time offsets - * in use in a geographical area. For many Locations the time offset varies - * depending on whether daylight savings time is in use at the time instant. - * - * Location is used to provide a time zone in a printed Time value and for - * calculations involving intervals that may cross daylight savings time - * boundaries. - */ - interface Location { - } - interface Location { - /** - * String returns a descriptive name for the time zone information, - * corresponding to the name argument to [LoadLocation] or [FixedZone]. - */ - string(): string - } -} - -namespace fs { -} - -namespace store { -} - -/** - * Package url parses URLs and implements query escaping. - */ -namespace url { - /** - * A URL represents a parsed URL (technically, a URI reference). - * - * The general form represented is: - * - * ``` - * [scheme:][//[userinfo@]host][/]path[?query][#fragment] - * ``` - * - * URLs that do not start with a slash after the scheme are interpreted as: - * - * ``` - * scheme:opaque[?query][#fragment] - * ``` - * - * The Host field contains the host and port subcomponents of the URL. - * When the port is present, it is separated from the host with a colon. - * When the host is an IPv6 address, it must be enclosed in square brackets: - * "[fe80::1]:80". The [net.JoinHostPort] function combines a host and port - * into a string suitable for the Host field, adding square brackets to - * the host when necessary. - * - * Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/. - * A consequence is that it is impossible to tell which slashes in the Path were - * slashes in the raw URL and which were %2f. This distinction is rarely important, - * but when it is, the code should use the [URL.EscapedPath] method, which preserves - * the original encoding of Path. - * - * The RawPath field is an optional field which is only set when the default - * encoding of Path is different from the escaped path. See the EscapedPath method - * for more details. - * - * URL's String method uses the EscapedPath method to obtain the path. - */ - interface URL { - scheme: string - opaque: string // encoded opaque data - user?: Userinfo // username and password information - host: string // host or host:port (see Hostname and Port methods) - path: string // path (relative paths may omit leading slash) - rawPath: string // encoded path hint (see EscapedPath method) - omitHost: boolean // do not emit empty host (authority) - forceQuery: boolean // append a query ('?') even if RawQuery is empty - rawQuery: string // encoded query values, without '?' - fragment: string // fragment for references, without '#' - rawFragment: string // encoded fragment hint (see EscapedFragment method) - } - interface URL { - /** - * EscapedPath returns the escaped form of u.Path. - * In general there are multiple possible escaped forms of any path. - * EscapedPath returns u.RawPath when it is a valid escaping of u.Path. - * Otherwise EscapedPath ignores u.RawPath and computes an escaped - * form on its own. - * The [URL.String] and [URL.RequestURI] methods use EscapedPath to construct - * their results. - * In general, code should call EscapedPath instead of - * reading u.RawPath directly. - */ - escapedPath(): string - } - interface URL { - /** - * EscapedFragment returns the escaped form of u.Fragment. - * In general there are multiple possible escaped forms of any fragment. - * EscapedFragment returns u.RawFragment when it is a valid escaping of u.Fragment. - * Otherwise EscapedFragment ignores u.RawFragment and computes an escaped - * form on its own. - * The [URL.String] method uses EscapedFragment to construct its result. - * In general, code should call EscapedFragment instead of - * reading u.RawFragment directly. - */ - escapedFragment(): string - } - interface URL { - /** - * String reassembles the [URL] into a valid URL string. - * The general form of the result is one of: - * - * ``` - * scheme:opaque?query#fragment - * scheme://userinfo@host/path?query#fragment - * ``` - * - * If u.Opaque is non-empty, String uses the first form; - * otherwise it uses the second form. - * Any non-ASCII characters in host are escaped. - * To obtain the path, String uses u.EscapedPath(). - * - * In the second form, the following rules apply: - * ``` - * - if u.Scheme is empty, scheme: is omitted. - * - if u.User is nil, userinfo@ is omitted. - * - if u.Host is empty, host/ is omitted. - * - if u.Scheme and u.Host are empty and u.User is nil, - * the entire scheme://userinfo@host/ is omitted. - * - if u.Host is non-empty and u.Path begins with a /, - * the form host/path does not add its own /. - * - if u.RawQuery is empty, ?query is omitted. - * - if u.Fragment is empty, #fragment is omitted. - * ``` - */ - string(): string - } - interface URL { - /** - * Redacted is like [URL.String] but replaces any password with "xxxxx". - * Only the password in u.User is redacted. - */ - redacted(): string - } - /** - * Values maps a string key to a list of values. - * It is typically used for query parameters and form values. - * Unlike in the http.Header map, the keys in a Values map - * are case-sensitive. - */ - interface Values extends _TygojaDict{} - interface Values { - /** - * Get gets the first value associated with the given key. - * If there are no values associated with the key, Get returns - * the empty string. To access multiple values, use the map - * directly. - */ - get(key: string): string - } - interface Values { - /** - * Set sets the key to value. It replaces any existing - * values. - */ - set(key: string, value: string): void - } - interface Values { - /** - * Add adds the value to key. It appends to any existing - * values associated with key. - */ - add(key: string, value: string): void - } - interface Values { - /** - * Del deletes the values associated with key. - */ - del(key: string): void - } - interface Values { - /** - * Has checks whether a given key is set. - */ - has(key: string): boolean - } - interface Values { - /** - * Encode encodes the values into “URL encoded” form - * ("bar=baz&foo=quux") sorted by key. - */ - encode(): string - } - interface URL { - /** - * IsAbs reports whether the [URL] is absolute. - * Absolute means that it has a non-empty scheme. - */ - isAbs(): boolean - } - interface URL { - /** - * Parse parses a [URL] in the context of the receiver. The provided URL - * may be relative or absolute. Parse returns nil, err on parse - * failure, otherwise its return value is the same as [URL.ResolveReference]. - */ - parse(ref: string): (URL) - } - interface URL { - /** - * ResolveReference resolves a URI reference to an absolute URI from - * an absolute base URI u, per RFC 3986 Section 5.2. The URI reference - * may be relative or absolute. ResolveReference always returns a new - * [URL] instance, even if the returned URL is identical to either the - * base or reference. If ref is an absolute URL, then ResolveReference - * ignores base and returns a copy of ref. - */ - resolveReference(ref: URL): (URL) - } - interface URL { - /** - * Query parses RawQuery and returns the corresponding values. - * It silently discards malformed value pairs. - * To check errors use [ParseQuery]. - */ - query(): Values - } - interface URL { - /** - * RequestURI returns the encoded path?query or opaque?query - * string that would be used in an HTTP request for u. - */ - requestURI(): string - } - interface URL { - /** - * Hostname returns u.Host, stripping any valid port number if present. - * - * If the result is enclosed in square brackets, as literal IPv6 addresses are, - * the square brackets are removed from the result. - */ - hostname(): string - } - interface URL { - /** - * Port returns the port part of u.Host, without the leading colon. - * - * If u.Host doesn't contain a valid numeric port, Port returns an empty string. - */ - port(): string - } - interface URL { - marshalBinary(): string|Array - } - interface URL { - unmarshalBinary(text: string|Array): void - } - interface URL { - /** - * JoinPath returns a new [URL] with the provided path elements joined to - * any existing path and the resulting path cleaned of any ./ or ../ elements. - * Any sequences of multiple / characters will be reduced to a single /. - */ - joinPath(...elem: string[]): (URL) - } -} - -namespace context { -} - -namespace net { - /** - * Addr represents a network end point address. - * - * The two methods [Addr.Network] and [Addr.String] conventionally return strings - * that can be passed as the arguments to [Dial], but the exact form - * and meaning of the strings is up to the implementation. - */ - interface Addr { - [key:string]: any; - network(): string // name of the network (for example, "tcp", "udp") - string(): string // string form of address (for example, "192.0.2.1:25", "[2001:db8::1]:80") - } - /** - * A Listener is a generic network listener for stream-oriented protocols. - * - * Multiple goroutines may invoke methods on a Listener simultaneously. - */ - interface Listener { - [key:string]: any; - /** - * Accept waits for and returns the next connection to the listener. - */ - accept(): Conn - /** - * Close closes the listener. - * Any blocked Accept operations will be unblocked and return errors. - */ - close(): void - /** - * Addr returns the listener's network address. - */ - addr(): Addr - } -} - -namespace jwt { - /** - * NumericDate represents a JSON numeric date value, as referenced at - * https://datatracker.ietf.org/doc/html/rfc7519#section-2. - */ - type _sHxJrxk = time.Time - interface NumericDate extends _sHxJrxk { - } - interface NumericDate { - /** - * MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch - * represented in NumericDate to a byte array, using the precision specified in TimePrecision. - */ - marshalJSON(): string|Array - } - interface NumericDate { - /** - * UnmarshalJSON is an implementation of the json.RawMessage interface and - * deserializes a [NumericDate] from a JSON representation, i.e. a - * [json.Number]. This number represents an UNIX epoch with either integer or - * non-integer seconds. - */ - unmarshalJSON(b: string|Array): void - } - /** - * ClaimStrings is basically just a slice of strings, but it can be either - * serialized from a string array or just a string. This type is necessary, - * since the "aud" claim can either be a single string or an array. - */ - interface ClaimStrings extends Array{} - interface ClaimStrings { - unmarshalJSON(data: string|Array): void - } - interface ClaimStrings { - marshalJSON(): string|Array - } -} - -namespace hook { - /** - * wrapped local Hook embedded struct to limit the public API surface. - */ - type _sAafFuB = Hook - interface mainHook extends _sAafFuB { - } -} - -namespace sql { - /** - * IsolationLevel is the transaction isolation level used in [TxOptions]. - */ - interface IsolationLevel extends Number{} - interface IsolationLevel { - /** - * String returns the name of the transaction isolation level. - */ - string(): string - } - /** - * DBStats contains database statistics. - */ - interface DBStats { - maxOpenConnections: number // Maximum number of open connections to the database. - /** - * Pool Status - */ - openConnections: number // The number of established connections both in use and idle. - inUse: number // The number of connections currently in use. - idle: number // The number of idle connections. - /** - * Counters - */ - waitCount: number // The total number of connections waited for. - waitDuration: time.Duration // The total time blocked waiting for a new connection. - maxIdleClosed: number // The total number of connections closed due to SetMaxIdleConns. - maxIdleTimeClosed: number // The total number of connections closed due to SetConnMaxIdleTime. - maxLifetimeClosed: number // The total number of connections closed due to SetConnMaxLifetime. - } - /** - * Conn represents a single database connection rather than a pool of database - * connections. Prefer running queries from [DB] unless there is a specific - * need for a continuous single database connection. - * - * A Conn must call [Conn.Close] to return the connection to the database pool - * and may do so concurrently with a running query. - * - * After a call to [Conn.Close], all operations on the - * connection fail with [ErrConnDone]. - */ - interface Conn { - } - interface Conn { - /** - * PingContext verifies the connection to the database is still alive. - */ - pingContext(ctx: context.Context): void - } - interface Conn { - /** - * ExecContext executes a query without returning any rows. - * The args are for any placeholder parameters in the query. - */ - execContext(ctx: context.Context, query: string, ...args: any[]): Result - } - interface Conn { - /** - * QueryContext executes a query that returns rows, typically a SELECT. - * The args are for any placeholder parameters in the query. - */ - queryContext(ctx: context.Context, query: string, ...args: any[]): (Rows) - } - interface Conn { - /** - * QueryRowContext executes a query that is expected to return at most one row. - * QueryRowContext always returns a non-nil value. Errors are deferred until - * the [*Row.Scan] method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - */ - queryRowContext(ctx: context.Context, query: string, ...args: any[]): (Row) - } - interface Conn { - /** - * PrepareContext creates a prepared statement for later queries or executions. - * Multiple queries or executions may be run concurrently from the - * returned statement. - * The caller must call the statement's [*Stmt.Close] method - * when the statement is no longer needed. - * - * The provided context is used for the preparation of the statement, not for the - * execution of the statement. - */ - prepareContext(ctx: context.Context, query: string): (Stmt) - } - interface Conn { - /** - * Raw executes f exposing the underlying driver connection for the - * duration of f. The driverConn must not be used outside of f. - * - * Once f returns and err is not [driver.ErrBadConn], the [Conn] will continue to be usable - * until [Conn.Close] is called. - */ - raw(f: (driverConn: any) => void): void - } - interface Conn { - /** - * BeginTx starts a transaction. - * - * The provided context is used until the transaction is committed or rolled back. - * If the context is canceled, the sql package will roll back - * the transaction. [Tx.Commit] will return an error if the context provided to - * BeginTx is canceled. - * - * The provided [TxOptions] is optional and may be nil if defaults should be used. - * If a non-default isolation level is used that the driver doesn't support, - * an error will be returned. - */ - beginTx(ctx: context.Context, opts: TxOptions): (Tx) - } - interface Conn { - /** - * Close returns the connection to the connection pool. - * All operations after a Close will return with [ErrConnDone]. - * Close is safe to call concurrently with other operations and will - * block until all other operations finish. It may be useful to first - * cancel any used context and then call close directly after. - */ - close(): void - } - /** - * ColumnType contains the name and type of a column. - */ - interface ColumnType { - } - interface ColumnType { - /** - * Name returns the name or alias of the column. - */ - name(): string - } - interface ColumnType { - /** - * Length returns the column type length for variable length column types such - * as text and binary field types. If the type length is unbounded the value will - * be [math.MaxInt64] (any database limits will still apply). - * If the column type is not variable length, such as an int, or if not supported - * by the driver ok is false. - */ - length(): [number, boolean] - } - interface ColumnType { - /** - * DecimalSize returns the scale and precision of a decimal type. - * If not applicable or if not supported ok is false. - */ - decimalSize(): [number, number, boolean] - } - interface ColumnType { - /** - * ScanType returns a Go type suitable for scanning into using [Rows.Scan]. - * If a driver does not support this property ScanType will return - * the type of an empty interface. - */ - scanType(): any - } - interface ColumnType { - /** - * Nullable reports whether the column may be null. - * If a driver does not support this property ok will be false. - */ - nullable(): [boolean, boolean] - } - interface ColumnType { - /** - * DatabaseTypeName returns the database system name of the column type. If an empty - * string is returned, then the driver type name is not supported. - * Consult your driver documentation for a list of driver data types. [ColumnType.Length] specifiers - * are not included. - * Common type names include "VARCHAR", "TEXT", "NVARCHAR", "DECIMAL", "BOOL", - * "INT", and "BIGINT". - */ - databaseTypeName(): string - } - /** - * Row is the result of calling [DB.QueryRow] to select a single row. - */ - interface Row { - } - interface Row { - /** - * Scan copies the columns from the matched row into the values - * pointed at by dest. See the documentation on [Rows.Scan] for details. - * If more than one row matches the query, - * Scan uses the first row and discards the rest. If no row matches - * the query, Scan returns [ErrNoRows]. - */ - scan(...dest: any[]): void - } - interface Row { - /** - * Err provides a way for wrapping packages to check for - * query errors without calling [Row.Scan]. - * Err returns the error, if any, that was encountered while running the query. - * If this error is not nil, this error will also be returned from [Row.Scan]. - */ - err(): void - } -} - -namespace types { -} - -namespace search { -} - namespace bufio { /** * Reader implements buffering for an io.Reader object. @@ -21948,6 +21393,110 @@ namespace bufio { } } +namespace syscall { + /** + * SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux. + * See user_namespaces(7). + * + * Note that User Namespaces are not available on a number of popular Linux + * versions (due to security issues), or are available but subject to AppArmor + * restrictions like in Ubuntu 24.04. + */ + interface SysProcIDMap { + containerID: number // Container ID. + hostID: number // Host ID. + size: number // Size. + } + // @ts-ignore + import errorspkg = errors + /** + * Credential holds user and group identities to be assumed + * by a child process started by [StartProcess]. + */ + interface Credential { + uid: number // User ID. + gid: number // Group ID. + groups: Array // Supplementary group IDs. + noSetGroups: boolean // If true, don't set supplementary groups + } + // @ts-ignore + import runtimesyscall = syscall + /** + * A Signal is a number describing a process signal. + * It implements the [os.Signal] interface. + */ + interface Signal extends Number{} + interface Signal { + signal(): void + } + interface Signal { + string(): string + } +} + +namespace time { + /** + * A Month specifies a month of the year (January = 1, ...). + */ + interface Month extends Number{} + interface Month { + /** + * String returns the English name of the month ("January", "February", ...). + */ + string(): string + } + /** + * A Weekday specifies a day of the week (Sunday = 0, ...). + */ + interface Weekday extends Number{} + interface Weekday { + /** + * String returns the English name of the day ("Sunday", "Monday", ...). + */ + string(): string + } + /** + * A Location maps time instants to the zone in use at that time. + * Typically, the Location represents the collection of time offsets + * in use in a geographical area. For many Locations the time offset varies + * depending on whether daylight savings time is in use at the time instant. + * + * Location is used to provide a time zone in a printed Time value and for + * calculations involving intervals that may cross daylight savings time + * boundaries. + */ + interface Location { + } + interface Location { + /** + * String returns a descriptive name for the time zone information, + * corresponding to the name argument to [LoadLocation] or [FixedZone]. + */ + string(): string + } +} + +namespace fs { +} + +namespace context { +} + +namespace net { + /** + * Addr represents a network end point address. + * + * The two methods [Addr.Network] and [Addr.String] conventionally return strings + * that can be passed as the arguments to [Dial], but the exact form + * and meaning of the strings is up to the implementation. + */ + interface Addr { + [key:string]: any; + network(): string // name of the network (for example, "tcp", "udp") + string(): string // string form of address (for example, "192.0.2.1:25", "[2001:db8::1]:80") + } +} + /** * Package textproto implements generic support for text-based request/response * protocols in the style of HTTP, NNTP, and SMTP. @@ -22087,6 +21636,447 @@ namespace multipart { } } +namespace sql { + /** + * IsolationLevel is the transaction isolation level used in [TxOptions]. + */ + interface IsolationLevel extends Number{} + interface IsolationLevel { + /** + * String returns the name of the transaction isolation level. + */ + string(): string + } + /** + * DBStats contains database statistics. + */ + interface DBStats { + maxOpenConnections: number // Maximum number of open connections to the database. + /** + * Pool Status + */ + openConnections: number // The number of established connections both in use and idle. + inUse: number // The number of connections currently in use. + idle: number // The number of idle connections. + /** + * Counters + */ + waitCount: number // The total number of connections waited for. + waitDuration: time.Duration // The total time blocked waiting for a new connection. + maxIdleClosed: number // The total number of connections closed due to SetMaxIdleConns. + maxIdleTimeClosed: number // The total number of connections closed due to SetConnMaxIdleTime. + maxLifetimeClosed: number // The total number of connections closed due to SetConnMaxLifetime. + } + /** + * Conn represents a single database connection rather than a pool of database + * connections. Prefer running queries from [DB] unless there is a specific + * need for a continuous single database connection. + * + * A Conn must call [Conn.Close] to return the connection to the database pool + * and may do so concurrently with a running query. + * + * After a call to [Conn.Close], all operations on the + * connection fail with [ErrConnDone]. + */ + interface Conn { + } + interface Conn { + /** + * PingContext verifies the connection to the database is still alive. + */ + pingContext(ctx: context.Context): void + } + interface Conn { + /** + * ExecContext executes a query without returning any rows. + * The args are for any placeholder parameters in the query. + */ + execContext(ctx: context.Context, query: string, ...args: any[]): Result + } + interface Conn { + /** + * QueryContext executes a query that returns rows, typically a SELECT. + * The args are for any placeholder parameters in the query. + */ + queryContext(ctx: context.Context, query: string, ...args: any[]): (Rows) + } + interface Conn { + /** + * QueryRowContext executes a query that is expected to return at most one row. + * QueryRowContext always returns a non-nil value. Errors are deferred until + * the [*Row.Scan] method is called. + * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. + * Otherwise, the [*Row.Scan] scans the first selected row and discards + * the rest. + */ + queryRowContext(ctx: context.Context, query: string, ...args: any[]): (Row) + } + interface Conn { + /** + * PrepareContext creates a prepared statement for later queries or executions. + * Multiple queries or executions may be run concurrently from the + * returned statement. + * The caller must call the statement's [*Stmt.Close] method + * when the statement is no longer needed. + * + * The provided context is used for the preparation of the statement, not for the + * execution of the statement. + */ + prepareContext(ctx: context.Context, query: string): (Stmt) + } + interface Conn { + /** + * Raw executes f exposing the underlying driver connection for the + * duration of f. The driverConn must not be used outside of f. + * + * Once f returns and err is not [driver.ErrBadConn], the [Conn] will continue to be usable + * until [Conn.Close] is called. + */ + raw(f: (driverConn: any) => void): void + } + interface Conn { + /** + * BeginTx starts a transaction. + * + * The provided context is used until the transaction is committed or rolled back. + * If the context is canceled, the sql package will roll back + * the transaction. [Tx.Commit] will return an error if the context provided to + * BeginTx is canceled. + * + * The provided [TxOptions] is optional and may be nil if defaults should be used. + * If a non-default isolation level is used that the driver doesn't support, + * an error will be returned. + */ + beginTx(ctx: context.Context, opts: TxOptions): (Tx) + } + interface Conn { + /** + * Close returns the connection to the connection pool. + * All operations after a Close will return with [ErrConnDone]. + * Close is safe to call concurrently with other operations and will + * block until all other operations finish. It may be useful to first + * cancel any used context and then call close directly after. + */ + close(): void + } + /** + * ColumnType contains the name and type of a column. + */ + interface ColumnType { + } + interface ColumnType { + /** + * Name returns the name or alias of the column. + */ + name(): string + } + interface ColumnType { + /** + * Length returns the column type length for variable length column types such + * as text and binary field types. If the type length is unbounded the value will + * be [math.MaxInt64] (any database limits will still apply). + * If the column type is not variable length, such as an int, or if not supported + * by the driver ok is false. + */ + length(): [number, boolean] + } + interface ColumnType { + /** + * DecimalSize returns the scale and precision of a decimal type. + * If not applicable or if not supported ok is false. + */ + decimalSize(): [number, number, boolean] + } + interface ColumnType { + /** + * ScanType returns a Go type suitable for scanning into using [Rows.Scan]. + * If a driver does not support this property ScanType will return + * the type of an empty interface. + */ + scanType(): any + } + interface ColumnType { + /** + * Nullable reports whether the column may be null. + * If a driver does not support this property ok will be false. + */ + nullable(): [boolean, boolean] + } + interface ColumnType { + /** + * DatabaseTypeName returns the database system name of the column type. If an empty + * string is returned, then the driver type name is not supported. + * Consult your driver documentation for a list of driver data types. [ColumnType.Length] specifiers + * are not included. + * Common type names include "VARCHAR", "TEXT", "NVARCHAR", "DECIMAL", "BOOL", + * "INT", and "BIGINT". + */ + databaseTypeName(): string + } + /** + * Row is the result of calling [DB.QueryRow] to select a single row. + */ + interface Row { + } + interface Row { + /** + * Scan copies the columns from the matched row into the values + * pointed at by dest. See the documentation on [Rows.Scan] for details. + * If more than one row matches the query, + * Scan uses the first row and discards the rest. If no row matches + * the query, Scan returns [ErrNoRows]. + */ + scan(...dest: any[]): void + } + interface Row { + /** + * Err provides a way for wrapping packages to check for + * query errors without calling [Row.Scan]. + * Err returns the error, if any, that was encountered while running the query. + * If this error is not nil, this error will also be returned from [Row.Scan]. + */ + err(): void + } +} + +/** + * Package url parses URLs and implements query escaping. + */ +namespace url { + /** + * A URL represents a parsed URL (technically, a URI reference). + * + * The general form represented is: + * + * ``` + * [scheme:][//[userinfo@]host][/]path[?query][#fragment] + * ``` + * + * URLs that do not start with a slash after the scheme are interpreted as: + * + * ``` + * scheme:opaque[?query][#fragment] + * ``` + * + * The Host field contains the host and port subcomponents of the URL. + * When the port is present, it is separated from the host with a colon. + * When the host is an IPv6 address, it must be enclosed in square brackets: + * "[fe80::1]:80". The [net.JoinHostPort] function combines a host and port + * into a string suitable for the Host field, adding square brackets to + * the host when necessary. + * + * Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/. + * A consequence is that it is impossible to tell which slashes in the Path were + * slashes in the raw URL and which were %2f. This distinction is rarely important, + * but when it is, the code should use the [URL.EscapedPath] method, which preserves + * the original encoding of Path. + * + * The RawPath field is an optional field which is only set when the default + * encoding of Path is different from the escaped path. See the EscapedPath method + * for more details. + * + * URL's String method uses the EscapedPath method to obtain the path. + */ + interface URL { + scheme: string + opaque: string // encoded opaque data + user?: Userinfo // username and password information + host: string // host or host:port (see Hostname and Port methods) + path: string // path (relative paths may omit leading slash) + rawPath: string // encoded path hint (see EscapedPath method) + omitHost: boolean // do not emit empty host (authority) + forceQuery: boolean // append a query ('?') even if RawQuery is empty + rawQuery: string // encoded query values, without '?' + fragment: string // fragment for references, without '#' + rawFragment: string // encoded fragment hint (see EscapedFragment method) + } + interface URL { + /** + * EscapedPath returns the escaped form of u.Path. + * In general there are multiple possible escaped forms of any path. + * EscapedPath returns u.RawPath when it is a valid escaping of u.Path. + * Otherwise EscapedPath ignores u.RawPath and computes an escaped + * form on its own. + * The [URL.String] and [URL.RequestURI] methods use EscapedPath to construct + * their results. + * In general, code should call EscapedPath instead of + * reading u.RawPath directly. + */ + escapedPath(): string + } + interface URL { + /** + * EscapedFragment returns the escaped form of u.Fragment. + * In general there are multiple possible escaped forms of any fragment. + * EscapedFragment returns u.RawFragment when it is a valid escaping of u.Fragment. + * Otherwise EscapedFragment ignores u.RawFragment and computes an escaped + * form on its own. + * The [URL.String] method uses EscapedFragment to construct its result. + * In general, code should call EscapedFragment instead of + * reading u.RawFragment directly. + */ + escapedFragment(): string + } + interface URL { + /** + * String reassembles the [URL] into a valid URL string. + * The general form of the result is one of: + * + * ``` + * scheme:opaque?query#fragment + * scheme://userinfo@host/path?query#fragment + * ``` + * + * If u.Opaque is non-empty, String uses the first form; + * otherwise it uses the second form. + * Any non-ASCII characters in host are escaped. + * To obtain the path, String uses u.EscapedPath(). + * + * In the second form, the following rules apply: + * ``` + * - if u.Scheme is empty, scheme: is omitted. + * - if u.User is nil, userinfo@ is omitted. + * - if u.Host is empty, host/ is omitted. + * - if u.Scheme and u.Host are empty and u.User is nil, + * the entire scheme://userinfo@host/ is omitted. + * - if u.Host is non-empty and u.Path begins with a /, + * the form host/path does not add its own /. + * - if u.RawQuery is empty, ?query is omitted. + * - if u.Fragment is empty, #fragment is omitted. + * ``` + */ + string(): string + } + interface URL { + /** + * Redacted is like [URL.String] but replaces any password with "xxxxx". + * Only the password in u.User is redacted. + */ + redacted(): string + } + /** + * Values maps a string key to a list of values. + * It is typically used for query parameters and form values. + * Unlike in the http.Header map, the keys in a Values map + * are case-sensitive. + */ + interface Values extends _TygojaDict{} + interface Values { + /** + * Get gets the first value associated with the given key. + * If there are no values associated with the key, Get returns + * the empty string. To access multiple values, use the map + * directly. + */ + get(key: string): string + } + interface Values { + /** + * Set sets the key to value. It replaces any existing + * values. + */ + set(key: string, value: string): void + } + interface Values { + /** + * Add adds the value to key. It appends to any existing + * values associated with key. + */ + add(key: string, value: string): void + } + interface Values { + /** + * Del deletes the values associated with key. + */ + del(key: string): void + } + interface Values { + /** + * Has checks whether a given key is set. + */ + has(key: string): boolean + } + interface Values { + /** + * Encode encodes the values into “URL encoded” form + * ("bar=baz&foo=quux") sorted by key. + */ + encode(): string + } + interface URL { + /** + * IsAbs reports whether the [URL] is absolute. + * Absolute means that it has a non-empty scheme. + */ + isAbs(): boolean + } + interface URL { + /** + * Parse parses a [URL] in the context of the receiver. The provided URL + * may be relative or absolute. Parse returns nil, err on parse + * failure, otherwise its return value is the same as [URL.ResolveReference]. + */ + parse(ref: string): (URL) + } + interface URL { + /** + * ResolveReference resolves a URI reference to an absolute URI from + * an absolute base URI u, per RFC 3986 Section 5.2. The URI reference + * may be relative or absolute. ResolveReference always returns a new + * [URL] instance, even if the returned URL is identical to either the + * base or reference. If ref is an absolute URL, then ResolveReference + * ignores base and returns a copy of ref. + */ + resolveReference(ref: URL): (URL) + } + interface URL { + /** + * Query parses RawQuery and returns the corresponding values. + * It silently discards malformed value pairs. + * To check errors use [ParseQuery]. + */ + query(): Values + } + interface URL { + /** + * RequestURI returns the encoded path?query or opaque?query + * string that would be used in an HTTP request for u. + */ + requestURI(): string + } + interface URL { + /** + * Hostname returns u.Host, stripping any valid port number if present. + * + * If the result is enclosed in square brackets, as literal IPv6 addresses are, + * the square brackets are removed from the result. + */ + hostname(): string + } + interface URL { + /** + * Port returns the port part of u.Host, without the leading colon. + * + * If u.Host doesn't contain a valid numeric port, Port returns an empty string. + */ + port(): string + } + interface URL { + marshalBinary(): string|Array + } + interface URL { + unmarshalBinary(text: string|Array): void + } + interface URL { + /** + * JoinPath returns a new [URL] with the provided path elements joined to + * any existing path and the resulting path cleaned of any ./ or ../ elements. + * Any sequences of multiple / characters will be reduced to a single /. + */ + joinPath(...elem: string[]): (URL) + } +} + namespace http { /** * A Cookie represents an HTTP cookie as sent in the Set-Cookie header of an @@ -22368,136 +22358,60 @@ namespace http { } } -/** - * Package oauth2 provides support for making - * OAuth2 authorized and authenticated HTTP requests, - * as specified in RFC 6749. - * It can additionally grant authorization with Bearer JWT. - */ -namespace oauth2 { - /** - * An AuthCodeOption is passed to Config.AuthCodeURL. - */ - interface AuthCodeOption { - [key:string]: any; - } - /** - * Token represents the credentials used to authorize - * the requests to access protected resources on the OAuth 2.0 - * provider's backend. - * - * Most users of this package should not access fields of Token - * directly. They're exported mostly for use by related packages - * implementing derivative OAuth2 flows. - */ - interface Token { - /** - * AccessToken is the token that authorizes and authenticates - * the requests. - */ - accessToken: string - /** - * TokenType is the type of token. - * The Type method returns either this or "Bearer", the default. - */ - tokenType: string - /** - * RefreshToken is a token that's used by the application - * (as opposed to the user) to refresh the access token - * if it expires. - */ - refreshToken: string - /** - * Expiry is the optional expiration time of the access token. - * - * If zero, [TokenSource] implementations will reuse the same - * token forever and RefreshToken or equivalent - * mechanisms for that TokenSource will not be used. - */ - expiry: time.Time - /** - * ExpiresIn is the OAuth2 wire format "expires_in" field, - * which specifies how many seconds later the token expires, - * relative to an unknown time base approximately around "now". - * It is the application's responsibility to populate - * `Expiry` from `ExpiresIn` when required. - */ - expiresIn: number - } - interface Token { - /** - * Type returns t.TokenType if non-empty, else "Bearer". - */ - type(): string - } - interface Token { - /** - * SetAuthHeader sets the Authorization header to r using the access - * token in t. - * - * This method is unnecessary when using [Transport] or an HTTP Client - * returned by this package. - */ - setAuthHeader(r: http.Request): void - } - interface Token { - /** - * WithExtra returns a new [Token] that's a clone of t, but using the - * provided raw extra map. This is only intended for use by packages - * implementing derivative OAuth2 flows. - */ - withExtra(extra: any): (Token) - } - interface Token { - /** - * Extra returns an extra field. - * Extra fields are key-value pairs returned by the server as a - * part of the token retrieval response. - */ - extra(key: string): any - } - interface Token { - /** - * Valid reports whether t is non-nil, has an AccessToken, and is not expired. - */ - valid(): boolean - } +namespace store { } -namespace subscriptions { -} - -namespace cron { +namespace jwt { /** - * Job defines a single registered cron job. + * NumericDate represents a JSON numeric date value, as referenced at + * https://datatracker.ietf.org/doc/html/rfc7519#section-2. */ - interface Job { + type _secYAvb = time.Time + interface NumericDate extends _secYAvb { } - interface Job { + interface NumericDate { /** - * Id returns the cron job id. - */ - id(): string - } - interface Job { - /** - * Expression returns the plain cron job schedule expression. - */ - expression(): string - } - interface Job { - /** - * Run runs the cron job function. - */ - run(): void - } - interface Job { - /** - * MarshalJSON implements [json.Marshaler] and export the current - * jobs data into valid JSON. + * MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch + * represented in NumericDate to a byte array, using the precision specified in TimePrecision. */ marshalJSON(): string|Array } + interface NumericDate { + /** + * UnmarshalJSON is an implementation of the json.RawMessage interface and + * deserializes a [NumericDate] from a JSON representation, i.e. a + * [json.Number]. This number represents an UNIX epoch with either integer or + * non-integer seconds. + */ + unmarshalJSON(b: string|Array): void + } + /** + * ClaimStrings is basically just a slice of strings, but it can be either + * serialized from a string array or just a string. This type is necessary, + * since the "aud" claim can either be a single string or an array. + */ + interface ClaimStrings extends Array{} + interface ClaimStrings { + unmarshalJSON(data: string|Array): void + } + interface ClaimStrings { + marshalJSON(): string|Array + } +} + +namespace hook { + /** + * wrapped local Hook embedded struct to limit the public API surface. + */ + type _sNBbKuL = Hook + interface mainHook extends _sNBbKuL { + } +} + +namespace types { +} + +namespace search { } namespace router { @@ -22679,6 +22593,138 @@ namespace slog { import loginternal = internal } +/** + * Package oauth2 provides support for making + * OAuth2 authorized and authenticated HTTP requests, + * as specified in RFC 6749. + * It can additionally grant authorization with Bearer JWT. + */ +namespace oauth2 { + /** + * An AuthCodeOption is passed to Config.AuthCodeURL. + */ + interface AuthCodeOption { + [key:string]: any; + } + /** + * Token represents the credentials used to authorize + * the requests to access protected resources on the OAuth 2.0 + * provider's backend. + * + * Most users of this package should not access fields of Token + * directly. They're exported mostly for use by related packages + * implementing derivative OAuth2 flows. + */ + interface Token { + /** + * AccessToken is the token that authorizes and authenticates + * the requests. + */ + accessToken: string + /** + * TokenType is the type of token. + * The Type method returns either this or "Bearer", the default. + */ + tokenType: string + /** + * RefreshToken is a token that's used by the application + * (as opposed to the user) to refresh the access token + * if it expires. + */ + refreshToken: string + /** + * Expiry is the optional expiration time of the access token. + * + * If zero, [TokenSource] implementations will reuse the same + * token forever and RefreshToken or equivalent + * mechanisms for that TokenSource will not be used. + */ + expiry: time.Time + /** + * ExpiresIn is the OAuth2 wire format "expires_in" field, + * which specifies how many seconds later the token expires, + * relative to an unknown time base approximately around "now". + * It is the application's responsibility to populate + * `Expiry` from `ExpiresIn` when required. + */ + expiresIn: number + } + interface Token { + /** + * Type returns t.TokenType if non-empty, else "Bearer". + */ + type(): string + } + interface Token { + /** + * SetAuthHeader sets the Authorization header to r using the access + * token in t. + * + * This method is unnecessary when using [Transport] or an HTTP Client + * returned by this package. + */ + setAuthHeader(r: http.Request): void + } + interface Token { + /** + * WithExtra returns a new [Token] that's a clone of t, but using the + * provided raw extra map. This is only intended for use by packages + * implementing derivative OAuth2 flows. + */ + withExtra(extra: any): (Token) + } + interface Token { + /** + * Extra returns an extra field. + * Extra fields are key-value pairs returned by the server as a + * part of the token retrieval response. + */ + extra(key: string): any + } + interface Token { + /** + * Valid reports whether t is non-nil, has an AccessToken, and is not expired. + */ + valid(): boolean + } +} + +namespace cron { + /** + * Job defines a single registered cron job. + */ + interface Job { + } + interface Job { + /** + * Id returns the cron job id. + */ + id(): string + } + interface Job { + /** + * Expression returns the plain cron job schedule expression. + */ + expression(): string + } + interface Job { + /** + * Run runs the cron job function. + */ + run(): void + } + interface Job { + /** + * MarshalJSON implements [json.Marshaler] and export the current + * jobs data into valid JSON. + */ + marshalJSON(): string|Array + } +} + +namespace subscriptions { +} + namespace cobra { interface PositionalArgs {(cmd: Command, args: Array): void } // @ts-ignore @@ -22737,94 +22783,6 @@ namespace cobra { interface CompletionFunc {(cmd: Command, args: Array, toComplete: string): [Array, ShellCompDirective] } } -namespace multipart { - /** - * A Part represents a single part in a multipart body. - */ - interface Part { - /** - * The headers of the body, if any, with the keys canonicalized - * in the same fashion that the Go http.Request headers are. - * For example, "foo-bar" changes case to "Foo-Bar" - */ - header: textproto.MIMEHeader - } - interface Part { - /** - * FormName returns the name parameter if p has a Content-Disposition - * of type "form-data". Otherwise it returns the empty string. - */ - formName(): string - } - interface Part { - /** - * FileName returns the filename parameter of the [Part]'s Content-Disposition - * header. If not empty, the filename is passed through filepath.Base (which is - * platform dependent) before being returned. - */ - fileName(): string - } - interface Part { - /** - * Read reads the body of a part, after its headers and before the - * next part (if any) begins. - */ - read(d: string|Array): number - } - interface Part { - close(): void - } -} - -namespace url { - /** - * The Userinfo type is an immutable encapsulation of username and - * password details for a [URL]. An existing Userinfo value is guaranteed - * to have a username set (potentially empty, as allowed by RFC 2396), - * and optionally a password. - */ - interface Userinfo { - } - interface Userinfo { - /** - * Username returns the username. - */ - username(): string - } - interface Userinfo { - /** - * Password returns the password in case it is set, and whether it is set. - */ - password(): [string, boolean] - } - interface Userinfo { - /** - * String returns the encoded userinfo information in the standard form - * of "username[:password]". - */ - string(): string - } -} - -namespace http { - /** - * SameSite allows a server to define a cookie attribute making it impossible for - * the browser to send this cookie along with cross-site requests. The main - * goal is to mitigate the risk of cross-origin information leakage, and provide - * some protection against cross-site request forgery attacks. - * - * See https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 for details. - */ - interface SameSite extends Number{} - // @ts-ignore - import mathrand = rand - // @ts-ignore - import urlpkg = url -} - -namespace oauth2 { -} - namespace slog { // @ts-ignore import loginternal = internal @@ -22997,6 +22955,94 @@ namespace slog { } } +namespace url { + /** + * The Userinfo type is an immutable encapsulation of username and + * password details for a [URL]. An existing Userinfo value is guaranteed + * to have a username set (potentially empty, as allowed by RFC 2396), + * and optionally a password. + */ + interface Userinfo { + } + interface Userinfo { + /** + * Username returns the username. + */ + username(): string + } + interface Userinfo { + /** + * Password returns the password in case it is set, and whether it is set. + */ + password(): [string, boolean] + } + interface Userinfo { + /** + * String returns the encoded userinfo information in the standard form + * of "username[:password]". + */ + string(): string + } +} + +namespace multipart { + /** + * A Part represents a single part in a multipart body. + */ + interface Part { + /** + * The headers of the body, if any, with the keys canonicalized + * in the same fashion that the Go http.Request headers are. + * For example, "foo-bar" changes case to "Foo-Bar" + */ + header: textproto.MIMEHeader + } + interface Part { + /** + * FormName returns the name parameter if p has a Content-Disposition + * of type "form-data". Otherwise it returns the empty string. + */ + formName(): string + } + interface Part { + /** + * FileName returns the filename parameter of the [Part]'s Content-Disposition + * header. If not empty, the filename is passed through filepath.Base (which is + * platform dependent) before being returned. + */ + fileName(): string + } + interface Part { + /** + * Read reads the body of a part, after its headers and before the + * next part (if any) begins. + */ + read(d: string|Array): number + } + interface Part { + close(): void + } +} + +namespace http { + /** + * SameSite allows a server to define a cookie attribute making it impossible for + * the browser to send this cookie along with cross-site requests. The main + * goal is to mitigate the risk of cross-origin information leakage, and provide + * some protection against cross-site request forgery attacks. + * + * See https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 for details. + */ + interface SameSite extends Number{} + // @ts-ignore + import mathrand = rand + // @ts-ignore + import urlpkg = url +} + +namespace oauth2 { +} + namespace cobra { // @ts-ignore import flag = pflag From 1953d54dc5b82cc727f9ea4022edb8ec518a8764 Mon Sep 17 00:00:00 2001 From: ghotso Date: Tue, 19 Aug 2025 01:42:35 +0200 Subject: [PATCH 36/46] fix(types): refine user type definitions for assigned users in incident handling --- .../schedule-incident/incident/form/IncidentBasicFields.tsx | 2 +- application/src/services/incident/pdf/generator.ts | 2 +- application/src/services/incident/pdf/sections.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/src/components/schedule-incident/incident/form/IncidentBasicFields.tsx b/application/src/components/schedule-incident/incident/form/IncidentBasicFields.tsx index 7cb648b..3882595 100644 --- a/application/src/components/schedule-incident/incident/form/IncidentBasicFields.tsx +++ b/application/src/components/schedule-incident/incident/form/IncidentBasicFields.tsx @@ -68,7 +68,7 @@ export const IncidentBasicFields: React.FC = () => { const selectedUser = users.find(user => user.id === form.getValues('assigned_to')); // Function to get user initials from name - const getUserInitials = (user: any): string => { + const getUserInitials = (user: { full_name?: string; username: string }): string => { if (user.full_name) { const nameParts = user.full_name.split(' '); if (nameParts.length > 1) { diff --git a/application/src/services/incident/pdf/generator.ts b/application/src/services/incident/pdf/generator.ts index 6ffb398..d69b2a1 100644 --- a/application/src/services/incident/pdf/generator.ts +++ b/application/src/services/incident/pdf/generator.ts @@ -24,7 +24,7 @@ export const generatePdf = async (incident: IncidentItem): Promise => { } // Fetch assigned user data if available - let assignedUser = null; + let assignedUser: { full_name?: string; username?: string } | null = null; const assigneeId = incident?.assigned_users || incident?.assigned_to; if (assigneeId) { try { diff --git a/application/src/services/incident/pdf/sections.ts b/application/src/services/incident/pdf/sections.ts index 3f5b464..59c43cf 100644 --- a/application/src/services/incident/pdf/sections.ts +++ b/application/src/services/incident/pdf/sections.ts @@ -146,7 +146,7 @@ export const addResolutionSection = (doc: jsPDF, incident: IncidentItem, yPos: n /** * Add the assignment information section to the PDF */ -export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: number, assignedUser?: any): number => { +export const addAssignmentSection = (doc: jsPDF, incident: IncidentItem, yPos: number, assignedUser?: { full_name?: string; username?: string } | null): number => { doc.setFontSize(14); doc.setTextColor(30, 64, 175); // Blue-800 doc.text('Assignment Information', 15, yPos); From c437704007d44e5d916f242911854bbe898e2ef9 Mon Sep 17 00:00:00 2001 From: ghotso Date: Thu, 21 Aug 2025 16:17:38 +0200 Subject: [PATCH 37/46] chore: remove pb_data runtime files and ignore directory --- server/pb_data/auxiliary.db | Bin 10645504 -> 0 bytes server/pb_data/auxiliary.db-shm | Bin 32768 -> 0 bytes server/pb_data/auxiliary.db-wal | Bin 552112 -> 0 bytes server/pb_data/data.db | Bin 2916352 -> 0 bytes server/pb_data/data.db-shm | Bin 32768 -> 0 bytes server/pb_data/data.db-wal | Bin 78312 -> 0 bytes server/pb_data/types.d.ts | 23076 ------------------------------ 7 files changed, 23076 deletions(-) delete mode 100644 server/pb_data/auxiliary.db delete mode 100644 server/pb_data/auxiliary.db-shm delete mode 100644 server/pb_data/auxiliary.db-wal delete mode 100644 server/pb_data/data.db delete mode 100644 server/pb_data/data.db-shm delete mode 100644 server/pb_data/data.db-wal delete mode 100644 server/pb_data/types.d.ts diff --git a/server/pb_data/auxiliary.db b/server/pb_data/auxiliary.db deleted file mode 100644 index b3c2a34cc23249e872e9b54b19fa429bd4baf789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10645504 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 G^IJVAcOUK(;b0Y88Ii~H|A(ON$@BkpJ`qv) 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
dD8~`*sJ@;t_nmbR8p=Q?sIM+Wci6| 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 #A6X(h`18*7{oEeqY;lnJQDE;#KRF^fcSjG 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

~ve|{?Iv+q%aDRhD@Fdm#rPqVU*mSrUW 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

K9Oi_n-*xMiG7< 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ʵO{lh_Q&Bta=s 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%0Ay7#_!-uJ|P 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 np@m%J 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

w$Ne#yS9IRv0$ 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%0Aci{a4Hw@SVQv)lX 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 BESvxU diff --git a/server/pb_data/auxiliary.db-shm b/server/pb_data/auxiliary.db-shm deleted file mode 100644 index a7f5dd46951c4340d0370d02433157e679a24f6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI5S!@+$9K{c^D5!u}z`Ad!RYWVRqJp-HMHEyNp(0YDEN!7IT0zB%EWsCF2nlau zLc|!w1+C(O8l!+U5?oM`DDeRjBS{lqC3%-UZgO(J@4uYy|Nq@S zL&@*M(edd44BWuW@0ymVMc3f*`A}*N_^ILc&B~;$@*l+ z)8}5)t1koZQjPBbzkLLZ-wmAj6d1lADE$tYeGpjlBd~+o^fPdfN^#a9)M#o7RYP%) zHoyM-?nA$t?Z8gz!B=>uN?!+Bs0lmxP3?LEI6$4ChQ0~(ev38KNNO&%k=jb_rz+kC zex;66e^c{z0>`NI%=OLee-C(ps@Mf=qXvHfjH0$tuTe*+x(|V))G_K$svmc4qMAQ$ z-+2!Ap85&!2UX7fS5TWj1BQJLjHBMCW`02i)bn2gFH)&J!0NrgOZ&LSYG7ek$G)3mwKplE9rs3 zZt0xd1T^Ku_%CYN#F8E=%e&wcc`M8o48#hD2d3J@YujSi*kpo+`eRwpR>!_^j+tl@ z&qni%&sV0g{vO+&`L#r-|+j?3AIukgr zbHM0*y@UI?4)N|CUKFeKXM{e@%#346=G67W1s03DEVsg5He{av|NltHgme%A61WY$ z6V0K<*mlE=Im_6dz%BM+M(=aXgq^7KU|8;orh$g!3_Cj~5;SmQ&_>t3Gw_&eUdiGk@OX?y9vbQ_{XDrX^;8vJ(UkD4y5w|w zm%5YIJU3|zMYzvN5x(XBsfYZxsKbUpy-mzS=m8U^-O}@F%hu;uZgIPm+75KGZ8WT4 z3XNe|bt9k4U3a~~HJglNRpe_dj{L=-4~_}i=%KF{uJcf3uH;d3)}c7xj5Dz+6em9> zcls%|)Q+;;+%F55u68deg6yOsm@%9YuMEe=hs$_8>7&|9X&+R0DYMj!wA}n%?)O)o Nsh*fQ>5vox{{lzi@f-jE diff --git a/server/pb_data/auxiliary.db-wal b/server/pb_data/auxiliary.db-wal deleted file mode 100644 index fe1b1ff74c7da88625be1979c89e8d8f2327eebd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552112 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

  • wLi2Yn8lhEitX=X7j^ zQ(q!A36$I|nJiBz6cPld!~5h2@QdIsp<~Mwn(>VU!}t^#xBK6^4Mks=j8#}k?U3w6 z-|7sqN3iihuOQB_4f)_!I<{zii$w{m(G>LRz5V(L)l=Asr83k`pd5e3`zQ+ehu+2k zFJnW!m_16@NeBrvl{dJuq*c64+&iYRvaSsvWkIV6Y|dAH9(jSk>Ld8k)@OeFzqi}* z(52;SyLZm}2s%{T&xYpU$+II+dEar~Rj~Bnyc)l7`NsRmW?F4W9R3q9@3)d`nf=z}zII-DUp!>vD;Ia3*WEX+Y`A0j(n$~Cu+`10m(pl`<82%MVIHw> z@Ya8BTg<-kd|HR6G5b97-?;D6T}xZnZeQB6bkWk;8`Y&~>Ew;pw$6sx76Lv2jnbF- z4JR_ItJlt>_ti7V&CChQ=fc?#I*IFc+IYqC`gz>HvbyfzbzfWesl^X&ynfTx<;|P6 zEI&5)7g*kXwOV|1!PpdSI(hl#jRSNP;etTB1QyQQaMgzQEih0(lBbudbV4_7#0wW$Q z&G(J@%L;*ADDwA2|6>E!$u(rXx`fwj4=c0u!%nVqJ4)(1Y)7!mYTdUX8%AfsbDm>i%d z38sV{>Pi=XaYP~MEyk5PK>d_;l-ZLXnNUs?Q4rKP+X__j?h7c2Bxjt!WtD?FV?-|b z1w|q0?cltP(Wr})H_&$~M=fKJiZI2Zj~!8a2OSHJ5qefi1=;UHCI33+f~!JvVXKZ5 z#NZ~4N}l;{Iu_ed7~}M5>jnA_j~mY+RRJM{qODA{vO;8#{M~QIu{qaxf!565R}&ro zi{tuL6-JME8diefGbqyR5r5k?n7Jx}{HC?&rakRiIs

    Ot$m79Cj@IrY~QY7JKD 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�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%0D@{r>(yC=zn&EV%(}H5oonJaVfBv!P$;HQN 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

    kAG4QdN7;>3C+*KD<=y9QHX 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�^;kCTc)Lkz*rJ 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 z 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%0D!#W>u>h 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

    r22xrY22H4@mD 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

    pN6<=xfpwMuRoU$-h>=)Jh{Nv@p<%MP4$` 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 Y{|+xYWAt^o*H8v{d1GWYvp@Ae09|V*>;M1& diff --git a/server/pb_data/data.db-shm b/server/pb_data/data.db-shm deleted file mode 100644 index 4f477cfa3137b4539bc861d9f406c6c4332172b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*JxT*X6bJC}`zyw%O)9Y#tOQFfEWCssz%!(_7d(M_2-`G*V5A&r#Tyv3`lzQ8-KF+4}es^>D(Rn$$e;5vi-LKutz0arb z!OnC4pTEz&bLGB2V>SA6>?8J0vF+#_OR+9TRw4(HlgMf0JaQ4ajl4##;-%}zQ9K_< z{?>R@1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pkQz4LVolpeYDUk15Q3T2eYZzfih7N(+Ve-Ptr!q>&ubVCd+l zPcxc1bLXDrE_3GIbEOYd?{~HSVv5T()7_4xhn zTVCC?`H@d=+ORsFRRTS!^gt{d2;*wE+jUAH0NTwim-|Uvb`7>?W9!4QF(eKBqo!y4 zDY4z`YWwhnDxCDvFA$PA{W|?B{U`bl^b7Qh^e<|ES~JD_4R5OI58h=}XL&wT)#QHB zeWL3I>bIcXf5s%Qzqy&ZcxyJ+nNXs!p={r}bi6m7%vkrQEZw+#$>!yO%}Y*Qy*$ui zJ=GDI+tHOuB$TdfJeAz2^mGI^FF$K@VA=B1mTXzQIWT8VVC}lifwfy!uWku+bfuM8 zR_V5->4_(MmGodbp3K_P#f@avZ(O-%$;Pt-tCpW_-gfSs^qf6=5~*EEdTyVxdu}?G z>`o1ICQ_Yqr4T;WOr@2sRJyxd)`teW?Xw<|CRh7cHB+v5vRm1mIX?lV6G^4i|52;Z zqOA4b)O|}Qdi`5N)cy%7X}o)PRN0+X(#cq22^5lv<^&uaOs96nyOnf4gYqb{_seS+7&4qVih z;6jsg2@WP#$U#9OBg=hG(|OrP=J#jEdHtafbzqiO5c0&4FPw=5g&~jh*cXRmX6B~q z>(=;lR8N|y=q4#bYO_`H6B!za^Q-wj{gplZg!sCX~>s1~u*Ng=w>v6xha6X|rb9BtM~j z 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 diff --git a/server/pb_data/types.d.ts b/server/pb_data/types.d.ts deleted file mode 100644 index 5e2e23a..0000000 --- a/server/pb_data/types.d.ts +++ /dev/null @@ -1,23076 +0,0 @@ -// 1754113151 -// GENERATED CODE - DO NOT MODIFY BY HAND - -// ------------------------------------------------------------------- -// cronBinds -// ------------------------------------------------------------------- - -/** - * CronAdd registers a new cron job. - * - * If a cron job with the specified name already exist, it will be - * replaced with the new one. - * - * Example: - * - * ```js - * // prints "Hello world!" on every 30 minutes - * cronAdd("hello", "*\/30 * * * *", () => { - * console.log("Hello world!") - * }) - * ``` - * - * _Note that this method is available only in pb_hooks context._ - * - * @group PocketBase - */ -declare function cronAdd( - jobId: string, - cronExpr: string, - handler: () => void, -): void; - -/** - * CronRemove removes a single registered cron job by its name. - * - * Example: - * - * ```js - * cronRemove("hello") - * ``` - * - * _Note that this method is available only in pb_hooks context._ - * - * @group PocketBase - */ -declare function cronRemove(jobId: string): void; - -// ------------------------------------------------------------------- -// routerBinds -// ------------------------------------------------------------------- - -/** - * RouterAdd registers a new route definition. - * - * Example: - * - * ```js - * routerAdd("GET", "/hello", (e) => { - * return e.json(200, {"message": "Hello!"}) - * }, $apis.requireAuth()) - * ``` - * - * _Note that this method is available only in pb_hooks context._ - * - * @group PocketBase - */ -declare function routerAdd( - method: string, - path: string, - handler: (e: core.RequestEvent) => void, - ...middlewares: Array void)|Middleware>, -): void; - -/** - * RouterUse registers one or more global middlewares that are executed - * along the handler middlewares after a matching route is found. - * - * Example: - * - * ```js - * routerUse((e) => { - * console.log(e.request.url.path) - * return e.next() - * }) - * ``` - * - * _Note that this method is available only in pb_hooks context._ - * - * @group PocketBase - */ -declare function routerUse(...middlewares: Array void)|Middleware>): void; - -// ------------------------------------------------------------------- -// baseBinds -// ------------------------------------------------------------------- - -/** - * Global helper variable that contains the absolute path to the app pb_hooks directory. - * - * @group PocketBase - */ -declare var __hooks: string - -// Utility type to exclude the on* hook methods from a type -// (hooks are separately generated as global methods). -// -// See https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#key-remapping-via-as -type excludeHooks = { - [Property in keyof Type as Exclude]: Type[Property] -}; - -// CoreApp without the on* hook methods -type CoreApp = excludeHooks - -// PocketBase without the on* hook methods -type PocketBase = excludeHooks - -/** - * `$app` is the current running PocketBase instance that is globally - * available in each .pb.js file. - * - * _Note that this variable is available only in pb_hooks context._ - * - * @namespace - * @group PocketBase - */ -declare var $app: PocketBase - -/** - * `$template` is a global helper to load and cache HTML templates on the fly. - * - * The templates uses the standard Go [html/template](https://pkg.go.dev/html/template) - * and [text/template](https://pkg.go.dev/text/template) package syntax. - * - * Example: - * - * ```js - * const html = $template.loadFiles( - * "views/layout.html", - * "views/content.html", - * ).render({"name": "John"}) - * ``` - * - * _Note that this method is available only in pb_hooks context._ - * - * @namespace - * @group PocketBase - */ -declare var $template: template.Registry - -/** - * This method is superseded by toString. - * - * @deprecated - * @group PocketBase - */ -declare function readerToString(reader: any, maxBytes?: number): string; - -/** - * toString stringifies the specified value. - * - * Support optional second maxBytes argument to limit the max read bytes - * when the value is a io.Reader (default to 32MB). - * - * Types that don't have explicit string representation are json serialized. - * - * Example: - * - * ```js - * // io.Reader - * const ex1 = toString(e.request.body) - * - * // slice of bytes - * const ex2 = toString([104 101 108 108 111]) // "hello" - * - * // null - * const ex3 = toString(null) // "" - * ``` - * - * @group PocketBase - */ -declare function toString(val: any, maxBytes?: number): string; - -/** - * toBytes converts the specified value into a bytes slice. - * - * Support optional second maxBytes argument to limit the max read bytes - * when the value is a io.Reader (default to 32MB). - * - * Types that don't have Go slice representation (bool, objects, etc.) - * are serialized to UTF8 string and its bytes slice is returned. - * - * Example: - * - * ```js - * // io.Reader - * const ex1 = toBytes(e.request.body) - * - * // string - * const ex2 = toBytes("hello") // [104 101 108 108 111] - * - * // object (the same as the string '{"test":1}') - * const ex3 = toBytes({"test":1}) // [123 34 116 101 115 116 34 58 49 125] - * - * // null - * const ex4 = toBytes(null) // [] - * ``` - * - * @group PocketBase - */ -declare function toBytes(val: any, maxBytes?: number): Array; - -/** - * sleep pauses the current goroutine for at least the specified user duration (in ms). - * A zero or negative duration returns immediately. - * - * Example: - * - * ```js - * sleep(250) // sleeps for 250ms - * ``` - * - * @group PocketBase - */ -declare function sleep(milliseconds: number): void; - -/** - * arrayOf creates a placeholder array of the specified models. - * Usually used to populate DB result into an array of models. - * - * Example: - * - * ```js - * const records = arrayOf(new Record) - * - * $app.recordQuery("articles").limit(10).all(records) - * ``` - * - * @group PocketBase - */ -declare function arrayOf(model: T): Array; - -/** - * DynamicModel creates a new dynamic model with fields from the provided data shape. - * - * Caveats: - * - In order to use 0 as double/float initialization number you have to negate it (`-0`). - * - You need to use lowerCamelCase when accessing the model fields (e.g. `model.roles` and not `model.Roles`). - * - * Example: - * - * ```js - * const model = new DynamicModel({ - * name: "" - * age: 0, // int64 - * totalSpent: -0, // float64 - * active: false, - * Roles: [], // maps to "Roles" in the DB/JSON but the prop would be accessible via "model.roles" - * meta: {} - * }) - * ``` - * - * @group PocketBase - */ -declare class DynamicModel { - constructor(shape?: { [key:string]: any }) -} - -interface Context extends context.Context{} // merge -/** - * Context creates a new empty Go context.Context. - * - * This is usually used as part of some Go transitive bindings. - * - * Example: - * - * ```js - * const blank = new Context() - * - * // with single key-value pair - * const base = new Context(null, "a", 123) - * console.log(base.value("a")) // 123 - * - * // extend with additional key-value pair - * const sub = new Context(base, "b", 456) - * console.log(sub.value("a")) // 123 - * console.log(sub.value("b")) // 456 - * ``` - * - * @group PocketBase - */ -declare class Context implements context.Context { - constructor(parentCtx?: Context, key?: any, value?: any) -} - -/** - * Record model class. - * - * ```js - * const collection = $app.findCollectionByNameOrId("article") - * - * const record = new Record(collection, { - * title: "Lorem ipsum" - * }) - * - * // or set field values after the initialization - * record.set("description", "...") - * ``` - * - * @group PocketBase - */ -declare const Record: { - new(collection?: core.Collection, data?: { [key:string]: any }): core.Record - - // note: declare as "newable" const due to conflict with the Record TS utility type -} - -interface Collection extends core.Collection{ - type: "base" | "view" | "auth" -} // merge -/** - * Collection model class. - * - * ```js - * const collection = new Collection({ - * type: "base", - * name: "article", - * listRule: "@request.auth.id != '' || status = 'public'", - * viewRule: "@request.auth.id != '' || status = 'public'", - * deleteRule: "@request.auth.id != ''", - * fields: [ - * { - * name: "title", - * type: "text", - * required: true, - * min: 6, - * max: 100, - * }, - * { - * name: "description", - * type: "text", - * }, - * ] - * }) - * ``` - * - * @group PocketBase - */ -declare class Collection implements core.Collection { - constructor(data?: Partial) -} - -interface FieldsList extends core.FieldsList{} // merge -/** - * FieldsList model class, usually used to define the Collection.fields. - * - * @group PocketBase - */ -declare class FieldsList implements core.FieldsList { - constructor(data?: Partial) -} - -interface Field extends core.Field{} // merge -/** - * Field model class, usually used as part of the FieldsList model. - * - * @group PocketBase - */ -declare class Field implements core.Field { - constructor(data?: Partial) -} - -interface NumberField extends core.NumberField{} // merge -/** - * {@inheritDoc core.NumberField} - * - * @group PocketBase - */ -declare class NumberField implements core.NumberField { - constructor(data?: Partial) -} - -interface BoolField extends core.BoolField{} // merge -/** - * {@inheritDoc core.BoolField} - * - * @group PocketBase - */ -declare class BoolField implements core.BoolField { - constructor(data?: Partial) -} - -interface TextField extends core.TextField{} // merge -/** - * {@inheritDoc core.TextField} - * - * @group PocketBase - */ -declare class TextField implements core.TextField { - constructor(data?: Partial) -} - -interface URLField extends core.URLField{} // merge -/** - * {@inheritDoc core.URLField} - * - * @group PocketBase - */ -declare class URLField implements core.URLField { - constructor(data?: Partial) -} - -interface EmailField extends core.EmailField{} // merge -/** - * {@inheritDoc core.EmailField} - * - * @group PocketBase - */ -declare class EmailField implements core.EmailField { - constructor(data?: Partial) -} - -interface EditorField extends core.EditorField{} // merge -/** - * {@inheritDoc core.EditorField} - * - * @group PocketBase - */ -declare class EditorField implements core.EditorField { - constructor(data?: Partial) -} - -interface PasswordField extends core.PasswordField{} // merge -/** - * {@inheritDoc core.PasswordField} - * - * @group PocketBase - */ -declare class PasswordField implements core.PasswordField { - constructor(data?: Partial) -} - -interface DateField extends core.DateField{} // merge -/** - * {@inheritDoc core.DateField} - * - * @group PocketBase - */ -declare class DateField implements core.DateField { - constructor(data?: Partial) -} - -interface AutodateField extends core.AutodateField{} // merge -/** - * {@inheritDoc core.AutodateField} - * - * @group PocketBase - */ -declare class AutodateField implements core.AutodateField { - constructor(data?: Partial) -} - -interface JSONField extends core.JSONField{} // merge -/** - * {@inheritDoc core.JSONField} - * - * @group PocketBase - */ -declare class JSONField implements core.JSONField { - constructor(data?: Partial) -} - -interface RelationField extends core.RelationField{} // merge -/** - * {@inheritDoc core.RelationField} - * - * @group PocketBase - */ -declare class RelationField implements core.RelationField { - constructor(data?: Partial) -} - -interface SelectField extends core.SelectField{} // merge -/** - * {@inheritDoc core.SelectField} - * - * @group PocketBase - */ -declare class SelectField implements core.SelectField { - constructor(data?: Partial) -} - -interface FileField extends core.FileField{} // merge -/** - * {@inheritDoc core.FileField} - * - * @group PocketBase - */ -declare class FileField implements core.FileField { - constructor(data?: Partial) -} - -interface GeoPointField extends core.GeoPointField{} // merge -/** - * {@inheritDoc core.GeoPointField} - * - * @group PocketBase - */ -declare class GeoPointField implements core.GeoPointField { - constructor(data?: Partial) -} - -interface MailerMessage extends mailer.Message{} // merge -/** - * MailerMessage defines a single email message. - * - * ```js - * const message = new MailerMessage({ - * from: { - * address: $app.settings().meta.senderAddress, - * name: $app.settings().meta.senderName, - * }, - * to: [{address: "test@example.com"}], - * subject: "YOUR_SUBJECT...", - * html: "YOUR_HTML_BODY...", - * }) - * - * $app.newMailClient().send(message) - * ``` - * - * @group PocketBase - */ -declare class MailerMessage implements mailer.Message { - constructor(message?: Partial) -} - -interface Command extends cobra.Command{} // merge -/** - * Command defines a single console command. - * - * Example: - * - * ```js - * const command = new Command({ - * use: "hello", - * run: (cmd, args) => { console.log("Hello world!") }, - * }) - * - * $app.rootCmd.addCommand(command); - * ``` - * - * @group PocketBase - */ -declare class Command implements cobra.Command { - constructor(cmd?: Partial) -} - -/** - * RequestInfo defines a single core.RequestInfo instance, usually used - * as part of various filter checks. - * - * Example: - * - * ```js - * const authRecord = $app.findAuthRecordByEmail("users", "test@example.com") - * - * const info = new RequestInfo({ - * auth: authRecord, - * body: {"name": 123}, - * headers: {"x-token": "..."}, - * }) - * - * const record = $app.findFirstRecordByData("articles", "slug", "hello") - * - * const canAccess = $app.canAccessRecord(record, info, "@request.auth.id != '' && @request.body.name = 123") - * ``` - * - * @group PocketBase - */ -declare const RequestInfo: { - new(info?: Partial): core.RequestInfo - - // note: declare as "newable" const due to conflict with the RequestInfo TS node type -} - -/** - * Middleware defines a single request middleware handler. - * - * This class is usually used when you want to explicitly specify a priority to your custom route middleware. - * - * Example: - * - * ```js - * routerUse(new Middleware((e) => { - * console.log(e.request.url.path) - * return e.next() - * }, -10)) - * ``` - * - * @group PocketBase - */ -declare class Middleware { - constructor( - func: string|((e: core.RequestEvent) => void), - priority?: number, - id?: string, - ) -} - -interface Timezone extends time.Location{} // merge -/** - * Timezone returns the timezone location with the given name. - * - * The name is expected to be a location name corresponding to a file - * in the IANA Time Zone database, such as "America/New_York". - * - * If the name is "Local", LoadLocation returns Local. - * - * If the name is "", invalid or "UTC", returns UTC. - * - * The constructor is equivalent to calling the Go `time.LoadLocation(name)` method. - * - * Example: - * - * ```js - * const zone = new Timezone("America/New_York") - * $app.cron().setTimezone(zone) - * ``` - * - * @group PocketBase - */ -declare class Timezone implements time.Location { - constructor(name?: string) -} - -interface DateTime extends types.DateTime{} // merge -/** - * DateTime defines a single DateTime type instance. - * The returned date is always represented in UTC. - * - * Example: - * - * ```js - * const dt0 = new DateTime() // now - * - * // full datetime string - * const dt1 = new DateTime('2023-07-01 00:00:00.000Z') - * - * // datetime string with default "parse in" timezone location - * // - * // similar to new DateTime('2023-07-01 00:00:00 +01:00') or new DateTime('2023-07-01 00:00:00 +02:00') - * // but accounts for the daylight saving time (DST) - * const dt2 = new DateTime('2023-07-01 00:00:00', 'Europe/Amsterdam') - * ``` - * - * @group PocketBase - */ -declare class DateTime implements types.DateTime { - constructor(date?: string, defaultParseInLocation?: string) -} - -interface ValidationError extends ozzo_validation.Error{} // merge -/** - * ValidationError defines a single formatted data validation error, - * usually used as part of an error response. - * - * ```js - * new ValidationError("invalid_title", "Title is not valid") - * ``` - * - * @group PocketBase - */ -declare class ValidationError implements ozzo_validation.Error { - constructor(code?: string, message?: string) -} - -interface Cookie extends http.Cookie{} // merge -/** - * A Cookie represents an HTTP cookie as sent in the Set-Cookie header of an - * HTTP response. - * - * Example: - * - * ```js - * routerAdd("POST", "/example", (c) => { - * c.setCookie(new Cookie({ - * name: "example_name", - * value: "example_value", - * path: "/", - * domain: "example.com", - * maxAge: 10, - * secure: true, - * httpOnly: true, - * sameSite: 3, - * })) - * - * return c.redirect(200, "/"); - * }) - * ``` - * - * @group PocketBase - */ -declare class Cookie implements http.Cookie { - constructor(options?: Partial) -} - -interface SubscriptionMessage extends subscriptions.Message{} // merge -/** - * SubscriptionMessage defines a realtime subscription payload. - * - * Example: - * - * ```js - * onRealtimeConnectRequest((e) => { - * e.client.send(new SubscriptionMessage({ - * name: "example", - * data: '{"greeting": "Hello world"}' - * })) - * }) - * ``` - * - * @group PocketBase - */ -declare class SubscriptionMessage implements subscriptions.Message { - constructor(options?: Partial) -} - -// ------------------------------------------------------------------- -// dbxBinds -// ------------------------------------------------------------------- - -/** - * `$dbx` defines common utility for working with the DB abstraction. - * For examples and guides please check the [Database guide](https://pocketbase.io/docs/js-database). - * - * @group PocketBase - */ -declare namespace $dbx { - /** - * {@inheritDoc dbx.HashExp} - */ - export function hashExp(pairs: { [key:string]: any }): dbx.Expression - - let _in: dbx._in - export { _in as in } - - export let exp: dbx.newExp - export let not: dbx.not - export let and: dbx.and - export let or: dbx.or - export let notIn: dbx.notIn - export let like: dbx.like - export let orLike: dbx.orLike - export let notLike: dbx.notLike - export let orNotLike: dbx.orNotLike - export let exists: dbx.exists - export let notExists: dbx.notExists - export let between: dbx.between - export let notBetween: dbx.notBetween -} - -// ------------------------------------------------------------------- -// mailsBinds -// ------------------------------------------------------------------- - -/** - * `$mails` defines helpers to send common - * auth records emails like verification, password reset, etc. - * - * @group PocketBase - */ -declare namespace $mails { - let sendRecordPasswordReset: mails.sendRecordPasswordReset - let sendRecordVerification: mails.sendRecordVerification - let sendRecordChangeEmail: mails.sendRecordChangeEmail - let sendRecordOTP: mails.sendRecordOTP -} - -// ------------------------------------------------------------------- -// securityBinds -// ------------------------------------------------------------------- - -/** - * `$security` defines low level helpers for creating - * and parsing JWTs, random string generation, AES encryption, etc. - * - * @group PocketBase - */ -declare namespace $security { - let randomString: security.randomString - let randomStringWithAlphabet: security.randomStringWithAlphabet - let randomStringByRegex: security.randomStringByRegex - let pseudorandomString: security.pseudorandomString - let pseudorandomStringWithAlphabet: security.pseudorandomStringWithAlphabet - let encrypt: security.encrypt - let decrypt: security.decrypt - let hs256: security.hs256 - let hs512: security.hs512 - let equal: security.equal - let md5: security.md5 - let sha256: security.sha256 - let sha512: security.sha512 - - /** - * {@inheritDoc security.newJWT} - */ - export function createJWT(payload: { [key:string]: any }, signingKey: string, secDuration: number): string - - /** - * {@inheritDoc security.parseUnverifiedJWT} - */ - export function parseUnverifiedJWT(token: string): _TygojaDict - - /** - * {@inheritDoc security.parseJWT} - */ - export function parseJWT(token: string, verificationKey: string): _TygojaDict -} - -// ------------------------------------------------------------------- -// filesystemBinds -// ------------------------------------------------------------------- - -/** - * `$filesystem` defines common helpers for working - * with the PocketBase filesystem abstraction. - * - * @group PocketBase - */ -declare namespace $filesystem { - let fileFromPath: filesystem.newFileFromPath - let fileFromBytes: filesystem.newFileFromBytes - let fileFromMultipart: filesystem.newFileFromMultipart - - /** - * fileFromURL creates a new File from the provided url by - * downloading the resource and creating a BytesReader. - * - * Example: - * - * ```js - * // with default max timeout of 120sec - * const file1 = $filesystem.fileFromURL("https://...") - * - * // with custom timeout of 15sec - * const file2 = $filesystem.fileFromURL("https://...", 15) - * ``` - */ - export function fileFromURL(url: string, secTimeout?: number): filesystem.File -} - -// ------------------------------------------------------------------- -// filepathBinds -// ------------------------------------------------------------------- - -/** - * `$filepath` defines common helpers for manipulating filename - * paths in a way compatible with the target operating system-defined file paths. - * - * @group PocketBase - */ -declare namespace $filepath { - export let base: filepath.base - export let clean: filepath.clean - export let dir: filepath.dir - export let ext: filepath.ext - export let fromSlash: filepath.fromSlash - export let glob: filepath.glob - export let isAbs: filepath.isAbs - export let join: filepath.join - export let match: filepath.match - export let rel: filepath.rel - export let split: filepath.split - export let splitList: filepath.splitList - export let toSlash: filepath.toSlash - export let walk: filepath.walk - export let walkDir: filepath.walkDir -} - -// ------------------------------------------------------------------- -// osBinds -// ------------------------------------------------------------------- - -/** - * `$os` defines common helpers for working with the OS level primitives - * (eg. deleting directories, executing shell commands, etc.). - * - * @group PocketBase - */ -declare namespace $os { - /** - * Legacy alias for $os.cmd(). - */ - export let exec: exec.command - - /** - * Prepares an external OS command. - * - * Example: - * - * ```js - * // prepare the command to execute - * const cmd = $os.cmd('ls', '-sl') - * - * // execute the command and return its standard output as string - * const output = toString(cmd.output()); - * ``` - */ - export let cmd: exec.command - - /** - * Args hold the command-line arguments, starting with the program name. - */ - export let args: Array - - export let exit: os.exit - export let getenv: os.getenv - export let dirFS: os.dirFS - export let readFile: os.readFile - export let writeFile: os.writeFile - export let stat: os.stat - export let readDir: os.readDir - export let tempDir: os.tempDir - export let truncate: os.truncate - export let getwd: os.getwd - export let mkdir: os.mkdir - export let mkdirAll: os.mkdirAll - export let rename: os.rename - export let remove: os.remove - export let removeAll: os.removeAll -} - -// ------------------------------------------------------------------- -// formsBinds -// ------------------------------------------------------------------- - -interface AppleClientSecretCreateForm extends forms.AppleClientSecretCreate{} // merge -/** - * @inheritDoc - * @group PocketBase - */ -declare class AppleClientSecretCreateForm implements forms.AppleClientSecretCreate { - constructor(app: CoreApp) -} - -interface RecordUpsertForm extends forms.RecordUpsert{} // merge -/** - * @inheritDoc - * @group PocketBase - */ -declare class RecordUpsertForm implements forms.RecordUpsert { - constructor(app: CoreApp, record: core.Record) -} - -interface TestEmailSendForm extends forms.TestEmailSend{} // merge -/** - * @inheritDoc - * @group PocketBase - */ -declare class TestEmailSendForm implements forms.TestEmailSend { - constructor(app: CoreApp) -} - -interface TestS3FilesystemForm extends forms.TestS3Filesystem{} // merge -/** - * @inheritDoc - * @group PocketBase - */ -declare class TestS3FilesystemForm implements forms.TestS3Filesystem { - constructor(app: CoreApp) -} - -// ------------------------------------------------------------------- -// apisBinds -// ------------------------------------------------------------------- - -interface ApiError extends router.ApiError{} // merge -/** - * @inheritDoc - * - * @group PocketBase - */ -declare class ApiError implements router.ApiError { - constructor(status?: number, message?: string, data?: any) -} - -interface NotFoundError extends router.ApiError{} // merge -/** - * NotFounderor returns 404 ApiError. - * - * @group PocketBase - */ -declare class NotFoundError implements router.ApiError { - constructor(message?: string, data?: any) -} - -interface BadRequestError extends router.ApiError{} // merge -/** - * BadRequestError returns 400 ApiError. - * - * @group PocketBase - */ -declare class BadRequestError implements router.ApiError { - constructor(message?: string, data?: any) -} - -interface ForbiddenError extends router.ApiError{} // merge -/** - * ForbiddenError returns 403 ApiError. - * - * @group PocketBase - */ -declare class ForbiddenError implements router.ApiError { - constructor(message?: string, data?: any) -} - -interface UnauthorizedError extends router.ApiError{} // merge -/** - * UnauthorizedError returns 401 ApiError. - * - * @group PocketBase - */ -declare class UnauthorizedError implements router.ApiError { - constructor(message?: string, data?: any) -} - -interface TooManyRequestsError extends router.ApiError{} // merge -/** - * TooManyRequestsError returns 429 ApiError. - * - * @group PocketBase - */ -declare class TooManyRequestsError implements router.ApiError { - constructor(message?: string, data?: any) -} - -interface InternalServerError extends router.ApiError{} // merge -/** - * InternalServerError returns 429 ApiError. - * - * @group PocketBase - */ -declare class InternalServerError implements router.ApiError { - constructor(message?: string, data?: any) -} - -/** - * `$apis` defines commonly used PocketBase api helpers and middlewares. - * - * @group PocketBase - */ -declare namespace $apis { - /** - * Route handler to serve static directory content (html, js, css, etc.). - * - * If a file resource is missing and indexFallback is set, the request - * will be forwarded to the base index.html (useful for SPA). - */ - export function static(dir: string, indexFallback: boolean): (e: core.RequestEvent) => void - - let requireGuestOnly: apis.requireGuestOnly - let requireAuth: apis.requireAuth - let requireSuperuserAuth: apis.requireSuperuserAuth - let requireSuperuserOrOwnerAuth: apis.requireSuperuserOrOwnerAuth - let skipSuccessActivityLog: apis.skipSuccessActivityLog - let gzip: apis.gzip - let bodyLimit: apis.bodyLimit - let enrichRecord: apis.enrichRecord - let enrichRecords: apis.enrichRecords - - /** - * RecordAuthResponse writes standardized json record auth response - * into the specified request event. - * - * The authMethod argument specify the name of the current authentication method (eg. password, oauth2, etc.) - * that it is used primarily as an auth identifier during MFA and for login alerts. - * - * Set authMethod to empty string if you want to ignore the MFA checks and the login alerts - * (can be also adjusted additionally via the onRecordAuthRequest hook). - */ - export function recordAuthResponse(e: core.RequestEvent, authRecord: core.Record, authMethod: string, meta?: any): void -} - -// ------------------------------------------------------------------- -// httpClientBinds -// ------------------------------------------------------------------- - -// extra FormData overload to prevent TS warnings when used with non File/Blob value. -interface FormData { - append(key:string, value:any): void - set(key:string, value:any): void -} - -/** - * `$http` defines common methods for working with HTTP requests. - * - * @group PocketBase - */ -declare namespace $http { - /** - * Sends a single HTTP request. - * - * Example: - * - * ```js - * const res = $http.send({ - * method: "POST", - * url: "https://example.com", - * body: JSON.stringify({"title": "test"}), - * headers: { 'Content-Type': 'application/json' } - * }) - * - * console.log(res.statusCode) // the response HTTP status code - * console.log(res.headers) // the response headers (eg. res.headers['X-Custom'][0]) - * console.log(res.cookies) // the response cookies (eg. res.cookies.sessionId.value) - * console.log(res.body) // the response body as raw bytes slice - * console.log(res.json) // the response body as parsed json array or map - * ``` - */ - function send(config: { - url: string, - body?: string|FormData, - method?: string, // default to "GET" - headers?: { [key:string]: string }, - timeout?: number, // default to 120 - - // @deprecated please use body instead - data?: { [key:string]: any }, - }): { - statusCode: number, - headers: { [key:string]: Array }, - cookies: { [key:string]: http.Cookie }, - json: any, - body: Array, - - // @deprecated please use toString(result.body) instead - raw: string, - }; -} - -// ------------------------------------------------------------------- -// migrate only -// ------------------------------------------------------------------- - -/** - * Migrate defines a single migration upgrade/downgrade action. - * - * _Note that this method is available only in pb_migrations context._ - * - * @group PocketBase - */ -declare function migrate( - up: (txApp: CoreApp) => void, - down?: (txApp: CoreApp) => void -): void; -/** @group PocketBase */declare function onBackupCreate(handler: (e: core.BackupEvent) => void): void -/** @group PocketBase */declare function onBackupRestore(handler: (e: core.BackupEvent) => void): void -/** @group PocketBase */declare function onBatchRequest(handler: (e: core.BatchRequestEvent) => void): void -/** @group PocketBase */declare function onBootstrap(handler: (e: core.BootstrapEvent) => void): void -/** @group PocketBase */declare function onCollectionAfterCreateError(handler: (e: core.CollectionErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionAfterCreateSuccess(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionAfterDeleteError(handler: (e: core.CollectionErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionAfterDeleteSuccess(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionAfterUpdateError(handler: (e: core.CollectionErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionAfterUpdateSuccess(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionCreate(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionCreateExecute(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionCreateRequest(handler: (e: core.CollectionRequestEvent) => void): void -/** @group PocketBase */declare function onCollectionDelete(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionDeleteExecute(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionDeleteRequest(handler: (e: core.CollectionRequestEvent) => void): void -/** @group PocketBase */declare function onCollectionUpdate(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionUpdateExecute(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionUpdateRequest(handler: (e: core.CollectionRequestEvent) => void): void -/** @group PocketBase */declare function onCollectionValidate(handler: (e: core.CollectionEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onCollectionViewRequest(handler: (e: core.CollectionRequestEvent) => void): void -/** @group PocketBase */declare function onCollectionsImportRequest(handler: (e: core.CollectionsImportRequestEvent) => void): void -/** @group PocketBase */declare function onCollectionsListRequest(handler: (e: core.CollectionsListRequestEvent) => void): void -/** @group PocketBase */declare function onFileDownloadRequest(handler: (e: core.FileDownloadRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onFileTokenRequest(handler: (e: core.FileTokenRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerRecordAuthAlertSend(handler: (e: core.MailerRecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerRecordEmailChangeSend(handler: (e: core.MailerRecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerRecordOTPSend(handler: (e: core.MailerRecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerRecordPasswordResetSend(handler: (e: core.MailerRecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerRecordVerificationSend(handler: (e: core.MailerRecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onMailerSend(handler: (e: core.MailerEvent) => void): void -/** @group PocketBase */declare function onModelAfterCreateError(handler: (e: core.ModelErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelAfterCreateSuccess(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelAfterDeleteError(handler: (e: core.ModelErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelAfterDeleteSuccess(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelAfterUpdateError(handler: (e: core.ModelErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelAfterUpdateSuccess(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelCreate(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelCreateExecute(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelDelete(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelDeleteExecute(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelUpdate(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelUpdateExecute(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onModelValidate(handler: (e: core.ModelEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRealtimeConnectRequest(handler: (e: core.RealtimeConnectRequestEvent) => void): void -/** @group PocketBase */declare function onRealtimeMessageSend(handler: (e: core.RealtimeMessageEvent) => void): void -/** @group PocketBase */declare function onRealtimeSubscribeRequest(handler: (e: core.RealtimeSubscribeRequestEvent) => void): void -/** @group PocketBase */declare function onRecordAfterCreateError(handler: (e: core.RecordErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAfterCreateSuccess(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAfterDeleteError(handler: (e: core.RecordErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAfterDeleteSuccess(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAfterUpdateError(handler: (e: core.RecordErrorEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAfterUpdateSuccess(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAuthRefreshRequest(handler: (e: core.RecordAuthRefreshRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAuthRequest(handler: (e: core.RecordAuthRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAuthWithOAuth2Request(handler: (e: core.RecordAuthWithOAuth2RequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAuthWithOTPRequest(handler: (e: core.RecordAuthWithOTPRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordAuthWithPasswordRequest(handler: (e: core.RecordAuthWithPasswordRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordConfirmEmailChangeRequest(handler: (e: core.RecordConfirmEmailChangeRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordConfirmPasswordResetRequest(handler: (e: core.RecordConfirmPasswordResetRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordConfirmVerificationRequest(handler: (e: core.RecordConfirmVerificationRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordCreate(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordCreateExecute(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordCreateRequest(handler: (e: core.RecordRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordDelete(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordDeleteExecute(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordDeleteRequest(handler: (e: core.RecordRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordEnrich(handler: (e: core.RecordEnrichEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordRequestEmailChangeRequest(handler: (e: core.RecordRequestEmailChangeRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordRequestOTPRequest(handler: (e: core.RecordCreateOTPRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordRequestPasswordResetRequest(handler: (e: core.RecordRequestPasswordResetRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordRequestVerificationRequest(handler: (e: core.RecordRequestVerificationRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordUpdate(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordUpdateExecute(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordUpdateRequest(handler: (e: core.RecordRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordValidate(handler: (e: core.RecordEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordViewRequest(handler: (e: core.RecordRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onRecordsListRequest(handler: (e: core.RecordsListRequestEvent) => void, ...tags: string[]): void -/** @group PocketBase */declare function onSettingsListRequest(handler: (e: core.SettingsListRequestEvent) => void): void -/** @group PocketBase */declare function onSettingsReload(handler: (e: core.SettingsReloadEvent) => void): void -/** @group PocketBase */declare function onSettingsUpdateRequest(handler: (e: core.SettingsUpdateRequestEvent) => void): void -/** @group PocketBase */declare function onTerminate(handler: (e: core.TerminateEvent) => void): void -type _TygojaDict = { [key:string | number | symbol]: any; } -type _TygojaAny = any - -/** - * Package os provides a platform-independent interface to operating system - * functionality. The design is Unix-like, although the error handling is - * Go-like; failing calls return values of type error rather than error numbers. - * Often, more information is available within the error. For example, - * if a call that takes a file name fails, such as [Open] or [Stat], the error - * will include the failing file name when printed and will be of type - * [*PathError], which may be unpacked for more information. - * - * The os interface is intended to be uniform across all operating systems. - * Features not generally available appear in the system-specific package syscall. - * - * Here is a simple example, opening a file and reading some of it. - * - * ``` - * file, err := os.Open("file.go") // For read access. - * if err != nil { - * log.Fatal(err) - * } - * ``` - * - * If the open fails, the error string will be self-explanatory, like - * - * ``` - * open file.go: no such file or directory - * ``` - * - * The file's data can then be read into a slice of bytes. Read and - * Write take their byte counts from the length of the argument slice. - * - * ``` - * data := make([]byte, 100) - * count, err := file.Read(data) - * if err != nil { - * log.Fatal(err) - * } - * fmt.Printf("read %d bytes: %q\n", count, data[:count]) - * ``` - * - * # Concurrency - * - * The methods of [File] correspond to file system operations. All are - * safe for concurrent use. The maximum number of concurrent - * operations on a File may be limited by the OS or the system. The - * number should be high, but exceeding it may degrade performance or - * cause other issues. - */ -namespace os { - interface readdirMode extends Number{} - interface File { - /** - * Readdir reads the contents of the directory associated with file and - * returns a slice of up to n [FileInfo] values, as would be returned - * by [Lstat], in directory order. Subsequent calls on the same file will yield - * further FileInfos. - * - * If n > 0, Readdir returns at most n FileInfo structures. In this case, if - * Readdir returns an empty slice, it will return a non-nil error - * explaining why. At the end of a directory, the error is [io.EOF]. - * - * If n <= 0, Readdir returns all the FileInfo from the directory in - * a single slice. In this case, if Readdir succeeds (reads all - * the way to the end of the directory), it returns the slice and a - * nil error. If it encounters an error before the end of the - * directory, Readdir returns the FileInfo read until that point - * and a non-nil error. - * - * Most clients are better served by the more efficient ReadDir method. - */ - readdir(n: number): Array - } - interface File { - /** - * Readdirnames reads the contents of the directory associated with file - * and returns a slice of up to n names of files in the directory, - * in directory order. Subsequent calls on the same file will yield - * further names. - * - * If n > 0, Readdirnames returns at most n names. In this case, if - * Readdirnames returns an empty slice, it will return a non-nil error - * explaining why. At the end of a directory, the error is [io.EOF]. - * - * If n <= 0, Readdirnames returns all the names from the directory in - * a single slice. In this case, if Readdirnames succeeds (reads all - * the way to the end of the directory), it returns the slice and a - * nil error. If it encounters an error before the end of the - * directory, Readdirnames returns the names read until that point and - * a non-nil error. - */ - readdirnames(n: number): Array - } - /** - * A DirEntry is an entry read from a directory - * (using the [ReadDir] function or a [File.ReadDir] method). - */ - interface DirEntry extends fs.DirEntry{} - interface File { - /** - * ReadDir reads the contents of the directory associated with the file f - * and returns a slice of [DirEntry] values in directory order. - * Subsequent calls on the same file will yield later DirEntry records in the directory. - * - * If n > 0, ReadDir returns at most n DirEntry records. - * In this case, if ReadDir returns an empty slice, it will return an error explaining why. - * At the end of a directory, the error is [io.EOF]. - * - * If n <= 0, ReadDir returns all the DirEntry records remaining in the directory. - * When it succeeds, it returns a nil error (not io.EOF). - */ - readDir(n: number): Array - } - interface readDir { - /** - * ReadDir reads the named directory, - * returning all its directory entries sorted by filename. - * If an error occurs reading the directory, - * ReadDir returns the entries it was able to read before the error, - * along with the error. - */ - (name: string): Array - } - interface copyFS { - /** - * CopyFS copies the file system fsys into the directory dir, - * creating dir if necessary. - * - * Files are created with mode 0o666 plus any execute permissions - * from the source, and directories are created with mode 0o777 - * (before umask). - * - * CopyFS will not overwrite existing files. If a file name in fsys - * already exists in the destination, CopyFS will return an error - * such that errors.Is(err, fs.ErrExist) will be true. - * - * Symbolic links in fsys are not supported. A *PathError with Err set - * to ErrInvalid is returned when copying from a symbolic link. - * - * Symbolic links in dir are followed. - * - * Copying stops at and returns the first error encountered. - */ - (dir: string, fsys: fs.FS): void - } - /** - * Auxiliary information if the File describes a directory - */ - interface dirInfo { - } - interface expand { - /** - * Expand replaces ${var} or $var in the string based on the mapping function. - * For example, [os.ExpandEnv](s) is equivalent to [os.Expand](s, [os.Getenv]). - */ - (s: string, mapping: (_arg0: string) => string): string - } - interface expandEnv { - /** - * ExpandEnv replaces ${var} or $var in the string according to the values - * of the current environment variables. References to undefined - * variables are replaced by the empty string. - */ - (s: string): string - } - interface getenv { - /** - * Getenv retrieves the value of the environment variable named by the key. - * It returns the value, which will be empty if the variable is not present. - * To distinguish between an empty value and an unset value, use [LookupEnv]. - */ - (key: string): string - } - interface lookupEnv { - /** - * LookupEnv retrieves the value of the environment variable named - * by the key. If the variable is present in the environment the - * value (which may be empty) is returned and the boolean is true. - * Otherwise the returned value will be empty and the boolean will - * be false. - */ - (key: string): [string, boolean] - } - interface setenv { - /** - * Setenv sets the value of the environment variable named by the key. - * It returns an error, if any. - */ - (key: string, value: string): void - } - interface unsetenv { - /** - * Unsetenv unsets a single environment variable. - */ - (key: string): void - } - interface clearenv { - /** - * Clearenv deletes all environment variables. - */ - (): void - } - interface environ { - /** - * Environ returns a copy of strings representing the environment, - * in the form "key=value". - */ - (): Array - } - interface timeout { - [key:string]: any; - timeout(): boolean - } - /** - * PathError records an error and the operation and file path that caused it. - */ - interface PathError extends fs.PathError{} - /** - * SyscallError records an error from a specific system call. - */ - interface SyscallError { - syscall: string - err: Error - } - interface SyscallError { - error(): string - } - interface SyscallError { - unwrap(): void - } - interface SyscallError { - /** - * Timeout reports whether this error represents a timeout. - */ - timeout(): boolean - } - interface newSyscallError { - /** - * NewSyscallError returns, as an error, a new [SyscallError] - * with the given system call name and error details. - * As a convenience, if err is nil, NewSyscallError returns nil. - */ - (syscall: string, err: Error): void - } - interface isExist { - /** - * IsExist returns a boolean indicating whether its argument is known to report - * that a file or directory already exists. It is satisfied by [ErrExist] as - * well as some syscall errors. - * - * This function predates [errors.Is]. It only supports errors returned by - * the os package. New code should use errors.Is(err, fs.ErrExist). - */ - (err: Error): boolean - } - interface isNotExist { - /** - * IsNotExist returns a boolean indicating whether its argument is known to - * report that a file or directory does not exist. It is satisfied by - * [ErrNotExist] as well as some syscall errors. - * - * This function predates [errors.Is]. It only supports errors returned by - * the os package. New code should use errors.Is(err, fs.ErrNotExist). - */ - (err: Error): boolean - } - interface isPermission { - /** - * IsPermission returns a boolean indicating whether its argument is known to - * report that permission is denied. It is satisfied by [ErrPermission] as well - * as some syscall errors. - * - * This function predates [errors.Is]. It only supports errors returned by - * the os package. New code should use errors.Is(err, fs.ErrPermission). - */ - (err: Error): boolean - } - interface isTimeout { - /** - * IsTimeout returns a boolean indicating whether its argument is known - * to report that a timeout occurred. - * - * This function predates [errors.Is], and the notion of whether an - * error indicates a timeout can be ambiguous. For example, the Unix - * error EWOULDBLOCK sometimes indicates a timeout and sometimes does not. - * New code should use errors.Is with a value appropriate to the call - * returning the error, such as [os.ErrDeadlineExceeded]. - */ - (err: Error): boolean - } - interface syscallErrorType extends syscall.Errno{} - interface processMode extends Number{} - interface processStatus extends Number{} - /** - * Process stores the information about a process created by [StartProcess]. - */ - interface Process { - pid: number - } - /** - * ProcAttr holds the attributes that will be applied to a new process - * started by StartProcess. - */ - interface ProcAttr { - /** - * If Dir is non-empty, the child changes into the directory before - * creating the process. - */ - dir: string - /** - * If Env is non-nil, it gives the environment variables for the - * new process in the form returned by Environ. - * If it is nil, the result of Environ will be used. - */ - env: Array - /** - * Files specifies the open files inherited by the new process. The - * first three entries correspond to standard input, standard output, and - * standard error. An implementation may support additional entries, - * depending on the underlying operating system. A nil entry corresponds - * to that file being closed when the process starts. - * On Unix systems, StartProcess will change these File values - * to blocking mode, which means that SetDeadline will stop working - * and calling Close will not interrupt a Read or Write. - */ - files: Array<(File | undefined)> - /** - * Operating system-specific process creation attributes. - * Note that setting this field means that your program - * may not execute properly or even compile on some - * operating systems. - */ - sys?: syscall.SysProcAttr - } - /** - * A Signal represents an operating system signal. - * The usual underlying implementation is operating system-dependent: - * on Unix it is syscall.Signal. - */ - interface Signal { - [key:string]: any; - string(): string - signal(): void // to distinguish from other Stringers - } - interface getpid { - /** - * Getpid returns the process id of the caller. - */ - (): number - } - interface getppid { - /** - * Getppid returns the process id of the caller's parent. - */ - (): number - } - interface findProcess { - /** - * FindProcess looks for a running process by its pid. - * - * The [Process] it returns can be used to obtain information - * about the underlying operating system process. - * - * On Unix systems, FindProcess always succeeds and returns a Process - * for the given pid, regardless of whether the process exists. To test whether - * the process actually exists, see whether p.Signal(syscall.Signal(0)) reports - * an error. - */ - (pid: number): (Process) - } - interface startProcess { - /** - * StartProcess starts a new process with the program, arguments and attributes - * specified by name, argv and attr. The argv slice will become [os.Args] in the - * new process, so it normally starts with the program name. - * - * If the calling goroutine has locked the operating system thread - * with [runtime.LockOSThread] and modified any inheritable OS-level - * thread state (for example, Linux or Plan 9 name spaces), the new - * process will inherit the caller's thread state. - * - * StartProcess is a low-level interface. The [os/exec] package provides - * higher-level interfaces. - * - * If there is an error, it will be of type [*PathError]. - */ - (name: string, argv: Array, attr: ProcAttr): (Process) - } - interface Process { - /** - * Release releases any resources associated with the [Process] p, - * rendering it unusable in the future. - * Release only needs to be called if [Process.Wait] is not. - */ - release(): void - } - interface Process { - /** - * Kill causes the [Process] to exit immediately. Kill does not wait until - * the Process has actually exited. This only kills the Process itself, - * not any other processes it may have started. - */ - kill(): void - } - interface Process { - /** - * Wait waits for the [Process] to exit, and then returns a - * ProcessState describing its status and an error, if any. - * Wait releases any resources associated with the Process. - * On most operating systems, the Process must be a child - * of the current process or an error will be returned. - */ - wait(): (ProcessState) - } - interface Process { - /** - * Signal sends a signal to the [Process]. - * Sending [Interrupt] on Windows is not implemented. - */ - signal(sig: Signal): void - } - interface ProcessState { - /** - * UserTime returns the user CPU time of the exited process and its children. - */ - userTime(): time.Duration - } - interface ProcessState { - /** - * SystemTime returns the system CPU time of the exited process and its children. - */ - systemTime(): time.Duration - } - interface ProcessState { - /** - * Exited reports whether the program has exited. - * On Unix systems this reports true if the program exited due to calling exit, - * but false if the program terminated due to a signal. - */ - exited(): boolean - } - interface ProcessState { - /** - * Success reports whether the program exited successfully, - * such as with exit status 0 on Unix. - */ - success(): boolean - } - interface ProcessState { - /** - * Sys returns system-dependent exit information about - * the process. Convert it to the appropriate underlying - * type, such as [syscall.WaitStatus] on Unix, to access its contents. - */ - sys(): any - } - interface ProcessState { - /** - * SysUsage returns system-dependent resource usage information about - * the exited process. Convert it to the appropriate underlying - * type, such as [*syscall.Rusage] on Unix, to access its contents. - * (On Unix, *syscall.Rusage matches struct rusage as defined in the - * getrusage(2) manual page.) - */ - sysUsage(): any - } - /** - * ProcessState stores information about a process, as reported by Wait. - */ - interface ProcessState { - } - interface ProcessState { - /** - * Pid returns the process id of the exited process. - */ - pid(): number - } - interface ProcessState { - string(): string - } - interface ProcessState { - /** - * ExitCode returns the exit code of the exited process, or -1 - * if the process hasn't exited or was terminated by a signal. - */ - exitCode(): number - } - interface executable { - /** - * Executable returns the path name for the executable that started - * the current process. There is no guarantee that the path is still - * pointing to the correct executable. If a symlink was used to start - * the process, depending on the operating system, the result might - * be the symlink or the path it pointed to. If a stable result is - * needed, [path/filepath.EvalSymlinks] might help. - * - * Executable returns an absolute path unless an error occurred. - * - * The main use case is finding resources located relative to an - * executable. - */ - (): string - } - interface File { - /** - * Name returns the name of the file as presented to Open. - * - * It is safe to call Name after [Close]. - */ - name(): string - } - /** - * LinkError records an error during a link or symlink or rename - * system call and the paths that caused it. - */ - interface LinkError { - op: string - old: string - new: string - err: Error - } - interface LinkError { - error(): string - } - interface LinkError { - unwrap(): void - } - interface File { - /** - * Read reads up to len(b) bytes from the File and stores them in b. - * It returns the number of bytes read and any error encountered. - * At end of file, Read returns 0, io.EOF. - */ - read(b: string|Array): number - } - interface File { - /** - * ReadAt reads len(b) bytes from the File starting at byte offset off. - * It returns the number of bytes read and the error, if any. - * ReadAt always returns a non-nil error when n < len(b). - * At end of file, that error is io.EOF. - */ - readAt(b: string|Array, off: number): number - } - interface File { - /** - * ReadFrom implements io.ReaderFrom. - */ - readFrom(r: io.Reader): number - } - /** - * noReadFrom can be embedded alongside another type to - * hide the ReadFrom method of that other type. - */ - interface noReadFrom { - } - interface noReadFrom { - /** - * ReadFrom hides another ReadFrom method. - * It should never be called. - */ - readFrom(_arg0: io.Reader): number - } - /** - * fileWithoutReadFrom implements all the methods of *File other - * than ReadFrom. This is used to permit ReadFrom to call io.Copy - * without leading to a recursive call to ReadFrom. - */ - type _skYdpyD = noReadFrom&File - interface fileWithoutReadFrom extends _skYdpyD { - } - interface File { - /** - * Write writes len(b) bytes from b to the File. - * It returns the number of bytes written and an error, if any. - * Write returns a non-nil error when n != len(b). - */ - write(b: string|Array): number - } - interface File { - /** - * WriteAt writes len(b) bytes to the File starting at byte offset off. - * It returns the number of bytes written and an error, if any. - * WriteAt returns a non-nil error when n != len(b). - * - * If file was opened with the O_APPEND flag, WriteAt returns an error. - */ - writeAt(b: string|Array, off: number): number - } - interface File { - /** - * WriteTo implements io.WriterTo. - */ - writeTo(w: io.Writer): number - } - /** - * noWriteTo can be embedded alongside another type to - * hide the WriteTo method of that other type. - */ - interface noWriteTo { - } - interface noWriteTo { - /** - * WriteTo hides another WriteTo method. - * It should never be called. - */ - writeTo(_arg0: io.Writer): number - } - /** - * fileWithoutWriteTo implements all the methods of *File other - * than WriteTo. This is used to permit WriteTo to call io.Copy - * without leading to a recursive call to WriteTo. - */ - type _sGGDXoE = noWriteTo&File - interface fileWithoutWriteTo extends _sGGDXoE { - } - interface File { - /** - * Seek sets the offset for the next Read or Write on file to offset, interpreted - * according to whence: 0 means relative to the origin of the file, 1 means - * relative to the current offset, and 2 means relative to the end. - * It returns the new offset and an error, if any. - * The behavior of Seek on a file opened with O_APPEND is not specified. - */ - seek(offset: number, whence: number): number - } - interface File { - /** - * WriteString is like Write, but writes the contents of string s rather than - * a slice of bytes. - */ - writeString(s: string): number - } - interface mkdir { - /** - * Mkdir creates a new directory with the specified name and permission - * bits (before umask). - * If there is an error, it will be of type *PathError. - */ - (name: string, perm: FileMode): void - } - interface chdir { - /** - * Chdir changes the current working directory to the named directory. - * If there is an error, it will be of type *PathError. - */ - (dir: string): void - } - interface open { - /** - * Open opens the named file for reading. If successful, methods on - * the returned file can be used for reading; the associated file - * descriptor has mode O_RDONLY. - * If there is an error, it will be of type *PathError. - */ - (name: string): (File) - } - interface create { - /** - * Create creates or truncates the named file. If the file already exists, - * it is truncated. If the file does not exist, it is created with mode 0o666 - * (before umask). If successful, methods on the returned File can - * be used for I/O; the associated file descriptor has mode O_RDWR. - * If there is an error, it will be of type *PathError. - */ - (name: string): (File) - } - interface openFile { - /** - * OpenFile is the generalized open call; most users will use Open - * or Create instead. It opens the named file with specified flag - * (O_RDONLY etc.). If the file does not exist, and the O_CREATE flag - * is passed, it is created with mode perm (before umask). If successful, - * methods on the returned File can be used for I/O. - * If there is an error, it will be of type *PathError. - */ - (name: string, flag: number, perm: FileMode): (File) - } - interface rename { - /** - * Rename renames (moves) oldpath to newpath. - * If newpath already exists and is not a directory, Rename replaces it. - * OS-specific restrictions may apply when oldpath and newpath are in different directories. - * Even within the same directory, on non-Unix platforms Rename is not an atomic operation. - * If there is an error, it will be of type *LinkError. - */ - (oldpath: string, newpath: string): void - } - interface readlink { - /** - * Readlink returns the destination of the named symbolic link. - * If there is an error, it will be of type *PathError. - * - * If the link destination is relative, Readlink returns the relative path - * without resolving it to an absolute one. - */ - (name: string): string - } - interface tempDir { - /** - * TempDir returns the default directory to use for temporary files. - * - * On Unix systems, it returns $TMPDIR if non-empty, else /tmp. - * On Windows, it uses GetTempPath, returning the first non-empty - * value from %TMP%, %TEMP%, %USERPROFILE%, or the Windows directory. - * On Plan 9, it returns /tmp. - * - * The directory is neither guaranteed to exist nor have accessible - * permissions. - */ - (): string - } - interface userCacheDir { - /** - * UserCacheDir returns the default root directory to use for user-specific - * cached data. Users should create their own application-specific subdirectory - * within this one and use that. - * - * On Unix systems, it returns $XDG_CACHE_HOME as specified by - * https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html if - * non-empty, else $HOME/.cache. - * On Darwin, it returns $HOME/Library/Caches. - * On Windows, it returns %LocalAppData%. - * On Plan 9, it returns $home/lib/cache. - * - * If the location cannot be determined (for example, $HOME is not defined), - * then it will return an error. - */ - (): string - } - interface userConfigDir { - /** - * UserConfigDir returns the default root directory to use for user-specific - * configuration data. Users should create their own application-specific - * subdirectory within this one and use that. - * - * On Unix systems, it returns $XDG_CONFIG_HOME as specified by - * https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html if - * non-empty, else $HOME/.config. - * On Darwin, it returns $HOME/Library/Application Support. - * On Windows, it returns %AppData%. - * On Plan 9, it returns $home/lib. - * - * If the location cannot be determined (for example, $HOME is not defined), - * then it will return an error. - */ - (): string - } - interface userHomeDir { - /** - * UserHomeDir returns the current user's home directory. - * - * On Unix, including macOS, it returns the $HOME environment variable. - * On Windows, it returns %USERPROFILE%. - * On Plan 9, it returns the $home environment variable. - * - * If the expected variable is not set in the environment, UserHomeDir - * returns either a platform-specific default value or a non-nil error. - */ - (): string - } - interface chmod { - /** - * Chmod changes the mode of the named file to mode. - * If the file is a symbolic link, it changes the mode of the link's target. - * If there is an error, it will be of type *PathError. - * - * A different subset of the mode bits are used, depending on the - * operating system. - * - * On Unix, the mode's permission bits, ModeSetuid, ModeSetgid, and - * ModeSticky are used. - * - * On Windows, only the 0o200 bit (owner writable) of mode is used; it - * controls whether the file's read-only attribute is set or cleared. - * The other bits are currently unused. For compatibility with Go 1.12 - * and earlier, use a non-zero mode. Use mode 0o400 for a read-only - * file and 0o600 for a readable+writable file. - * - * On Plan 9, the mode's permission bits, ModeAppend, ModeExclusive, - * and ModeTemporary are used. - */ - (name: string, mode: FileMode): void - } - interface File { - /** - * Chmod changes the mode of the file to mode. - * If there is an error, it will be of type *PathError. - */ - chmod(mode: FileMode): void - } - interface File { - /** - * SetDeadline sets the read and write deadlines for a File. - * It is equivalent to calling both SetReadDeadline and SetWriteDeadline. - * - * Only some kinds of files support setting a deadline. Calls to SetDeadline - * for files that do not support deadlines will return ErrNoDeadline. - * On most systems ordinary files do not support deadlines, but pipes do. - * - * A deadline is an absolute time after which I/O operations fail with an - * error instead of blocking. The deadline applies to all future and pending - * I/O, not just the immediately following call to Read or Write. - * After a deadline has been exceeded, the connection can be refreshed - * by setting a deadline in the future. - * - * If the deadline is exceeded a call to Read or Write or to other I/O - * methods will return an error that wraps ErrDeadlineExceeded. - * This can be tested using errors.Is(err, os.ErrDeadlineExceeded). - * That error implements the Timeout method, and calling the Timeout - * method will return true, but there are other possible errors for which - * the Timeout will return true even if the deadline has not been exceeded. - * - * An idle timeout can be implemented by repeatedly extending - * the deadline after successful Read or Write calls. - * - * A zero value for t means I/O operations will not time out. - */ - setDeadline(t: time.Time): void - } - interface File { - /** - * SetReadDeadline sets the deadline for future Read calls and any - * currently-blocked Read call. - * A zero value for t means Read will not time out. - * Not all files support setting deadlines; see SetDeadline. - */ - setReadDeadline(t: time.Time): void - } - interface File { - /** - * SetWriteDeadline sets the deadline for any future Write calls and any - * currently-blocked Write call. - * Even if Write times out, it may return n > 0, indicating that - * some of the data was successfully written. - * A zero value for t means Write will not time out. - * Not all files support setting deadlines; see SetDeadline. - */ - setWriteDeadline(t: time.Time): void - } - interface File { - /** - * SyscallConn returns a raw file. - * This implements the syscall.Conn interface. - */ - syscallConn(): syscall.RawConn - } - interface dirFS { - /** - * DirFS returns a file system (an fs.FS) for the tree of files rooted at the directory dir. - * - * Note that DirFS("/prefix") only guarantees that the Open calls it makes to the - * operating system will begin with "/prefix": DirFS("/prefix").Open("file") is the - * same as os.Open("/prefix/file"). So if /prefix/file is a symbolic link pointing outside - * the /prefix tree, then using DirFS does not stop the access any more than using - * os.Open does. Additionally, the root of the fs.FS returned for a relative path, - * DirFS("prefix"), will be affected by later calls to Chdir. DirFS is therefore not - * a general substitute for a chroot-style security mechanism when the directory tree - * contains arbitrary content. - * - * The directory dir must not be "". - * - * The result implements [io/fs.StatFS], [io/fs.ReadFileFS] and - * [io/fs.ReadDirFS]. - */ - (dir: string): fs.FS - } - interface dirFS extends String{} - interface dirFS { - open(name: string): fs.File - } - interface dirFS { - /** - * The ReadFile method calls the [ReadFile] function for the file - * with the given name in the directory. The function provides - * robust handling for small files and special file systems. - * Through this method, dirFS implements [io/fs.ReadFileFS]. - */ - readFile(name: string): string|Array - } - interface dirFS { - /** - * ReadDir reads the named directory, returning all its directory entries sorted - * by filename. Through this method, dirFS implements [io/fs.ReadDirFS]. - */ - readDir(name: string): Array - } - interface dirFS { - stat(name: string): fs.FileInfo - } - interface readFile { - /** - * ReadFile reads the named file and returns the contents. - * A successful call returns err == nil, not err == EOF. - * Because ReadFile reads the whole file, it does not treat an EOF from Read - * as an error to be reported. - */ - (name: string): string|Array - } - interface writeFile { - /** - * WriteFile writes data to the named file, creating it if necessary. - * If the file does not exist, WriteFile creates it with permissions perm (before umask); - * otherwise WriteFile truncates it before writing, without changing permissions. - * Since WriteFile requires multiple system calls to complete, a failure mid-operation - * can leave the file in a partially written state. - */ - (name: string, data: string|Array, perm: FileMode): void - } - interface File { - /** - * Close closes the [File], rendering it unusable for I/O. - * On files that support [File.SetDeadline], any pending I/O operations will - * be canceled and return immediately with an [ErrClosed] error. - * Close will return an error if it has already been called. - */ - close(): void - } - interface chown { - /** - * Chown changes the numeric uid and gid of the named file. - * If the file is a symbolic link, it changes the uid and gid of the link's target. - * A uid or gid of -1 means to not change that value. - * If there is an error, it will be of type [*PathError]. - * - * On Windows or Plan 9, Chown always returns the [syscall.EWINDOWS] or - * EPLAN9 error, wrapped in *PathError. - */ - (name: string, uid: number, gid: number): void - } - interface lchown { - /** - * Lchown changes the numeric uid and gid of the named file. - * If the file is a symbolic link, it changes the uid and gid of the link itself. - * If there is an error, it will be of type [*PathError]. - * - * On Windows, it always returns the [syscall.EWINDOWS] error, wrapped - * in *PathError. - */ - (name: string, uid: number, gid: number): void - } - interface File { - /** - * Chown changes the numeric uid and gid of the named file. - * If there is an error, it will be of type [*PathError]. - * - * On Windows, it always returns the [syscall.EWINDOWS] error, wrapped - * in *PathError. - */ - chown(uid: number, gid: number): void - } - interface File { - /** - * Truncate changes the size of the file. - * It does not change the I/O offset. - * If there is an error, it will be of type [*PathError]. - */ - truncate(size: number): void - } - interface File { - /** - * Sync commits the current contents of the file to stable storage. - * Typically, this means flushing the file system's in-memory copy - * of recently written data to disk. - */ - sync(): void - } - interface chtimes { - /** - * Chtimes changes the access and modification times of the named - * file, similar to the Unix utime() or utimes() functions. - * A zero [time.Time] value will leave the corresponding file time unchanged. - * - * The underlying filesystem may truncate or round the values to a - * less precise time unit. - * If there is an error, it will be of type [*PathError]. - */ - (name: string, atime: time.Time, mtime: time.Time): void - } - interface File { - /** - * Chdir changes the current working directory to the file, - * which must be a directory. - * If there is an error, it will be of type [*PathError]. - */ - chdir(): void - } - /** - * file is the real representation of *File. - * The extra level of indirection ensures that no clients of os - * can overwrite this data, which could cause the finalizer - * to close the wrong file descriptor. - */ - interface file { - } - interface File { - /** - * Fd returns the integer Unix file descriptor referencing the open file. - * If f is closed, the file descriptor becomes invalid. - * If f is garbage collected, a finalizer may close the file descriptor, - * making it invalid; see [runtime.SetFinalizer] for more information on when - * a finalizer might be run. On Unix systems this will cause the [File.SetDeadline] - * methods to stop working. - * Because file descriptors can be reused, the returned file descriptor may - * only be closed through the [File.Close] method of f, or by its finalizer during - * garbage collection. Otherwise, during garbage collection the finalizer - * may close an unrelated file descriptor with the same (reused) number. - * - * As an alternative, see the f.SyscallConn method. - */ - fd(): number - } - interface newFile { - /** - * NewFile returns a new File with the given file descriptor and - * name. The returned value will be nil if fd is not a valid file - * descriptor. On Unix systems, if the file descriptor is in - * non-blocking mode, NewFile will attempt to return a pollable File - * (one for which the SetDeadline methods work). - * - * After passing it to NewFile, fd may become invalid under the same - * conditions described in the comments of the Fd method, and the same - * constraints apply. - */ - (fd: number, name: string): (File) - } - /** - * newFileKind describes the kind of file to newFile. - */ - interface newFileKind extends Number{} - interface truncate { - /** - * Truncate changes the size of the named file. - * If the file is a symbolic link, it changes the size of the link's target. - * If there is an error, it will be of type *PathError. - */ - (name: string, size: number): void - } - interface remove { - /** - * Remove removes the named file or (empty) directory. - * If there is an error, it will be of type *PathError. - */ - (name: string): void - } - interface link { - /** - * Link creates newname as a hard link to the oldname file. - * If there is an error, it will be of type *LinkError. - */ - (oldname: string, newname: string): void - } - interface symlink { - /** - * Symlink creates newname as a symbolic link to oldname. - * On Windows, a symlink to a non-existent oldname creates a file symlink; - * if oldname is later created as a directory the symlink will not work. - * If there is an error, it will be of type *LinkError. - */ - (oldname: string, newname: string): void - } - interface unixDirent { - } - interface unixDirent { - name(): string - } - interface unixDirent { - isDir(): boolean - } - interface unixDirent { - type(): FileMode - } - interface unixDirent { - info(): FileInfo - } - interface unixDirent { - string(): string - } - interface getwd { - /** - * Getwd returns a rooted path name corresponding to the - * current directory. If the current directory can be - * reached via multiple paths (due to symbolic links), - * Getwd may return any one of them. - */ - (): string - } - interface mkdirAll { - /** - * MkdirAll creates a directory named path, - * along with any necessary parents, and returns nil, - * or else returns an error. - * The permission bits perm (before umask) are used for all - * directories that MkdirAll creates. - * If path is already a directory, MkdirAll does nothing - * and returns nil. - */ - (path: string, perm: FileMode): void - } - interface removeAll { - /** - * RemoveAll removes path and any children it contains. - * It removes everything it can but returns the first error - * it encounters. If the path does not exist, RemoveAll - * returns nil (no error). - * If there is an error, it will be of type [*PathError]. - */ - (path: string): void - } - interface isPathSeparator { - /** - * IsPathSeparator reports whether c is a directory separator character. - */ - (c: number): boolean - } - interface pipe { - /** - * Pipe returns a connected pair of Files; reads from r return bytes written to w. - * It returns the files and an error, if any. - */ - (): [(File), (File)] - } - interface getuid { - /** - * Getuid returns the numeric user id of the caller. - * - * On Windows, it returns -1. - */ - (): number - } - interface geteuid { - /** - * Geteuid returns the numeric effective user id of the caller. - * - * On Windows, it returns -1. - */ - (): number - } - interface getgid { - /** - * Getgid returns the numeric group id of the caller. - * - * On Windows, it returns -1. - */ - (): number - } - interface getegid { - /** - * Getegid returns the numeric effective group id of the caller. - * - * On Windows, it returns -1. - */ - (): number - } - interface getgroups { - /** - * Getgroups returns a list of the numeric ids of groups that the caller belongs to. - * - * On Windows, it returns [syscall.EWINDOWS]. See the [os/user] package - * for a possible alternative. - */ - (): Array - } - interface exit { - /** - * Exit causes the current program to exit with the given status code. - * Conventionally, code zero indicates success, non-zero an error. - * The program terminates immediately; deferred functions are not run. - * - * For portability, the status code should be in the range [0, 125]. - */ - (code: number): void - } - /** - * rawConn implements syscall.RawConn. - */ - interface rawConn { - } - interface rawConn { - control(f: (_arg0: number) => void): void - } - interface rawConn { - read(f: (_arg0: number) => boolean): void - } - interface rawConn { - write(f: (_arg0: number) => boolean): void - } - interface stat { - /** - * Stat returns a [FileInfo] describing the named file. - * If there is an error, it will be of type [*PathError]. - */ - (name: string): FileInfo - } - interface lstat { - /** - * Lstat returns a [FileInfo] describing the named file. - * If the file is a symbolic link, the returned FileInfo - * describes the symbolic link. Lstat makes no attempt to follow the link. - * If there is an error, it will be of type [*PathError]. - * - * On Windows, if the file is a reparse point that is a surrogate for another - * named entity (such as a symbolic link or mounted folder), the returned - * FileInfo describes the reparse point, and makes no attempt to resolve it. - */ - (name: string): FileInfo - } - interface File { - /** - * Stat returns the [FileInfo] structure describing file. - * If there is an error, it will be of type [*PathError]. - */ - stat(): FileInfo - } - interface hostname { - /** - * Hostname returns the host name reported by the kernel. - */ - (): string - } - interface createTemp { - /** - * CreateTemp creates a new temporary file in the directory dir, - * opens the file for reading and writing, and returns the resulting file. - * The filename is generated by taking pattern and adding a random string to the end. - * If pattern includes a "*", the random string replaces the last "*". - * The file is created with mode 0o600 (before umask). - * If dir is the empty string, CreateTemp uses the default directory for temporary files, as returned by [TempDir]. - * Multiple programs or goroutines calling CreateTemp simultaneously will not choose the same file. - * The caller can use the file's Name method to find the pathname of the file. - * It is the caller's responsibility to remove the file when it is no longer needed. - */ - (dir: string, pattern: string): (File) - } - interface mkdirTemp { - /** - * MkdirTemp creates a new temporary directory in the directory dir - * and returns the pathname of the new directory. - * The new directory's name is generated by adding a random string to the end of pattern. - * If pattern includes a "*", the random string replaces the last "*" instead. - * The directory is created with mode 0o700 (before umask). - * If dir is the empty string, MkdirTemp uses the default directory for temporary files, as returned by TempDir. - * Multiple programs or goroutines calling MkdirTemp simultaneously will not choose the same directory. - * It is the caller's responsibility to remove the directory when it is no longer needed. - */ - (dir: string, pattern: string): string - } - interface getpagesize { - /** - * Getpagesize returns the underlying system's memory page size. - */ - (): number - } - /** - * File represents an open file descriptor. - * - * The methods of File are safe for concurrent use. - */ - type _sfAdXkW = file - interface File extends _sfAdXkW { - } - /** - * A FileInfo describes a file and is returned by [Stat] and [Lstat]. - */ - interface FileInfo extends fs.FileInfo{} - /** - * A FileMode represents a file's mode and permission bits. - * The bits have the same definition on all systems, so that - * information about files can be moved from one system - * to another portably. Not all bits apply to all systems. - * The only required bit is [ModeDir] for directories. - */ - interface FileMode extends fs.FileMode{} - interface fileStat { - name(): string - } - interface fileStat { - isDir(): boolean - } - interface sameFile { - /** - * SameFile reports whether fi1 and fi2 describe the same file. - * For example, on Unix this means that the device and inode fields - * of the two underlying structures are identical; on other systems - * the decision may be based on the path names. - * SameFile only applies to results returned by this package's [Stat]. - * It returns false in other cases. - */ - (fi1: FileInfo, fi2: FileInfo): boolean - } - /** - * A fileStat is the implementation of FileInfo returned by Stat and Lstat. - */ - interface fileStat { - } - interface fileStat { - size(): number - } - interface fileStat { - mode(): FileMode - } - interface fileStat { - modTime(): time.Time - } - interface fileStat { - sys(): any - } -} - -/** - * Package filepath implements utility routines for manipulating filename paths - * in a way compatible with the target operating system-defined file paths. - * - * The filepath package uses either forward slashes or backslashes, - * depending on the operating system. To process paths such as URLs - * that always use forward slashes regardless of the operating - * system, see the [path] package. - */ -namespace filepath { - interface match { - /** - * Match reports whether name matches the shell file name pattern. - * The pattern syntax is: - * - * ``` - * pattern: - * { term } - * term: - * '*' matches any sequence of non-Separator characters - * '?' matches any single non-Separator character - * '[' [ '^' ] { character-range } ']' - * character class (must be non-empty) - * c matches character c (c != '*', '?', '\\', '[') - * '\\' c matches character c - * - * character-range: - * c matches character c (c != '\\', '-', ']') - * '\\' c matches character c - * lo '-' hi matches character c for lo <= c <= hi - * ``` - * - * Match requires pattern to match all of name, not just a substring. - * The only possible returned error is [ErrBadPattern], when pattern - * is malformed. - * - * On Windows, escaping is disabled. Instead, '\\' is treated as - * path separator. - */ - (pattern: string, name: string): boolean - } - interface glob { - /** - * Glob returns the names of all files matching pattern or nil - * if there is no matching file. The syntax of patterns is the same - * as in [Match]. The pattern may describe hierarchical names such as - * /usr/*\/bin/ed (assuming the [Separator] is '/'). - * - * Glob ignores file system errors such as I/O errors reading directories. - * The only possible returned error is [ErrBadPattern], when pattern - * is malformed. - */ - (pattern: string): Array - } - interface clean { - /** - * Clean returns the shortest path name equivalent to path - * by purely lexical processing. It applies the following rules - * iteratively until no further processing can be done: - * - * 1. Replace multiple [Separator] elements with a single one. - * 2. Eliminate each . path name element (the current directory). - * 3. Eliminate each inner .. path name element (the parent directory) - * ``` - * along with the non-.. element that precedes it. - * ``` - * 4. Eliminate .. elements that begin a rooted path: - * ``` - * that is, replace "/.." by "/" at the beginning of a path, - * assuming Separator is '/'. - * ``` - * - * The returned path ends in a slash only if it represents a root directory, - * such as "/" on Unix or `C:\` on Windows. - * - * Finally, any occurrences of slash are replaced by Separator. - * - * If the result of this process is an empty string, Clean - * returns the string ".". - * - * On Windows, Clean does not modify the volume name other than to replace - * occurrences of "/" with `\`. - * For example, Clean("//host/share/../x") returns `\\host\share\x`. - * - * See also Rob Pike, “Lexical File Names in Plan 9 or - * Getting Dot-Dot Right,” - * https://9p.io/sys/doc/lexnames.html - */ - (path: string): string - } - interface isLocal { - /** - * IsLocal reports whether path, using lexical analysis only, has all of these properties: - * - * ``` - * - is within the subtree rooted at the directory in which path is evaluated - * - is not an absolute path - * - is not empty - * - on Windows, is not a reserved name such as "NUL" - * ``` - * - * If IsLocal(path) returns true, then - * Join(base, path) will always produce a path contained within base and - * Clean(path) will always produce an unrooted path with no ".." path elements. - * - * IsLocal is a purely lexical operation. - * In particular, it does not account for the effect of any symbolic links - * that may exist in the filesystem. - */ - (path: string): boolean - } - interface localize { - /** - * Localize converts a slash-separated path into an operating system path. - * The input path must be a valid path as reported by [io/fs.ValidPath]. - * - * Localize returns an error if the path cannot be represented by the operating system. - * For example, the path a\b is rejected on Windows, on which \ is a separator - * character and cannot be part of a filename. - * - * The path returned by Localize will always be local, as reported by IsLocal. - */ - (path: string): string - } - interface toSlash { - /** - * ToSlash returns the result of replacing each separator character - * in path with a slash ('/') character. Multiple separators are - * replaced by multiple slashes. - */ - (path: string): string - } - interface fromSlash { - /** - * FromSlash returns the result of replacing each slash ('/') character - * in path with a separator character. Multiple slashes are replaced - * by multiple separators. - * - * See also the Localize function, which converts a slash-separated path - * as used by the io/fs package to an operating system path. - */ - (path: string): string - } - interface splitList { - /** - * SplitList splits a list of paths joined by the OS-specific [ListSeparator], - * usually found in PATH or GOPATH environment variables. - * Unlike strings.Split, SplitList returns an empty slice when passed an empty - * string. - */ - (path: string): Array - } - interface split { - /** - * Split splits path immediately following the final [Separator], - * separating it into a directory and file name component. - * If there is no Separator in path, Split returns an empty dir - * and file set to path. - * The returned values have the property that path = dir+file. - */ - (path: string): [string, string] - } - interface join { - /** - * Join joins any number of path elements into a single path, - * separating them with an OS specific [Separator]. Empty elements - * are ignored. The result is Cleaned. However, if the argument - * list is empty or all its elements are empty, Join returns - * an empty string. - * On Windows, the result will only be a UNC path if the first - * non-empty element is a UNC path. - */ - (...elem: string[]): string - } - interface ext { - /** - * Ext returns the file name extension used by path. - * The extension is the suffix beginning at the final dot - * in the final element of path; it is empty if there is - * no dot. - */ - (path: string): string - } - interface evalSymlinks { - /** - * EvalSymlinks returns the path name after the evaluation of any symbolic - * links. - * If path is relative the result will be relative to the current directory, - * unless one of the components is an absolute symbolic link. - * EvalSymlinks calls [Clean] on the result. - */ - (path: string): string - } - interface isAbs { - /** - * IsAbs reports whether the path is absolute. - */ - (path: string): boolean - } - interface abs { - /** - * Abs returns an absolute representation of path. - * If the path is not absolute it will be joined with the current - * working directory to turn it into an absolute path. The absolute - * path name for a given file is not guaranteed to be unique. - * Abs calls [Clean] on the result. - */ - (path: string): string - } - interface rel { - /** - * Rel returns a relative path that is lexically equivalent to targpath when - * joined to basepath with an intervening separator. That is, - * [Join](basepath, Rel(basepath, targpath)) is equivalent to targpath itself. - * On success, the returned path will always be relative to basepath, - * even if basepath and targpath share no elements. - * An error is returned if targpath can't be made relative to basepath or if - * knowing the current working directory would be necessary to compute it. - * Rel calls [Clean] on the result. - */ - (basepath: string, targpath: string): string - } - /** - * WalkFunc is the type of the function called by [Walk] to visit each - * file or directory. - * - * The path argument contains the argument to Walk as a prefix. - * That is, if Walk is called with root argument "dir" and finds a file - * named "a" in that directory, the walk function will be called with - * argument "dir/a". - * - * The directory and file are joined with Join, which may clean the - * directory name: if Walk is called with the root argument "x/../dir" - * and finds a file named "a" in that directory, the walk function will - * be called with argument "dir/a", not "x/../dir/a". - * - * The info argument is the fs.FileInfo for the named path. - * - * The error result returned by the function controls how Walk continues. - * If the function returns the special value [SkipDir], Walk skips the - * current directory (path if info.IsDir() is true, otherwise path's - * parent directory). If the function returns the special value [SkipAll], - * Walk skips all remaining files and directories. Otherwise, if the function - * returns a non-nil error, Walk stops entirely and returns that error. - * - * The err argument reports an error related to path, signaling that Walk - * will not walk into that directory. The function can decide how to - * handle that error; as described earlier, returning the error will - * cause Walk to stop walking the entire tree. - * - * Walk calls the function with a non-nil err argument in two cases. - * - * First, if an [os.Lstat] on the root directory or any directory or file - * in the tree fails, Walk calls the function with path set to that - * directory or file's path, info set to nil, and err set to the error - * from os.Lstat. - * - * Second, if a directory's Readdirnames method fails, Walk calls the - * function with path set to the directory's path, info, set to an - * [fs.FileInfo] describing the directory, and err set to the error from - * Readdirnames. - */ - interface WalkFunc {(path: string, info: fs.FileInfo, err: Error): void } - interface walkDir { - /** - * WalkDir walks the file tree rooted at root, calling fn for each file or - * directory in the tree, including root. - * - * All errors that arise visiting files and directories are filtered by fn: - * see the [fs.WalkDirFunc] documentation for details. - * - * The files are walked in lexical order, which makes the output deterministic - * but requires WalkDir to read an entire directory into memory before proceeding - * to walk that directory. - * - * WalkDir does not follow symbolic links. - * - * WalkDir calls fn with paths that use the separator character appropriate - * for the operating system. This is unlike [io/fs.WalkDir], which always - * uses slash separated paths. - */ - (root: string, fn: fs.WalkDirFunc): void - } - interface walk { - /** - * Walk walks the file tree rooted at root, calling fn for each file or - * directory in the tree, including root. - * - * All errors that arise visiting files and directories are filtered by fn: - * see the [WalkFunc] documentation for details. - * - * The files are walked in lexical order, which makes the output deterministic - * but requires Walk to read an entire directory into memory before proceeding - * to walk that directory. - * - * Walk does not follow symbolic links. - * - * Walk is less efficient than [WalkDir], introduced in Go 1.16, - * which avoids calling os.Lstat on every visited file or directory. - */ - (root: string, fn: WalkFunc): void - } - interface base { - /** - * Base returns the last element of path. - * Trailing path separators are removed before extracting the last element. - * If the path is empty, Base returns ".". - * If the path consists entirely of separators, Base returns a single separator. - */ - (path: string): string - } - interface dir { - /** - * Dir returns all but the last element of path, typically the path's directory. - * After dropping the final element, Dir calls [Clean] on the path and trailing - * slashes are removed. - * If the path is empty, Dir returns ".". - * If the path consists entirely of separators, Dir returns a single separator. - * The returned path does not end in a separator unless it is the root directory. - */ - (path: string): string - } - interface volumeName { - /** - * VolumeName returns leading volume name. - * Given "C:\foo\bar" it returns "C:" on Windows. - * Given "\\host\share\foo" it returns "\\host\share". - * On other platforms it returns "". - */ - (path: string): string - } - interface hasPrefix { - /** - * HasPrefix exists for historical compatibility and should not be used. - * - * Deprecated: HasPrefix does not respect path boundaries and - * does not ignore case when required. - */ - (p: string, prefix: string): boolean - } -} - -/** - * Package template is a thin wrapper around the standard html/template - * and text/template packages that implements a convenient registry to - * load and cache templates on the fly concurrently. - * - * It was created to assist the JSVM plugin HTML rendering, but could be used in other Go code. - * - * Example: - * - * ``` - * registry := template.NewRegistry() - * - * html1, err := registry.LoadFiles( - * // the files set wil be parsed only once and then cached - * "layout.html", - * "content.html", - * ).Render(map[string]any{"name": "John"}) - * - * html2, err := registry.LoadFiles( - * // reuse the already parsed and cached files set - * "layout.html", - * "content.html", - * ).Render(map[string]any{"name": "Jane"}) - * ``` - */ -namespace template { - interface newRegistry { - /** - * NewRegistry creates and initializes a new templates registry with - * some defaults (eg. global "raw" template function for unescaped HTML). - * - * Use the Registry.Load* methods to load templates into the registry. - */ - (): (Registry) - } - /** - * Registry defines a templates registry that is safe to be used by multiple goroutines. - * - * Use the Registry.Load* methods to load templates into the registry. - */ - interface Registry { - } - interface Registry { - /** - * AddFuncs registers new global template functions. - * - * The key of each map entry is the function name that will be used in the templates. - * If a function with the map entry name already exists it will be replaced with the new one. - * - * The value of each map entry is a function that must have either a - * single return value, or two return values of which the second has type error. - * - * Example: - * - * ``` - * r.AddFuncs(map[string]any{ - * "toUpper": func(str string) string { - * return strings.ToUppser(str) - * }, - * ... - * }) - * ``` - */ - addFuncs(funcs: _TygojaDict): (Registry) - } - interface Registry { - /** - * LoadFiles caches (if not already) the specified filenames set as a - * single template and returns a ready to use Renderer instance. - * - * There must be at least 1 filename specified. - */ - loadFiles(...filenames: string[]): (Renderer) - } - interface Registry { - /** - * LoadString caches (if not already) the specified inline string as a - * single template and returns a ready to use Renderer instance. - */ - loadString(text: string): (Renderer) - } - interface Registry { - /** - * LoadFS caches (if not already) the specified fs and globPatterns - * pair as single template and returns a ready to use Renderer instance. - * - * There must be at least 1 file matching the provided globPattern(s) - * (note that most file names serves as glob patterns matching themselves). - */ - loadFS(fsys: fs.FS, ...globPatterns: string[]): (Renderer) - } - /** - * Renderer defines a single parsed template. - */ - interface Renderer { - } - interface Renderer { - /** - * Render executes the template with the specified data as the dot object - * and returns the result as plain string. - */ - render(data: any): string - } -} - -/** - * Package validation provides configurable and extensible rules for validating data of various types. - */ -namespace ozzo_validation { - /** - * Error interface represents an validation error - */ - interface Error { - [key:string]: any; - error(): string - code(): string - message(): string - setMessage(_arg0: string): Error - params(): _TygojaDict - setParams(_arg0: _TygojaDict): Error - } -} - -/** - * Package dbx provides a set of DB-agnostic and easy-to-use query building methods for relational databases. - */ -namespace dbx { - /** - * Builder supports building SQL statements in a DB-agnostic way. - * Builder mainly provides two sets of query building methods: those building SELECT statements - * and those manipulating DB data or schema (e.g. INSERT statements, CREATE TABLE statements). - */ - interface Builder { - [key:string]: any; - /** - * NewQuery creates a new Query object with the given SQL statement. - * The SQL statement may contain parameter placeholders which can be bound with actual parameter - * values before the statement is executed. - */ - newQuery(_arg0: string): (Query) - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(..._arg0: string[]): (SelectQuery) - /** - * ModelQuery returns a new ModelQuery object that can be used to perform model insertion, update, and deletion. - * The parameter to this method should be a pointer to the model struct that needs to be inserted, updated, or deleted. - */ - model(_arg0: { - }): (ModelQuery) - /** - * GeneratePlaceholder generates an anonymous parameter placeholder with the given parameter ID. - */ - generatePlaceholder(_arg0: number): string - /** - * Quote quotes a string so that it can be embedded in a SQL statement as a string value. - */ - quote(_arg0: string): string - /** - * QuoteSimpleTableName quotes a simple table name. - * A simple table name does not contain any schema prefix. - */ - quoteSimpleTableName(_arg0: string): string - /** - * QuoteSimpleColumnName quotes a simple column name. - * A simple column name does not contain any table prefix. - */ - quoteSimpleColumnName(_arg0: string): string - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - /** - * Insert creates a Query that represents an INSERT SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - insert(table: string, cols: Params): (Query) - /** - * Upsert creates a Query that represents an UPSERT SQL statement. - * Upsert inserts a row into the table if the primary key or unique index is not found. - * Otherwise it will update the row with the new values. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - upsert(table: string, cols: Params, ...constraints: string[]): (Query) - /** - * Update creates a Query that represents an UPDATE SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding new column - * values. If the "where" expression is nil, the UPDATE SQL statement will have no WHERE clause - * (be careful in this case as the SQL statement will update ALL rows in the table). - */ - update(table: string, cols: Params, where: Expression): (Query) - /** - * Delete creates a Query that represents a DELETE SQL statement. - * If the "where" expression is nil, the DELETE SQL statement will have no WHERE clause - * (be careful in this case as the SQL statement will delete ALL rows in the table). - */ - delete(table: string, where: Expression): (Query) - /** - * CreateTable creates a Query that represents a CREATE TABLE SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding column types. - * The optional "options" parameters will be appended to the generated SQL statement. - */ - createTable(table: string, cols: _TygojaDict, ...options: string[]): (Query) - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - /** - * DropTable creates a Query that can be used to drop a table. - */ - dropTable(table: string): (Query) - /** - * TruncateTable creates a Query that can be used to truncate a table. - */ - truncateTable(table: string): (Query) - /** - * AddColumn creates a Query that can be used to add a column to a table. - */ - addColumn(table: string, col: string, typ: string): (Query) - /** - * DropColumn creates a Query that can be used to drop a column from a table. - */ - dropColumn(table: string, col: string): (Query) - /** - * RenameColumn creates a Query that can be used to rename a column in a table. - */ - renameColumn(table: string, oldName: string, newName: string): (Query) - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - /** - * AddPrimaryKey creates a Query that can be used to specify primary key(s) for a table. - * The "name" parameter specifies the name of the primary key constraint. - */ - addPrimaryKey(table: string, name: string, ...cols: string[]): (Query) - /** - * DropPrimaryKey creates a Query that can be used to remove the named primary key constraint from a table. - */ - dropPrimaryKey(table: string, name: string): (Query) - /** - * AddForeignKey creates a Query that can be used to add a foreign key constraint to a table. - * The length of cols and refCols must be the same as they refer to the primary and referential columns. - * The optional "options" parameters will be appended to the SQL statement. They can be used to - * specify options such as "ON DELETE CASCADE". - */ - addForeignKey(table: string, name: string, cols: Array, refCols: Array, refTable: string, ...options: string[]): (Query) - /** - * DropForeignKey creates a Query that can be used to remove the named foreign key constraint from a table. - */ - dropForeignKey(table: string, name: string): (Query) - /** - * CreateIndex creates a Query that can be used to create an index for a table. - */ - createIndex(table: string, name: string, ...cols: string[]): (Query) - /** - * CreateUniqueIndex creates a Query that can be used to create a unique index for a table. - */ - createUniqueIndex(table: string, name: string, ...cols: string[]): (Query) - /** - * DropIndex creates a Query that can be used to remove the named index from a table. - */ - dropIndex(table: string, name: string): (Query) - } - /** - * BaseBuilder provides a basic implementation of the Builder interface. - */ - interface BaseBuilder { - } - interface newBaseBuilder { - /** - * NewBaseBuilder creates a new BaseBuilder instance. - */ - (db: DB, executor: Executor): (BaseBuilder) - } - interface BaseBuilder { - /** - * DB returns the DB instance that this builder is associated with. - */ - db(): (DB) - } - interface BaseBuilder { - /** - * Executor returns the executor object (a DB instance or a transaction) for executing SQL statements. - */ - executor(): Executor - } - interface BaseBuilder { - /** - * NewQuery creates a new Query object with the given SQL statement. - * The SQL statement may contain parameter placeholders which can be bound with actual parameter - * values before the statement is executed. - */ - newQuery(sql: string): (Query) - } - interface BaseBuilder { - /** - * GeneratePlaceholder generates an anonymous parameter placeholder with the given parameter ID. - */ - generatePlaceholder(_arg0: number): string - } - interface BaseBuilder { - /** - * Quote quotes a string so that it can be embedded in a SQL statement as a string value. - */ - quote(s: string): string - } - interface BaseBuilder { - /** - * QuoteSimpleTableName quotes a simple table name. - * A simple table name does not contain any schema prefix. - */ - quoteSimpleTableName(s: string): string - } - interface BaseBuilder { - /** - * QuoteSimpleColumnName quotes a simple column name. - * A simple column name does not contain any table prefix. - */ - quoteSimpleColumnName(s: string): string - } - interface BaseBuilder { - /** - * Insert creates a Query that represents an INSERT SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - insert(table: string, cols: Params): (Query) - } - interface BaseBuilder { - /** - * Upsert creates a Query that represents an UPSERT SQL statement. - * Upsert inserts a row into the table if the primary key or unique index is not found. - * Otherwise it will update the row with the new values. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - upsert(table: string, cols: Params, ...constraints: string[]): (Query) - } - interface BaseBuilder { - /** - * Update creates a Query that represents an UPDATE SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding new column - * values. If the "where" expression is nil, the UPDATE SQL statement will have no WHERE clause - * (be careful in this case as the SQL statement will update ALL rows in the table). - */ - update(table: string, cols: Params, where: Expression): (Query) - } - interface BaseBuilder { - /** - * Delete creates a Query that represents a DELETE SQL statement. - * If the "where" expression is nil, the DELETE SQL statement will have no WHERE clause - * (be careful in this case as the SQL statement will delete ALL rows in the table). - */ - delete(table: string, where: Expression): (Query) - } - interface BaseBuilder { - /** - * CreateTable creates a Query that represents a CREATE TABLE SQL statement. - * The keys of cols are the column names, while the values of cols are the corresponding column types. - * The optional "options" parameters will be appended to the generated SQL statement. - */ - createTable(table: string, cols: _TygojaDict, ...options: string[]): (Query) - } - interface BaseBuilder { - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - } - interface BaseBuilder { - /** - * DropTable creates a Query that can be used to drop a table. - */ - dropTable(table: string): (Query) - } - interface BaseBuilder { - /** - * TruncateTable creates a Query that can be used to truncate a table. - */ - truncateTable(table: string): (Query) - } - interface BaseBuilder { - /** - * AddColumn creates a Query that can be used to add a column to a table. - */ - addColumn(table: string, col: string, typ: string): (Query) - } - interface BaseBuilder { - /** - * DropColumn creates a Query that can be used to drop a column from a table. - */ - dropColumn(table: string, col: string): (Query) - } - interface BaseBuilder { - /** - * RenameColumn creates a Query that can be used to rename a column in a table. - */ - renameColumn(table: string, oldName: string, newName: string): (Query) - } - interface BaseBuilder { - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - } - interface BaseBuilder { - /** - * AddPrimaryKey creates a Query that can be used to specify primary key(s) for a table. - * The "name" parameter specifies the name of the primary key constraint. - */ - addPrimaryKey(table: string, name: string, ...cols: string[]): (Query) - } - interface BaseBuilder { - /** - * DropPrimaryKey creates a Query that can be used to remove the named primary key constraint from a table. - */ - dropPrimaryKey(table: string, name: string): (Query) - } - interface BaseBuilder { - /** - * AddForeignKey creates a Query that can be used to add a foreign key constraint to a table. - * The length of cols and refCols must be the same as they refer to the primary and referential columns. - * The optional "options" parameters will be appended to the SQL statement. They can be used to - * specify options such as "ON DELETE CASCADE". - */ - addForeignKey(table: string, name: string, cols: Array, refCols: Array, refTable: string, ...options: string[]): (Query) - } - interface BaseBuilder { - /** - * DropForeignKey creates a Query that can be used to remove the named foreign key constraint from a table. - */ - dropForeignKey(table: string, name: string): (Query) - } - interface BaseBuilder { - /** - * CreateIndex creates a Query that can be used to create an index for a table. - */ - createIndex(table: string, name: string, ...cols: string[]): (Query) - } - interface BaseBuilder { - /** - * CreateUniqueIndex creates a Query that can be used to create a unique index for a table. - */ - createUniqueIndex(table: string, name: string, ...cols: string[]): (Query) - } - interface BaseBuilder { - /** - * DropIndex creates a Query that can be used to remove the named index from a table. - */ - dropIndex(table: string, name: string): (Query) - } - /** - * MssqlBuilder is the builder for SQL Server databases. - */ - type _sitJnyF = BaseBuilder - interface MssqlBuilder extends _sitJnyF { - } - /** - * MssqlQueryBuilder is the query builder for SQL Server databases. - */ - type _sjbsCyj = BaseQueryBuilder - interface MssqlQueryBuilder extends _sjbsCyj { - } - interface newMssqlBuilder { - /** - * NewMssqlBuilder creates a new MssqlBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface MssqlBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface MssqlBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface MssqlBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - interface MssqlBuilder { - /** - * QuoteSimpleTableName quotes a simple table name. - * A simple table name does not contain any schema prefix. - */ - quoteSimpleTableName(s: string): string - } - interface MssqlBuilder { - /** - * QuoteSimpleColumnName quotes a simple column name. - * A simple column name does not contain any table prefix. - */ - quoteSimpleColumnName(s: string): string - } - interface MssqlBuilder { - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - } - interface MssqlBuilder { - /** - * RenameColumn creates a Query that can be used to rename a column in a table. - */ - renameColumn(table: string, oldName: string, newName: string): (Query) - } - interface MssqlBuilder { - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - } - interface MssqlQueryBuilder { - /** - * BuildOrderByAndLimit generates the ORDER BY and LIMIT clauses. - */ - buildOrderByAndLimit(sql: string, cols: Array, limit: number, offset: number): string - } - /** - * MysqlBuilder is the builder for MySQL databases. - */ - type _sLzXYwy = BaseBuilder - interface MysqlBuilder extends _sLzXYwy { - } - interface newMysqlBuilder { - /** - * NewMysqlBuilder creates a new MysqlBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface MysqlBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface MysqlBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface MysqlBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - interface MysqlBuilder { - /** - * QuoteSimpleTableName quotes a simple table name. - * A simple table name does not contain any schema prefix. - */ - quoteSimpleTableName(s: string): string - } - interface MysqlBuilder { - /** - * QuoteSimpleColumnName quotes a simple column name. - * A simple column name does not contain any table prefix. - */ - quoteSimpleColumnName(s: string): string - } - interface MysqlBuilder { - /** - * Upsert creates a Query that represents an UPSERT SQL statement. - * Upsert inserts a row into the table if the primary key or unique index is not found. - * Otherwise it will update the row with the new values. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - upsert(table: string, cols: Params, ...constraints: string[]): (Query) - } - interface MysqlBuilder { - /** - * RenameColumn creates a Query that can be used to rename a column in a table. - */ - renameColumn(table: string, oldName: string, newName: string): (Query) - } - interface MysqlBuilder { - /** - * DropPrimaryKey creates a Query that can be used to remove the named primary key constraint from a table. - */ - dropPrimaryKey(table: string, name: string): (Query) - } - interface MysqlBuilder { - /** - * DropForeignKey creates a Query that can be used to remove the named foreign key constraint from a table. - */ - dropForeignKey(table: string, name: string): (Query) - } - /** - * OciBuilder is the builder for Oracle databases. - */ - type _sGUxGfe = BaseBuilder - interface OciBuilder extends _sGUxGfe { - } - /** - * OciQueryBuilder is the query builder for Oracle databases. - */ - type _sbEZsEf = BaseQueryBuilder - interface OciQueryBuilder extends _sbEZsEf { - } - interface newOciBuilder { - /** - * NewOciBuilder creates a new OciBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface OciBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface OciBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - interface OciBuilder { - /** - * GeneratePlaceholder generates an anonymous parameter placeholder with the given parameter ID. - */ - generatePlaceholder(i: number): string - } - interface OciBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface OciBuilder { - /** - * DropIndex creates a Query that can be used to remove the named index from a table. - */ - dropIndex(table: string, name: string): (Query) - } - interface OciBuilder { - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - } - interface OciBuilder { - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - } - interface OciQueryBuilder { - /** - * BuildOrderByAndLimit generates the ORDER BY and LIMIT clauses. - */ - buildOrderByAndLimit(sql: string, cols: Array, limit: number, offset: number): string - } - /** - * PgsqlBuilder is the builder for PostgreSQL databases. - */ - type _sFQOdZA = BaseBuilder - interface PgsqlBuilder extends _sFQOdZA { - } - interface newPgsqlBuilder { - /** - * NewPgsqlBuilder creates a new PgsqlBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface PgsqlBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface PgsqlBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - interface PgsqlBuilder { - /** - * GeneratePlaceholder generates an anonymous parameter placeholder with the given parameter ID. - */ - generatePlaceholder(i: number): string - } - interface PgsqlBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface PgsqlBuilder { - /** - * Upsert creates a Query that represents an UPSERT SQL statement. - * Upsert inserts a row into the table if the primary key or unique index is not found. - * Otherwise it will update the row with the new values. - * The keys of cols are the column names, while the values of cols are the corresponding column - * values to be inserted. - */ - upsert(table: string, cols: Params, ...constraints: string[]): (Query) - } - interface PgsqlBuilder { - /** - * DropIndex creates a Query that can be used to remove the named index from a table. - */ - dropIndex(table: string, name: string): (Query) - } - interface PgsqlBuilder { - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - } - interface PgsqlBuilder { - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - } - /** - * SqliteBuilder is the builder for SQLite databases. - */ - type _sgEruTR = BaseBuilder - interface SqliteBuilder extends _sgEruTR { - } - interface newSqliteBuilder { - /** - * NewSqliteBuilder creates a new SqliteBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface SqliteBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface SqliteBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface SqliteBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - interface SqliteBuilder { - /** - * QuoteSimpleTableName quotes a simple table name. - * A simple table name does not contain any schema prefix. - */ - quoteSimpleTableName(s: string): string - } - interface SqliteBuilder { - /** - * QuoteSimpleColumnName quotes a simple column name. - * A simple column name does not contain any table prefix. - */ - quoteSimpleColumnName(s: string): string - } - interface SqliteBuilder { - /** - * DropIndex creates a Query that can be used to remove the named index from a table. - */ - dropIndex(table: string, name: string): (Query) - } - interface SqliteBuilder { - /** - * TruncateTable creates a Query that can be used to truncate a table. - */ - truncateTable(table: string): (Query) - } - interface SqliteBuilder { - /** - * RenameTable creates a Query that can be used to rename a table. - */ - renameTable(oldName: string, newName: string): (Query) - } - interface SqliteBuilder { - /** - * AlterColumn creates a Query that can be used to change the definition of a table column. - */ - alterColumn(table: string, col: string, typ: string): (Query) - } - interface SqliteBuilder { - /** - * AddPrimaryKey creates a Query that can be used to specify primary key(s) for a table. - * The "name" parameter specifies the name of the primary key constraint. - */ - addPrimaryKey(table: string, name: string, ...cols: string[]): (Query) - } - interface SqliteBuilder { - /** - * DropPrimaryKey creates a Query that can be used to remove the named primary key constraint from a table. - */ - dropPrimaryKey(table: string, name: string): (Query) - } - interface SqliteBuilder { - /** - * AddForeignKey creates a Query that can be used to add a foreign key constraint to a table. - * The length of cols and refCols must be the same as they refer to the primary and referential columns. - * The optional "options" parameters will be appended to the SQL statement. They can be used to - * specify options such as "ON DELETE CASCADE". - */ - addForeignKey(table: string, name: string, cols: Array, refCols: Array, refTable: string, ...options: string[]): (Query) - } - interface SqliteBuilder { - /** - * DropForeignKey creates a Query that can be used to remove the named foreign key constraint from a table. - */ - dropForeignKey(table: string, name: string): (Query) - } - /** - * StandardBuilder is the builder that is used by DB for an unknown driver. - */ - type _ssvZWuw = BaseBuilder - interface StandardBuilder extends _ssvZWuw { - } - interface newStandardBuilder { - /** - * NewStandardBuilder creates a new StandardBuilder instance. - */ - (db: DB, executor: Executor): Builder - } - interface StandardBuilder { - /** - * QueryBuilder returns the query builder supporting the current DB. - */ - queryBuilder(): QueryBuilder - } - interface StandardBuilder { - /** - * Select returns a new SelectQuery object that can be used to build a SELECT statement. - * The parameters to this method should be the list column names to be selected. - * A column name may have an optional alias name. For example, Select("id", "my_name AS name"). - */ - select(...cols: string[]): (SelectQuery) - } - interface StandardBuilder { - /** - * Model returns a new ModelQuery object that can be used to perform model-based DB operations. - * The model passed to this method should be a pointer to a model struct. - */ - model(model: { - }): (ModelQuery) - } - /** - * LogFunc logs a message for each SQL statement being executed. - * This method takes one or multiple parameters. If a single parameter - * is provided, it will be treated as the log message. If multiple parameters - * are provided, they will be passed to fmt.Sprintf() to generate the log message. - */ - interface LogFunc {(format: string, ...a: { - }[]): void } - /** - * PerfFunc is called when a query finishes execution. - * The query execution time is passed to this function so that the DB performance - * can be profiled. The "ns" parameter gives the number of nanoseconds that the - * SQL statement takes to execute, while the "execute" parameter indicates whether - * the SQL statement is executed or queried (usually SELECT statements). - */ - interface PerfFunc {(ns: number, sql: string, execute: boolean): void } - /** - * QueryLogFunc is called each time when performing a SQL query. - * The "t" parameter gives the time that the SQL statement takes to execute, - * while rows and err are the result of the query. - */ - interface QueryLogFunc {(ctx: context.Context, t: time.Duration, sql: string, rows: sql.Rows, err: Error): void } - /** - * ExecLogFunc is called each time when a SQL statement is executed. - * The "t" parameter gives the time that the SQL statement takes to execute, - * while result and err refer to the result of the execution. - */ - interface ExecLogFunc {(ctx: context.Context, t: time.Duration, sql: string, result: sql.Result, err: Error): void } - /** - * BuilderFunc creates a Builder instance using the given DB instance and Executor. - */ - interface BuilderFunc {(_arg0: DB, _arg1: Executor): Builder } - /** - * DB enhances sql.DB by providing a set of DB-agnostic query building methods. - * DB allows easier query building and population of data into Go variables. - */ - type _sqKgRBR = Builder - interface DB extends _sqKgRBR { - /** - * FieldMapper maps struct fields to DB columns. Defaults to DefaultFieldMapFunc. - */ - fieldMapper: FieldMapFunc - /** - * TableMapper maps structs to table names. Defaults to GetTableName. - */ - tableMapper: TableMapFunc - /** - * LogFunc logs the SQL statements being executed. Defaults to nil, meaning no logging. - */ - logFunc: LogFunc - /** - * PerfFunc logs the SQL execution time. Defaults to nil, meaning no performance profiling. - * Deprecated: Please use QueryLogFunc and ExecLogFunc instead. - */ - perfFunc: PerfFunc - /** - * QueryLogFunc is called each time when performing a SQL query that returns data. - */ - queryLogFunc: QueryLogFunc - /** - * ExecLogFunc is called each time when a SQL statement is executed. - */ - execLogFunc: ExecLogFunc - } - /** - * Errors represents a list of errors. - */ - interface Errors extends Array{} - interface newFromDB { - /** - * NewFromDB encapsulates an existing database connection. - */ - (sqlDB: sql.DB, driverName: string): (DB) - } - interface open { - /** - * Open opens a database specified by a driver name and data source name (DSN). - * Note that Open does not check if DSN is specified correctly. It doesn't try to establish a DB connection either. - * Please refer to sql.Open() for more information. - */ - (driverName: string, dsn: string): (DB) - } - interface mustOpen { - /** - * MustOpen opens a database and establishes a connection to it. - * Please refer to sql.Open() and sql.Ping() for more information. - */ - (driverName: string, dsn: string): (DB) - } - interface DB { - /** - * Clone makes a shallow copy of DB. - */ - clone(): (DB) - } - interface DB { - /** - * WithContext returns a new instance of DB associated with the given context. - */ - withContext(ctx: context.Context): (DB) - } - interface DB { - /** - * Context returns the context associated with the DB instance. - * It returns nil if no context is associated. - */ - context(): context.Context - } - interface DB { - /** - * DB returns the sql.DB instance encapsulated by dbx.DB. - */ - db(): (sql.DB) - } - interface DB { - /** - * Close closes the database, releasing any open resources. - * It is rare to Close a DB, as the DB handle is meant to be - * long-lived and shared between many goroutines. - */ - close(): void - } - interface DB { - /** - * Begin starts a transaction. - */ - begin(): (Tx) - } - interface DB { - /** - * BeginTx starts a transaction with the given context and transaction options. - */ - beginTx(ctx: context.Context, opts: sql.TxOptions): (Tx) - } - interface DB { - /** - * Wrap encapsulates an existing transaction. - */ - wrap(sqlTx: sql.Tx): (Tx) - } - interface DB { - /** - * Transactional starts a transaction and executes the given function. - * If the function returns an error, the transaction will be rolled back. - * Otherwise, the transaction will be committed. - */ - transactional(f: (_arg0: Tx) => void): void - } - interface DB { - /** - * TransactionalContext starts a transaction and executes the given function with the given context and transaction options. - * If the function returns an error, the transaction will be rolled back. - * Otherwise, the transaction will be committed. - */ - transactionalContext(ctx: context.Context, opts: sql.TxOptions, f: (_arg0: Tx) => void): void - } - interface DB { - /** - * DriverName returns the name of the DB driver. - */ - driverName(): string - } - interface DB { - /** - * QuoteTableName quotes the given table name appropriately. - * If the table name contains DB schema prefix, it will be handled accordingly. - * This method will do nothing if the table name is already quoted or if it contains parenthesis. - */ - quoteTableName(s: string): string - } - interface DB { - /** - * QuoteColumnName quotes the given column name appropriately. - * If the table name contains table name prefix, it will be handled accordingly. - * This method will do nothing if the column name is already quoted or if it contains parenthesis. - */ - quoteColumnName(s: string): string - } - interface Errors { - /** - * Error returns the error string of Errors. - */ - error(): string - } - /** - * Expression represents a DB expression that can be embedded in a SQL statement. - */ - interface Expression { - [key:string]: any; - /** - * Build converts an expression into a SQL fragment. - * If the expression contains binding parameters, they will be added to the given Params. - */ - build(_arg0: DB, _arg1: Params): string - } - /** - * HashExp represents a hash expression. - * - * A hash expression is a map whose keys are DB column names which need to be filtered according - * to the corresponding values. For example, HashExp{"level": 2, "dept": 10} will generate - * the SQL: "level"=2 AND "dept"=10. - * - * HashExp also handles nil values and slice values. For example, HashExp{"level": []interface{}{1, 2}, "dept": nil} - * will generate: "level" IN (1, 2) AND "dept" IS NULL. - */ - interface HashExp extends _TygojaDict{} - interface newExp { - /** - * NewExp generates an expression with the specified SQL fragment and the optional binding parameters. - */ - (e: string, ...params: Params[]): Expression - } - interface not { - /** - * Not generates a NOT expression which prefixes "NOT" to the specified expression. - */ - (e: Expression): Expression - } - interface and { - /** - * And generates an AND expression which concatenates the given expressions with "AND". - */ - (...exps: Expression[]): Expression - } - interface or { - /** - * Or generates an OR expression which concatenates the given expressions with "OR". - */ - (...exps: Expression[]): Expression - } - interface _in { - /** - * In generates an IN expression for the specified column and the list of allowed values. - * If values is empty, a SQL "0=1" will be generated which represents a false expression. - */ - (col: string, ...values: { - }[]): Expression - } - interface notIn { - /** - * NotIn generates an NOT IN expression for the specified column and the list of disallowed values. - * If values is empty, an empty string will be returned indicating a true expression. - */ - (col: string, ...values: { - }[]): Expression - } - interface like { - /** - * Like generates a LIKE expression for the specified column and the possible strings that the column should be like. - * If multiple values are present, the column should be like *all* of them. For example, Like("name", "key", "word") - * will generate a SQL expression: "name" LIKE "%key%" AND "name" LIKE "%word%". - * - * By default, each value will be surrounded by "%" to enable partial matching. If a value contains special characters - * such as "%", "\", "_", they will also be properly escaped. - * - * You may call Escape() and/or Match() to change the default behavior. For example, Like("name", "key").Match(false, true) - * generates "name" LIKE "key%". - */ - (col: string, ...values: string[]): (LikeExp) - } - interface notLike { - /** - * NotLike generates a NOT LIKE expression. - * For example, NotLike("name", "key", "word") will generate a SQL expression: - * "name" NOT LIKE "%key%" AND "name" NOT LIKE "%word%". Please see Like() for more details. - */ - (col: string, ...values: string[]): (LikeExp) - } - interface orLike { - /** - * OrLike generates an OR LIKE expression. - * This is similar to Like() except that the column should be like one of the possible values. - * For example, OrLike("name", "key", "word") will generate a SQL expression: - * "name" LIKE "%key%" OR "name" LIKE "%word%". Please see Like() for more details. - */ - (col: string, ...values: string[]): (LikeExp) - } - interface orNotLike { - /** - * OrNotLike generates an OR NOT LIKE expression. - * For example, OrNotLike("name", "key", "word") will generate a SQL expression: - * "name" NOT LIKE "%key%" OR "name" NOT LIKE "%word%". Please see Like() for more details. - */ - (col: string, ...values: string[]): (LikeExp) - } - interface exists { - /** - * Exists generates an EXISTS expression by prefixing "EXISTS" to the given expression. - */ - (exp: Expression): Expression - } - interface notExists { - /** - * NotExists generates an EXISTS expression by prefixing "NOT EXISTS" to the given expression. - */ - (exp: Expression): Expression - } - interface between { - /** - * Between generates a BETWEEN expression. - * For example, Between("age", 10, 30) generates: "age" BETWEEN 10 AND 30 - */ - (col: string, from: { - }, to: { - }): Expression - } - interface notBetween { - /** - * NotBetween generates a NOT BETWEEN expression. - * For example, NotBetween("age", 10, 30) generates: "age" NOT BETWEEN 10 AND 30 - */ - (col: string, from: { - }, to: { - }): Expression - } - /** - * Exp represents an expression with a SQL fragment and a list of optional binding parameters. - */ - interface Exp { - } - interface Exp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - interface HashExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * NotExp represents an expression that should prefix "NOT" to a specified expression. - */ - interface NotExp { - } - interface NotExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * AndOrExp represents an expression that concatenates multiple expressions using either "AND" or "OR". - */ - interface AndOrExp { - } - interface AndOrExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * InExp represents an "IN" or "NOT IN" expression. - */ - interface InExp { - } - interface InExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * LikeExp represents a variant of LIKE expressions. - */ - interface LikeExp { - /** - * Like stores the LIKE operator. It can be "LIKE", "NOT LIKE". - * It may also be customized as something like "ILIKE". - */ - like: string - } - interface LikeExp { - /** - * Escape specifies how a LIKE expression should be escaped. - * Each string at position 2i represents a special character and the string at position 2i+1 is - * the corresponding escaped version. - */ - escape(...chars: string[]): (LikeExp) - } - interface LikeExp { - /** - * Match specifies whether to do wildcard matching on the left and/or right of given strings. - */ - match(left: boolean, right: boolean): (LikeExp) - } - interface LikeExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * ExistsExp represents an EXISTS or NOT EXISTS expression. - */ - interface ExistsExp { - } - interface ExistsExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * BetweenExp represents a BETWEEN or a NOT BETWEEN expression. - */ - interface BetweenExp { - } - interface BetweenExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - interface enclose { - /** - * Enclose surrounds the provided nonempty expression with parenthesis "()". - */ - (exp: Expression): Expression - } - /** - * EncloseExp represents a parenthesis enclosed expression. - */ - interface EncloseExp { - } - interface EncloseExp { - /** - * Build converts an expression into a SQL fragment. - */ - build(db: DB, params: Params): string - } - /** - * TableModel is the interface that should be implemented by models which have unconventional table names. - */ - interface TableModel { - [key:string]: any; - tableName(): string - } - /** - * ModelQuery represents a query associated with a struct model. - */ - interface ModelQuery { - } - interface newModelQuery { - (model: { - }, fieldMapFunc: FieldMapFunc, db: DB, builder: Builder): (ModelQuery) - } - interface ModelQuery { - /** - * Context returns the context associated with the query. - */ - context(): context.Context - } - interface ModelQuery { - /** - * WithContext associates a context with the query. - */ - withContext(ctx: context.Context): (ModelQuery) - } - interface ModelQuery { - /** - * Exclude excludes the specified struct fields from being inserted/updated into the DB table. - */ - exclude(...attrs: string[]): (ModelQuery) - } - interface ModelQuery { - /** - * Insert inserts a row in the table using the struct model associated with this query. - * - * By default, it inserts *all* public fields into the table, including those nil or empty ones. - * You may pass a list of the fields to this method to indicate that only those fields should be inserted. - * You may also call Exclude to exclude some fields from being inserted. - * - * If a model has an empty primary key, it is considered auto-incremental and the corresponding struct - * field will be filled with the generated primary key value after a successful insertion. - */ - insert(...attrs: string[]): void - } - interface ModelQuery { - /** - * Update updates a row in the table using the struct model associated with this query. - * The row being updated has the same primary key as specified by the model. - * - * By default, it updates *all* public fields in the table, including those nil or empty ones. - * You may pass a list of the fields to this method to indicate that only those fields should be updated. - * You may also call Exclude to exclude some fields from being updated. - */ - update(...attrs: string[]): void - } - interface ModelQuery { - /** - * Delete deletes a row in the table using the primary key specified by the struct model associated with this query. - */ - delete(): void - } - /** - * ExecHookFunc executes before op allowing custom handling like auto fail/retry. - */ - interface ExecHookFunc {(q: Query, op: () => void): void } - /** - * OneHookFunc executes right before the query populate the row result from One() call (aka. op). - */ - interface OneHookFunc {(q: Query, a: { - }, op: (b: { - }) => void): void } - /** - * AllHookFunc executes right before the query populate the row result from All() call (aka. op). - */ - interface AllHookFunc {(q: Query, sliceA: { - }, op: (sliceB: { - }) => void): void } - /** - * Params represents a list of parameter values to be bound to a SQL statement. - * The map keys are the parameter names while the map values are the corresponding parameter values. - */ - interface Params extends _TygojaDict{} - /** - * Executor prepares, executes, or queries a SQL statement. - */ - interface Executor { - [key:string]: any; - /** - * Exec executes a SQL statement - */ - exec(query: string, ...args: { - }[]): sql.Result - /** - * ExecContext executes a SQL statement with the given context - */ - execContext(ctx: context.Context, query: string, ...args: { - }[]): sql.Result - /** - * Query queries a SQL statement - */ - query(query: string, ...args: { - }[]): (sql.Rows) - /** - * QueryContext queries a SQL statement with the given context - */ - queryContext(ctx: context.Context, query: string, ...args: { - }[]): (sql.Rows) - /** - * Prepare creates a prepared statement - */ - prepare(query: string): (sql.Stmt) - } - /** - * Query represents a SQL statement to be executed. - */ - interface Query { - /** - * FieldMapper maps struct field names to DB column names. - */ - fieldMapper: FieldMapFunc - /** - * LastError contains the last error (if any) of the query. - * LastError is cleared by Execute(), Row(), Rows(), One(), and All(). - */ - lastError: Error - /** - * LogFunc is used to log the SQL statement being executed. - */ - logFunc: LogFunc - /** - * PerfFunc is used to log the SQL execution time. It is ignored if nil. - * Deprecated: Please use QueryLogFunc and ExecLogFunc instead. - */ - perfFunc: PerfFunc - /** - * QueryLogFunc is called each time when performing a SQL query that returns data. - */ - queryLogFunc: QueryLogFunc - /** - * ExecLogFunc is called each time when a SQL statement is executed. - */ - execLogFunc: ExecLogFunc - } - interface newQuery { - /** - * NewQuery creates a new Query with the given SQL statement. - */ - (db: DB, executor: Executor, sql: string): (Query) - } - interface Query { - /** - * SQL returns the original SQL used to create the query. - * The actual SQL (RawSQL) being executed is obtained by replacing the named - * parameter placeholders with anonymous ones. - */ - sql(): string - } - interface Query { - /** - * Context returns the context associated with the query. - */ - context(): context.Context - } - interface Query { - /** - * WithContext associates a context with the query. - */ - withContext(ctx: context.Context): (Query) - } - interface Query { - /** - * WithExecHook associates the provided exec hook function with the query. - * - * It is called for every Query resolver (Execute(), One(), All(), Row(), Column()), - * allowing you to implement auto fail/retry or any other additional handling. - */ - withExecHook(fn: ExecHookFunc): (Query) - } - interface Query { - /** - * WithOneHook associates the provided hook function with the query, - * called on q.One(), allowing you to implement custom struct scan based - * on the One() argument and/or result. - */ - withOneHook(fn: OneHookFunc): (Query) - } - interface Query { - /** - * WithOneHook associates the provided hook function with the query, - * called on q.All(), allowing you to implement custom slice scan based - * on the All() argument and/or result. - */ - withAllHook(fn: AllHookFunc): (Query) - } - interface Query { - /** - * Params returns the parameters to be bound to the SQL statement represented by this query. - */ - params(): Params - } - interface Query { - /** - * Prepare creates a prepared statement for later queries or executions. - * Close() should be called after finishing all queries. - */ - prepare(): (Query) - } - interface Query { - /** - * Close closes the underlying prepared statement. - * Close does nothing if the query has not been prepared before. - */ - close(): void - } - interface Query { - /** - * Bind sets the parameters that should be bound to the SQL statement. - * The parameter placeholders in the SQL statement are in the format of "{:ParamName}". - */ - bind(params: Params): (Query) - } - interface Query { - /** - * Execute executes the SQL statement without retrieving data. - */ - execute(): sql.Result - } - interface Query { - /** - * One executes the SQL statement and populates the first row of the result into a struct or NullStringMap. - * Refer to Rows.ScanStruct() and Rows.ScanMap() for more details on how to specify - * the variable to be populated. - * Note that when the query has no rows in the result set, an sql.ErrNoRows will be returned. - */ - one(a: { - }): void - } - interface Query { - /** - * All executes the SQL statement and populates all the resulting rows into a slice of struct or NullStringMap. - * The slice must be given as a pointer. Each slice element must be either a struct or a NullStringMap. - * Refer to Rows.ScanStruct() and Rows.ScanMap() for more details on how each slice element can be. - * If the query returns no row, the slice will be an empty slice (not nil). - */ - all(slice: { - }): void - } - interface Query { - /** - * Row executes the SQL statement and populates the first row of the result into a list of variables. - * Note that the number of the variables should match to that of the columns in the query result. - * Note that when the query has no rows in the result set, an sql.ErrNoRows will be returned. - */ - row(...a: { - }[]): void - } - interface Query { - /** - * Column executes the SQL statement and populates the first column of the result into a slice. - * Note that the parameter must be a pointer to a slice. - */ - column(a: { - }): void - } - interface Query { - /** - * Rows executes the SQL statement and returns a Rows object to allow retrieving data row by row. - */ - rows(): (Rows) - } - /** - * QueryBuilder builds different clauses for a SELECT SQL statement. - */ - interface QueryBuilder { - [key:string]: any; - /** - * BuildSelect generates a SELECT clause from the given selected column names. - */ - buildSelect(cols: Array, distinct: boolean, option: string): string - /** - * BuildFrom generates a FROM clause from the given tables. - */ - buildFrom(tables: Array): string - /** - * BuildGroupBy generates a GROUP BY clause from the given group-by columns. - */ - buildGroupBy(cols: Array): string - /** - * BuildJoin generates a JOIN clause from the given join information. - */ - buildJoin(_arg0: Array, _arg1: Params): string - /** - * BuildWhere generates a WHERE clause from the given expression. - */ - buildWhere(_arg0: Expression, _arg1: Params): string - /** - * BuildHaving generates a HAVING clause from the given expression. - */ - buildHaving(_arg0: Expression, _arg1: Params): string - /** - * BuildOrderByAndLimit generates the ORDER BY and LIMIT clauses. - */ - buildOrderByAndLimit(_arg0: string, _arg1: Array, _arg2: number, _arg3: number): string - /** - * BuildUnion generates a UNION clause from the given union information. - */ - buildUnion(_arg0: Array, _arg1: Params): string - } - /** - * BaseQueryBuilder provides a basic implementation of QueryBuilder. - */ - interface BaseQueryBuilder { - } - interface newBaseQueryBuilder { - /** - * NewBaseQueryBuilder creates a new BaseQueryBuilder instance. - */ - (db: DB): (BaseQueryBuilder) - } - interface BaseQueryBuilder { - /** - * DB returns the DB instance associated with the query builder. - */ - db(): (DB) - } - interface BaseQueryBuilder { - /** - * BuildSelect generates a SELECT clause from the given selected column names. - */ - buildSelect(cols: Array, distinct: boolean, option: string): string - } - interface BaseQueryBuilder { - /** - * BuildFrom generates a FROM clause from the given tables. - */ - buildFrom(tables: Array): string - } - interface BaseQueryBuilder { - /** - * BuildJoin generates a JOIN clause from the given join information. - */ - buildJoin(joins: Array, params: Params): string - } - interface BaseQueryBuilder { - /** - * BuildWhere generates a WHERE clause from the given expression. - */ - buildWhere(e: Expression, params: Params): string - } - interface BaseQueryBuilder { - /** - * BuildHaving generates a HAVING clause from the given expression. - */ - buildHaving(e: Expression, params: Params): string - } - interface BaseQueryBuilder { - /** - * BuildGroupBy generates a GROUP BY clause from the given group-by columns. - */ - buildGroupBy(cols: Array): string - } - interface BaseQueryBuilder { - /** - * BuildOrderByAndLimit generates the ORDER BY and LIMIT clauses. - */ - buildOrderByAndLimit(sql: string, cols: Array, limit: number, offset: number): string - } - interface BaseQueryBuilder { - /** - * BuildUnion generates a UNION clause from the given union information. - */ - buildUnion(unions: Array, params: Params): string - } - interface BaseQueryBuilder { - /** - * BuildOrderBy generates the ORDER BY clause. - */ - buildOrderBy(cols: Array): string - } - interface BaseQueryBuilder { - /** - * BuildLimit generates the LIMIT clause. - */ - buildLimit(limit: number, offset: number): string - } - /** - * VarTypeError indicates a variable type error when trying to populating a variable with DB result. - */ - interface VarTypeError extends String{} - interface VarTypeError { - /** - * Error returns the error message. - */ - error(): string - } - /** - * NullStringMap is a map of sql.NullString that can be used to hold DB query result. - * The map keys correspond to the DB column names, while the map values are their corresponding column values. - */ - interface NullStringMap extends _TygojaDict{} - /** - * Rows enhances sql.Rows by providing additional data query methods. - * Rows can be obtained by calling Query.Rows(). It is mainly used to populate data row by row. - */ - type _scDwQDq = sql.Rows - interface Rows extends _scDwQDq { - } - interface Rows { - /** - * ScanMap populates the current row of data into a NullStringMap. - * Note that the NullStringMap must not be nil, or it will panic. - * The NullStringMap will be populated using column names as keys and their values as - * the corresponding element values. - */ - scanMap(a: NullStringMap): void - } - interface Rows { - /** - * ScanStruct populates the current row of data into a struct. - * The struct must be given as a pointer. - * - * ScanStruct associates struct fields with DB table columns through a field mapping function. - * It populates a struct field with the data of its associated column. - * Note that only exported struct fields will be populated. - * - * By default, DefaultFieldMapFunc() is used to map struct fields to table columns. - * This function separates each word in a field name with a underscore and turns every letter into lower case. - * For example, "LastName" is mapped to "last_name", "MyID" is mapped to "my_id", and so on. - * To change the default behavior, set DB.FieldMapper with your custom mapping function. - * You may also set Query.FieldMapper to change the behavior for particular queries. - */ - scanStruct(a: { - }): void - } - /** - * BuildHookFunc defines a callback function that is executed on Query creation. - */ - interface BuildHookFunc {(q: Query): void } - /** - * SelectQuery represents a DB-agnostic SELECT query. - * It can be built into a DB-specific query by calling the Build() method. - */ - interface SelectQuery { - /** - * FieldMapper maps struct field names to DB column names. - */ - fieldMapper: FieldMapFunc - /** - * TableMapper maps structs to DB table names. - */ - tableMapper: TableMapFunc - } - /** - * JoinInfo contains the specification for a JOIN clause. - */ - interface JoinInfo { - join: string - table: string - on: Expression - } - /** - * UnionInfo contains the specification for a UNION clause. - */ - interface UnionInfo { - all: boolean - query?: Query - } - interface newSelectQuery { - /** - * NewSelectQuery creates a new SelectQuery instance. - */ - (builder: Builder, db: DB): (SelectQuery) - } - interface SelectQuery { - /** - * WithBuildHook runs the provided hook function with the query created on Build(). - */ - withBuildHook(fn: BuildHookFunc): (SelectQuery) - } - interface SelectQuery { - /** - * Context returns the context associated with the query. - */ - context(): context.Context - } - interface SelectQuery { - /** - * WithContext associates a context with the query. - */ - withContext(ctx: context.Context): (SelectQuery) - } - interface SelectQuery { - /** - * PreFragment sets SQL fragment that should be prepended before the select query (e.g. WITH clause). - */ - preFragment(fragment: string): (SelectQuery) - } - interface SelectQuery { - /** - * PostFragment sets SQL fragment that should be appended at the end of the select query. - */ - postFragment(fragment: string): (SelectQuery) - } - interface SelectQuery { - /** - * Select specifies the columns to be selected. - * Column names will be automatically quoted. - */ - select(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * AndSelect adds additional columns to be selected. - * Column names will be automatically quoted. - */ - andSelect(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * Distinct specifies whether to select columns distinctively. - * By default, distinct is false. - */ - distinct(v: boolean): (SelectQuery) - } - interface SelectQuery { - /** - * SelectOption specifies additional option that should be append to "SELECT". - */ - selectOption(option: string): (SelectQuery) - } - interface SelectQuery { - /** - * From specifies which tables to select from. - * Table names will be automatically quoted. - */ - from(...tables: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * Where specifies the WHERE condition. - */ - where(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * AndWhere concatenates a new WHERE condition with the existing one (if any) using "AND". - */ - andWhere(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * OrWhere concatenates a new WHERE condition with the existing one (if any) using "OR". - */ - orWhere(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * Join specifies a JOIN clause. - * The "typ" parameter specifies the JOIN type (e.g. "INNER JOIN", "LEFT JOIN"). - */ - join(typ: string, table: string, on: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * InnerJoin specifies an INNER JOIN clause. - * This is a shortcut method for Join. - */ - innerJoin(table: string, on: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * LeftJoin specifies a LEFT JOIN clause. - * This is a shortcut method for Join. - */ - leftJoin(table: string, on: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * RightJoin specifies a RIGHT JOIN clause. - * This is a shortcut method for Join. - */ - rightJoin(table: string, on: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * OrderBy specifies the ORDER BY clause. - * Column names will be properly quoted. A column name can contain "ASC" or "DESC" to indicate its ordering direction. - */ - orderBy(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * AndOrderBy appends additional columns to the existing ORDER BY clause. - * Column names will be properly quoted. A column name can contain "ASC" or "DESC" to indicate its ordering direction. - */ - andOrderBy(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * GroupBy specifies the GROUP BY clause. - * Column names will be properly quoted. - */ - groupBy(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * AndGroupBy appends additional columns to the existing GROUP BY clause. - * Column names will be properly quoted. - */ - andGroupBy(...cols: string[]): (SelectQuery) - } - interface SelectQuery { - /** - * Having specifies the HAVING clause. - */ - having(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * AndHaving concatenates a new HAVING condition with the existing one (if any) using "AND". - */ - andHaving(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * OrHaving concatenates a new HAVING condition with the existing one (if any) using "OR". - */ - orHaving(e: Expression): (SelectQuery) - } - interface SelectQuery { - /** - * Union specifies a UNION clause. - */ - union(q: Query): (SelectQuery) - } - interface SelectQuery { - /** - * UnionAll specifies a UNION ALL clause. - */ - unionAll(q: Query): (SelectQuery) - } - interface SelectQuery { - /** - * Limit specifies the LIMIT clause. - * A negative limit means no limit. - */ - limit(limit: number): (SelectQuery) - } - interface SelectQuery { - /** - * Offset specifies the OFFSET clause. - * A negative offset means no offset. - */ - offset(offset: number): (SelectQuery) - } - interface SelectQuery { - /** - * Bind specifies the parameter values to be bound to the query. - */ - bind(params: Params): (SelectQuery) - } - interface SelectQuery { - /** - * AndBind appends additional parameters to be bound to the query. - */ - andBind(params: Params): (SelectQuery) - } - interface SelectQuery { - /** - * Build builds the SELECT query and returns an executable Query object. - */ - build(): (Query) - } - interface SelectQuery { - /** - * One executes the SELECT query and populates the first row of the result into the specified variable. - * - * If the query does not specify a "from" clause, the method will try to infer the name of the table - * to be selected from by calling getTableName() which will return either the variable type name - * or the TableName() method if the variable implements the TableModel interface. - * - * Note that when the query has no rows in the result set, an sql.ErrNoRows will be returned. - */ - one(a: { - }): void - } - interface SelectQuery { - /** - * Model selects the row with the specified primary key and populates the model with the row data. - * - * The model variable should be a pointer to a struct. If the query does not specify a "from" clause, - * it will use the model struct to determine which table to select data from. It will also use the model - * to infer the name of the primary key column. Only simple primary key is supported. For composite primary keys, - * please use Where() to specify the filtering condition. - */ - model(pk: { - }, model: { - }): void - } - interface SelectQuery { - /** - * All executes the SELECT query and populates all rows of the result into a slice. - * - * Note that the slice must be passed in as a pointer. - * - * If the query does not specify a "from" clause, the method will try to infer the name of the table - * to be selected from by calling getTableName() which will return either the type name of the slice elements - * or the TableName() method if the slice element implements the TableModel interface. - */ - all(slice: { - }): void - } - interface SelectQuery { - /** - * Rows builds and executes the SELECT query and returns a Rows object for data retrieval purpose. - * This is a shortcut to SelectQuery.Build().Rows() - */ - rows(): (Rows) - } - interface SelectQuery { - /** - * Row builds and executes the SELECT query and populates the first row of the result into the specified variables. - * This is a shortcut to SelectQuery.Build().Row() - */ - row(...a: { - }[]): void - } - interface SelectQuery { - /** - * Column builds and executes the SELECT statement and populates the first column of the result into a slice. - * Note that the parameter must be a pointer to a slice. - * This is a shortcut to SelectQuery.Build().Column() - */ - column(a: { - }): void - } - /** - * QueryInfo represents a debug/info struct with exported SelectQuery fields. - */ - interface QueryInfo { - preFragment: string - postFragment: string - builder: Builder - selects: Array - distinct: boolean - selectOption: string - from: Array - where: Expression - join: Array - orderBy: Array - groupBy: Array - having: Expression - union: Array - limit: number - offset: number - params: Params - context: context.Context - buildHook: BuildHookFunc - } - interface SelectQuery { - /** - * Info exports common SelectQuery fields allowing to inspect the - * current select query options. - */ - info(): (QueryInfo) - } - /** - * FieldMapFunc converts a struct field name into a DB column name. - */ - interface FieldMapFunc {(_arg0: string): string } - /** - * TableMapFunc converts a sample struct into a DB table name. - */ - interface TableMapFunc {(a: { - }): string } - interface structInfo { - } - type _smjtWVp = structInfo - interface structValue extends _smjtWVp { - } - interface fieldInfo { - } - interface structInfoMapKey { - } - /** - * PostScanner is an optional interface used by ScanStruct. - */ - interface PostScanner { - [key:string]: any; - /** - * PostScan executes right after the struct has been populated - * with the DB values, allowing you to further normalize or validate - * the loaded data. - */ - postScan(): void - } - interface defaultFieldMapFunc { - /** - * DefaultFieldMapFunc maps a field name to a DB column name. - * The mapping rule set by this method is that words in a field name will be separated by underscores - * and the name will be turned into lower case. For example, "FirstName" maps to "first_name", and "MyID" becomes "my_id". - * See DB.FieldMapper for more details. - */ - (f: string): string - } - interface getTableName { - /** - * GetTableName implements the default way of determining the table name corresponding to the given model struct - * or slice of structs. To get the actual table name for a model, you should use DB.TableMapFunc() instead. - * Do not call this method in a model's TableName() method because it will cause infinite loop. - */ - (a: { - }): string - } - /** - * Tx enhances sql.Tx with additional querying methods. - */ - type _sJnbhAq = Builder - interface Tx extends _sJnbhAq { - } - interface Tx { - /** - * Commit commits the transaction. - */ - commit(): void - } - interface Tx { - /** - * Rollback aborts the transaction. - */ - rollback(): void - } -} - -namespace security { - interface s256Challenge { - /** - * S256Challenge creates base64 encoded sha256 challenge string derived from code. - * The padding of the result base64 string is stripped per [RFC 7636]. - * - * [RFC 7636]: https://datatracker.ietf.org/doc/html/rfc7636#section-4.2 - */ - (code: string): string - } - interface md5 { - /** - * MD5 creates md5 hash from the provided plain text. - */ - (text: string): string - } - interface sha256 { - /** - * SHA256 creates sha256 hash as defined in FIPS 180-4 from the provided text. - */ - (text: string): string - } - interface sha512 { - /** - * SHA512 creates sha512 hash as defined in FIPS 180-4 from the provided text. - */ - (text: string): string - } - interface hs256 { - /** - * HS256 creates a HMAC hash with sha256 digest algorithm. - */ - (text: string, secret: string): string - } - interface hs512 { - /** - * HS512 creates a HMAC hash with sha512 digest algorithm. - */ - (text: string, secret: string): string - } - interface equal { - /** - * Equal compares two hash strings for equality without leaking timing information. - */ - (hash1: string, hash2: string): boolean - } - // @ts-ignore - import crand = rand - interface encrypt { - /** - * Encrypt encrypts "data" with the specified "key" (must be valid 32 char AES key). - * - * This method uses AES-256-GCM block cypher mode. - */ - (data: string|Array, key: string): string - } - interface decrypt { - /** - * Decrypt decrypts encrypted text with key (must be valid 32 chars AES key). - * - * This method uses AES-256-GCM block cypher mode. - */ - (cipherText: string, key: string): string|Array - } - interface parseUnverifiedJWT { - /** - * ParseUnverifiedJWT parses JWT and returns its claims - * but DOES NOT verify the signature. - * - * It verifies only the exp, iat and nbf claims. - */ - (token: string): jwt.MapClaims - } - interface parseJWT { - /** - * ParseJWT verifies and parses JWT and returns its claims. - */ - (token: string, verificationKey: string): jwt.MapClaims - } - interface newJWT { - /** - * NewJWT generates and returns new HS256 signed JWT. - */ - (payload: jwt.MapClaims, signingKey: string, duration: time.Duration): string - } - // @ts-ignore - import cryptoRand = rand - // @ts-ignore - import mathRand = rand - interface randomString { - /** - * RandomString generates a cryptographically random string with the specified length. - * - * The generated string matches [A-Za-z0-9]+ and it's transparent to URL-encoding. - */ - (length: number): string - } - interface randomStringWithAlphabet { - /** - * RandomStringWithAlphabet generates a cryptographically random string - * with the specified length and characters set. - * - * It panics if for some reason rand.Int returns a non-nil error. - */ - (length: number, alphabet: string): string - } - interface pseudorandomString { - /** - * PseudorandomString generates a pseudorandom string with the specified length. - * - * The generated string matches [A-Za-z0-9]+ and it's transparent to URL-encoding. - * - * For a cryptographically random string (but a little bit slower) use RandomString instead. - */ - (length: number): string - } - interface pseudorandomStringWithAlphabet { - /** - * PseudorandomStringWithAlphabet generates a pseudorandom string - * with the specified length and characters set. - * - * For a cryptographically random (but a little bit slower) use RandomStringWithAlphabet instead. - */ - (length: number, alphabet: string): string - } - interface randomStringByRegex { - /** - * RandomStringByRegex generates a random string matching the regex pattern. - * If optFlags is not set, fallbacks to [syntax.Perl]. - * - * NB! While the source of the randomness comes from [crypto/rand] this method - * is not recommended to be used on its own in critical secure contexts because - * the generated length could vary too much on the used pattern and may not be - * as secure as simply calling [security.RandomString]. - * If you still insist on using it for such purposes, consider at least - * a large enough minimum length for the generated string, e.g. `[a-z0-9]{30}`. - * - * This function is inspired by github.com/pipe01/revregexp, github.com/lucasjones/reggen and other similar packages. - */ - (pattern: string, ...optFlags: syntax.Flags[]): string - } -} - -namespace filesystem { - /** - * FileReader defines an interface for a file resource reader. - */ - interface FileReader { - [key:string]: any; - open(): io.ReadSeekCloser - } - /** - * File defines a single file [io.ReadSeekCloser] resource. - * - * The file could be from a local path, multipart/form-data header, etc. - */ - interface File { - reader: FileReader - name: string - originalName: string - size: number - } - interface File { - /** - * AsMap implements [core.mapExtractor] and returns a value suitable - * to be used in an API rule expression. - */ - asMap(): _TygojaDict - } - interface newFileFromPath { - /** - * NewFileFromPath creates a new File instance from the provided local file path. - */ - (path: string): (File) - } - interface newFileFromBytes { - /** - * NewFileFromBytes creates a new File instance from the provided byte slice. - */ - (b: string|Array, name: string): (File) - } - interface newFileFromMultipart { - /** - * NewFileFromMultipart creates a new File from the provided multipart header. - */ - (mh: multipart.FileHeader): (File) - } - interface newFileFromURL { - /** - * NewFileFromURL creates a new File from the provided url by - * downloading the resource and load it as BytesReader. - * - * Example - * - * ``` - * ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - * defer cancel() - * - * file, err := filesystem.NewFileFromURL(ctx, "https://example.com/image.png") - * ``` - */ - (ctx: context.Context, url: string): (File) - } - /** - * MultipartReader defines a FileReader from [multipart.FileHeader]. - */ - interface MultipartReader { - header?: multipart.FileHeader - } - interface MultipartReader { - /** - * Open implements the [filesystem.FileReader] interface. - */ - open(): io.ReadSeekCloser - } - /** - * PathReader defines a FileReader from a local file path. - */ - interface PathReader { - path: string - } - interface PathReader { - /** - * Open implements the [filesystem.FileReader] interface. - */ - open(): io.ReadSeekCloser - } - /** - * BytesReader defines a FileReader from bytes content. - */ - interface BytesReader { - bytes: string|Array - } - interface BytesReader { - /** - * Open implements the [filesystem.FileReader] interface. - */ - open(): io.ReadSeekCloser - } - type _sQJTdxu = bytes.Reader - interface bytesReadSeekCloser extends _sQJTdxu { - } - interface bytesReadSeekCloser { - /** - * Close implements the [io.ReadSeekCloser] interface. - */ - close(): void - } - /** - * openFuncAsReader defines a FileReader from a bare Open function. - */ - interface openFuncAsReader {(): io.ReadSeekCloser } - interface openFuncAsReader { - /** - * Open implements the [filesystem.FileReader] interface. - */ - open(): io.ReadSeekCloser - } - interface System { - } - interface newS3 { - /** - * NewS3 initializes an S3 filesystem instance. - * - * NB! Make sure to call `Close()` after you are done working with it. - */ - (bucketName: string, region: string, endpoint: string, accessKey: string, secretKey: string, s3ForcePathStyle: boolean): (System) - } - interface newLocal { - /** - * NewLocal initializes a new local filesystem instance. - * - * NB! Make sure to call `Close()` after you are done working with it. - */ - (dirPath: string): (System) - } - interface System { - /** - * SetContext assigns the specified context to the current filesystem. - */ - setContext(ctx: context.Context): void - } - interface System { - /** - * Close releases any resources used for the related filesystem. - */ - close(): void - } - interface System { - /** - * Exists checks if file with fileKey path exists or not. - */ - exists(fileKey: string): boolean - } - interface System { - /** - * Attributes returns the attributes for the file with fileKey path. - * - * If the file doesn't exist it returns ErrNotFound. - */ - attributes(fileKey: string): (blob.Attributes) - } - interface System { - /** - * GetReader returns a file content reader for the given fileKey. - * - * NB! Make sure to call Close() on the file after you are done working with it. - * - * If the file doesn't exist returns ErrNotFound. - */ - getReader(fileKey: string): (blob.Reader) - } - interface System { - /** - * Deprecated: Please use GetReader(fileKey) instead. - */ - getFile(fileKey: string): (blob.Reader) - } - interface System { - /** - * GetReuploadableFile constructs a new reuploadable File value - * from the associated fileKey blob.Reader. - * - * If preserveName is false then the returned File.Name will have - * a new randomly generated suffix, otherwise it will reuse the original one. - * - * This method could be useful in case you want to clone an existing - * Record file and assign it to a new Record (e.g. in a Record duplicate action). - * - * If you simply want to copy an existing file to a new location you - * could check the Copy(srcKey, dstKey) method. - */ - getReuploadableFile(fileKey: string, preserveName: boolean): (File) - } - interface System { - /** - * Copy copies the file stored at srcKey to dstKey. - * - * If srcKey file doesn't exist, it returns ErrNotFound. - * - * If dstKey file already exists, it is overwritten. - */ - copy(srcKey: string, dstKey: string): void - } - interface System { - /** - * List returns a flat list with info for all files under the specified prefix. - */ - list(prefix: string): Array<(blob.ListObject | undefined)> - } - interface System { - /** - * Upload writes content into the fileKey location. - */ - upload(content: string|Array, fileKey: string): void - } - interface System { - /** - * UploadFile uploads the provided File to the fileKey location. - */ - uploadFile(file: File, fileKey: string): void - } - interface System { - /** - * UploadMultipart uploads the provided multipart file to the fileKey location. - */ - uploadMultipart(fh: multipart.FileHeader, fileKey: string): void - } - interface System { - /** - * Delete deletes stored file at fileKey location. - * - * If the file doesn't exist returns ErrNotFound. - */ - delete(fileKey: string): void - } - interface System { - /** - * DeletePrefix deletes everything starting with the specified prefix. - * - * The prefix could be subpath (ex. "/a/b/") or filename prefix (ex. "/a/b/file_"). - */ - deletePrefix(prefix: string): Array - } - interface System { - /** - * Checks if the provided dir prefix doesn't have any files. - * - * A trailing slash will be appended to a non-empty dir string argument - * to ensure that the checked prefix is a "directory". - * - * Returns "false" in case the has at least one file, otherwise - "true". - */ - isEmptyDir(dir: string): boolean - } - interface System { - /** - * Serve serves the file at fileKey location to an HTTP response. - * - * If the `download` query parameter is used the file will be always served for - * download no matter of its type (aka. with "Content-Disposition: attachment"). - * - * Internally this method uses [http.ServeContent] so Range requests, - * If-Match, If-Unmodified-Since, etc. headers are handled transparently. - */ - serve(res: http.ResponseWriter, req: http.Request, fileKey: string, name: string): void - } - interface System { - /** - * CreateThumb creates a new thumb image for the file at originalKey location. - * The new thumb file is stored at thumbKey location. - * - * thumbSize is in the format: - * - 0xH (eg. 0x100) - resize to H height preserving the aspect ratio - * - Wx0 (eg. 300x0) - resize to W width preserving the aspect ratio - * - WxH (eg. 300x100) - resize and crop to WxH viewbox (from center) - * - WxHt (eg. 300x100t) - resize and crop to WxH viewbox (from top) - * - WxHb (eg. 300x100b) - resize and crop to WxH viewbox (from bottom) - * - WxHf (eg. 300x100f) - fit inside a WxH viewbox (without cropping) - */ - createThumb(originalKey: string, thumbKey: string, thumbSize: string): void - } -} - -/** - * Package exec runs external commands. It wraps os.StartProcess to make it - * easier to remap stdin and stdout, connect I/O with pipes, and do other - * adjustments. - * - * Unlike the "system" library call from C and other languages, the - * os/exec package intentionally does not invoke the system shell and - * does not expand any glob patterns or handle other expansions, - * pipelines, or redirections typically done by shells. The package - * behaves more like C's "exec" family of functions. To expand glob - * patterns, either call the shell directly, taking care to escape any - * dangerous input, or use the [path/filepath] package's Glob function. - * To expand environment variables, use package os's ExpandEnv. - * - * Note that the examples in this package assume a Unix system. - * They may not run on Windows, and they do not run in the Go Playground - * used by golang.org and godoc.org. - * - * # Executables in the current directory - * - * The functions [Command] and [LookPath] look for a program - * in the directories listed in the current path, following the - * conventions of the host operating system. - * Operating systems have for decades included the current - * directory in this search, sometimes implicitly and sometimes - * configured explicitly that way by default. - * Modern practice is that including the current directory - * is usually unexpected and often leads to security problems. - * - * To avoid those security problems, as of Go 1.19, this package will not resolve a program - * using an implicit or explicit path entry relative to the current directory. - * That is, if you run [LookPath]("go"), it will not successfully return - * ./go on Unix nor .\go.exe on Windows, no matter how the path is configured. - * Instead, if the usual path algorithms would result in that answer, - * these functions return an error err satisfying [errors.Is](err, [ErrDot]). - * - * For example, consider these two program snippets: - * - * ``` - * path, err := exec.LookPath("prog") - * if err != nil { - * log.Fatal(err) - * } - * use(path) - * ``` - * - * and - * - * ``` - * cmd := exec.Command("prog") - * if err := cmd.Run(); err != nil { - * log.Fatal(err) - * } - * ``` - * - * These will not find and run ./prog or .\prog.exe, - * no matter how the current path is configured. - * - * Code that always wants to run a program from the current directory - * can be rewritten to say "./prog" instead of "prog". - * - * Code that insists on including results from relative path entries - * can instead override the error using an errors.Is check: - * - * ``` - * path, err := exec.LookPath("prog") - * if errors.Is(err, exec.ErrDot) { - * err = nil - * } - * if err != nil { - * log.Fatal(err) - * } - * use(path) - * ``` - * - * and - * - * ``` - * cmd := exec.Command("prog") - * if errors.Is(cmd.Err, exec.ErrDot) { - * cmd.Err = nil - * } - * if err := cmd.Run(); err != nil { - * log.Fatal(err) - * } - * ``` - * - * Setting the environment variable GODEBUG=execerrdot=0 - * disables generation of ErrDot entirely, temporarily restoring the pre-Go 1.19 - * behavior for programs that are unable to apply more targeted fixes. - * A future version of Go may remove support for this variable. - * - * Before adding such overrides, make sure you understand the - * security implications of doing so. - * See https://go.dev/blog/path-security for more information. - */ -namespace exec { - interface command { - /** - * Command returns the [Cmd] struct to execute the named program with - * the given arguments. - * - * It sets only the Path and Args in the returned structure. - * - * If name contains no path separators, Command uses [LookPath] to - * resolve name to a complete path if possible. Otherwise it uses name - * directly as Path. - * - * The returned Cmd's Args field is constructed from the command name - * followed by the elements of arg, so arg should not include the - * command name itself. For example, Command("echo", "hello"). - * Args[0] is always name, not the possibly resolved Path. - * - * On Windows, processes receive the whole command line as a single string - * and do their own parsing. Command combines and quotes Args into a command - * line string with an algorithm compatible with applications using - * CommandLineToArgvW (which is the most common way). Notable exceptions are - * msiexec.exe and cmd.exe (and thus, all batch files), which have a different - * unquoting algorithm. In these or other similar cases, you can do the - * quoting yourself and provide the full command line in SysProcAttr.CmdLine, - * leaving Args empty. - */ - (name: string, ...arg: string[]): (Cmd) - } -} - -/** - * Package core is the backbone of PocketBase. - * - * It defines the main PocketBase App interface and its base implementation. - */ -namespace core { - /** - * App defines the main PocketBase app interface. - * - * Note that the interface is not intended to be implemented manually by users - * and instead they should use core.BaseApp (either directly or as embedded field in a custom struct). - * - * This interface exists to make testing easier and to allow users to - * create common and pluggable helpers and methods that doesn't rely - * on a specific wrapped app struct (hence the large interface size). - */ - interface App { - [key:string]: any; - /** - * UnsafeWithoutHooks returns a shallow copy of the current app WITHOUT any registered hooks. - * - * NB! Note that using the returned app instance may cause data integrity errors - * since the Record validations and data normalizations (including files uploads) - * rely on the app hooks to work. - */ - unsafeWithoutHooks(): App - /** - * Logger returns the default app logger. - * - * If the application is not bootstrapped yet, fallbacks to slog.Default(). - */ - logger(): (slog.Logger) - /** - * IsBootstrapped checks if the application was initialized - * (aka. whether Bootstrap() was called). - */ - isBootstrapped(): boolean - /** - * IsTransactional checks if the current app instance is part of a transaction. - */ - isTransactional(): boolean - /** - * TxInfo returns the transaction associated with the current app instance (if any). - * - * Could be used if you want to execute indirectly a function after - * the related app transaction completes using `app.TxInfo().OnAfterFunc(callback)`. - */ - txInfo(): (TxAppInfo) - /** - * Bootstrap initializes the application - * (aka. create data dir, open db connections, load settings, etc.). - * - * It will call ResetBootstrapState() if the application was already bootstrapped. - */ - bootstrap(): void - /** - * ResetBootstrapState releases the initialized core app resources - * (closing db connections, stopping cron ticker, etc.). - */ - resetBootstrapState(): void - /** - * DataDir returns the app data directory path. - */ - dataDir(): string - /** - * EncryptionEnv returns the name of the app secret env key - * (currently used primarily for optional settings encryption but this may change in the future). - */ - encryptionEnv(): string - /** - * IsDev returns whether the app is in dev mode. - * - * When enabled logs, executed sql statements, etc. are printed to the stderr. - */ - isDev(): boolean - /** - * Settings returns the loaded app settings. - */ - settings(): (Settings) - /** - * Store returns the app runtime store. - */ - store(): (store.Store) - /** - * Cron returns the app cron instance. - */ - cron(): (cron.Cron) - /** - * SubscriptionsBroker returns the app realtime subscriptions broker instance. - */ - subscriptionsBroker(): (subscriptions.Broker) - /** - * NewMailClient creates and returns a new SMTP or Sendmail client - * based on the current app settings. - */ - newMailClient(): mailer.Mailer - /** - * NewFilesystem creates a new local or S3 filesystem instance - * for managing regular app files (ex. record uploads) - * based on the current app settings. - * - * NB! Make sure to call Close() on the returned result - * after you are done working with it. - */ - newFilesystem(): (filesystem.System) - /** - * NewBackupsFilesystem creates a new local or S3 filesystem instance - * for managing app backups based on the current app settings. - * - * NB! Make sure to call Close() on the returned result - * after you are done working with it. - */ - newBackupsFilesystem(): (filesystem.System) - /** - * ReloadSettings reinitializes and reloads the stored application settings. - */ - reloadSettings(): void - /** - * CreateBackup creates a new backup of the current app pb_data directory. - * - * Backups can be stored on S3 if it is configured in app.Settings().Backups. - * - * Please refer to the godoc of the specific CoreApp implementation - * for details on the backup procedures. - */ - createBackup(ctx: context.Context, name: string): void - /** - * RestoreBackup restores the backup with the specified name and restarts - * the current running application process. - * - * The safely perform the restore it is recommended to have free disk space - * for at least 2x the size of the restored pb_data backup. - * - * Please refer to the godoc of the specific CoreApp implementation - * for details on the restore procedures. - * - * NB! This feature is experimental and currently is expected to work only on UNIX based systems. - */ - restoreBackup(ctx: context.Context, name: string): void - /** - * Restart restarts (aka. replaces) the current running application process. - * - * NB! It relies on execve which is supported only on UNIX based systems. - */ - restart(): void - /** - * RunSystemMigrations applies all new migrations registered in the [core.SystemMigrations] list. - */ - runSystemMigrations(): void - /** - * RunAppMigrations applies all new migrations registered in the [CoreAppMigrations] list. - */ - runAppMigrations(): void - /** - * RunAllMigrations applies all system and app migrations - * (aka. from both [core.SystemMigrations] and [CoreAppMigrations]). - */ - runAllMigrations(): void - /** - * DB returns the default app data.db builder instance. - * - * To minimize SQLITE_BUSY errors, it automatically routes the - * SELECT queries to the underlying concurrent db pool and everything else - * to the nonconcurrent one. - * - * For more finer control over the used connections pools you can - * call directly ConcurrentDB() or NonconcurrentDB(). - */ - db(): dbx.Builder - /** - * ConcurrentDB returns the concurrent app data.db builder instance. - * - * This method is used mainly internally for executing db read - * operations in a concurrent/non-blocking manner. - * - * Most users should use simply DB() as it will automatically - * route the query execution to ConcurrentDB() or NonconcurrentDB(). - * - * In a transaction the ConcurrentDB() and NonconcurrentDB() refer to the same *dbx.TX instance. - */ - concurrentDB(): dbx.Builder - /** - * NonconcurrentDB returns the nonconcurrent app data.db builder instance. - * - * The returned db instance is limited only to a single open connection, - * meaning that it can process only 1 db operation at a time (other queries queue up). - * - * This method is used mainly internally and in the tests to execute write - * (save/delete) db operations as it helps with minimizing the SQLITE_BUSY errors. - * - * Most users should use simply DB() as it will automatically - * route the query execution to ConcurrentDB() or NonconcurrentDB(). - * - * In a transaction the ConcurrentDB() and NonconcurrentDB() refer to the same *dbx.TX instance. - */ - nonconcurrentDB(): dbx.Builder - /** - * AuxDB returns the app auxiliary.db builder instance. - * - * To minimize SQLITE_BUSY errors, it automatically routes the - * SELECT queries to the underlying concurrent db pool and everything else - * to the nonconcurrent one. - * - * For more finer control over the used connections pools you can - * call directly AuxConcurrentDB() or AuxNonconcurrentDB(). - */ - auxDB(): dbx.Builder - /** - * AuxConcurrentDB returns the concurrent app auxiliary.db builder instance. - * - * This method is used mainly internally for executing db read - * operations in a concurrent/non-blocking manner. - * - * Most users should use simply AuxDB() as it will automatically - * route the query execution to AuxConcurrentDB() or AuxNonconcurrentDB(). - * - * In a transaction the AuxConcurrentDB() and AuxNonconcurrentDB() refer to the same *dbx.TX instance. - */ - auxConcurrentDB(): dbx.Builder - /** - * AuxNonconcurrentDB returns the nonconcurrent app auxiliary.db builder instance. - * - * The returned db instance is limited only to a single open connection, - * meaning that it can process only 1 db operation at a time (other queries queue up). - * - * This method is used mainly internally and in the tests to execute write - * (save/delete) db operations as it helps with minimizing the SQLITE_BUSY errors. - * - * Most users should use simply AuxDB() as it will automatically - * route the query execution to AuxConcurrentDB() or AuxNonconcurrentDB(). - * - * In a transaction the AuxConcurrentDB() and AuxNonconcurrentDB() refer to the same *dbx.TX instance. - */ - auxNonconcurrentDB(): dbx.Builder - /** - * HasTable checks if a table (or view) with the provided name exists (case insensitive). - * in the data.db. - */ - hasTable(tableName: string): boolean - /** - * AuxHasTable checks if a table (or view) with the provided name exists (case insensitive) - * in the auxiliary.db. - */ - auxHasTable(tableName: string): boolean - /** - * TableColumns returns all column names of a single table by its name. - */ - tableColumns(tableName: string): Array - /** - * TableInfo returns the "table_info" pragma result for the specified table. - */ - tableInfo(tableName: string): Array<(TableInfoRow | undefined)> - /** - * TableIndexes returns a name grouped map with all non empty index of the specified table. - * - * Note: This method doesn't return an error on nonexisting table. - */ - tableIndexes(tableName: string): _TygojaDict - /** - * DeleteTable drops the specified table. - * - * This method is a no-op if a table with the provided name doesn't exist. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "tableName" argument must come only from trusted input! - */ - deleteTable(tableName: string): void - /** - * DeleteView drops the specified view name. - * - * This method is a no-op if a view with the provided name doesn't exist. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "name" argument must come only from trusted input! - */ - deleteView(name: string): void - /** - * SaveView creates (or updates already existing) persistent SQL view. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "selectQuery" argument must come only from trusted input! - */ - saveView(name: string, selectQuery: string): void - /** - * CreateViewFields creates a new FieldsList from the provided select query. - * - * There are some caveats: - * - The select query must have an "id" column. - * - Wildcard ("*") columns are not supported to avoid accidentally leaking sensitive data. - */ - createViewFields(selectQuery: string): FieldsList - /** - * FindRecordByViewFile returns the original Record of the provided view collection file. - */ - findRecordByViewFile(viewCollectionModelOrIdentifier: any, fileFieldName: string, filename: string): (Record) - /** - * Vacuum executes VACUUM on the data.db in order to reclaim unused data db disk space. - */ - vacuum(): void - /** - * AuxVacuum executes VACUUM on the auxiliary.db in order to reclaim unused auxiliary db disk space. - */ - auxVacuum(): void - /** - * ModelQuery creates a new preconfigured select data.db query with preset - * SELECT, FROM and other common fields based on the provided model. - */ - modelQuery(model: Model): (dbx.SelectQuery) - /** - * AuxModelQuery creates a new preconfigured select auxiliary.db query with preset - * SELECT, FROM and other common fields based on the provided model. - */ - auxModelQuery(model: Model): (dbx.SelectQuery) - /** - * Delete deletes the specified model from the regular app database. - */ - delete(model: Model): void - /** - * Delete deletes the specified model from the regular app database - * (the context could be used to limit the query execution). - */ - deleteWithContext(ctx: context.Context, model: Model): void - /** - * AuxDelete deletes the specified model from the auxiliary database. - */ - auxDelete(model: Model): void - /** - * AuxDeleteWithContext deletes the specified model from the auxiliary database - * (the context could be used to limit the query execution). - */ - auxDeleteWithContext(ctx: context.Context, model: Model): void - /** - * Save validates and saves the specified model into the regular app database. - * - * If you don't want to run validations, use [App.SaveNoValidate()]. - */ - save(model: Model): void - /** - * SaveWithContext is the same as [App.Save()] but allows specifying a context to limit the db execution. - * - * If you don't want to run validations, use [App.SaveNoValidateWithContext()]. - */ - saveWithContext(ctx: context.Context, model: Model): void - /** - * SaveNoValidate saves the specified model into the regular app database without performing validations. - * - * If you want to also run validations before persisting, use [App.Save()]. - */ - saveNoValidate(model: Model): void - /** - * SaveNoValidateWithContext is the same as [App.SaveNoValidate()] - * but allows specifying a context to limit the db execution. - * - * If you want to also run validations before persisting, use [App.SaveWithContext()]. - */ - saveNoValidateWithContext(ctx: context.Context, model: Model): void - /** - * AuxSave validates and saves the specified model into the auxiliary app database. - * - * If you don't want to run validations, use [App.AuxSaveNoValidate()]. - */ - auxSave(model: Model): void - /** - * AuxSaveWithContext is the same as [App.AuxSave()] but allows specifying a context to limit the db execution. - * - * If you don't want to run validations, use [App.AuxSaveNoValidateWithContext()]. - */ - auxSaveWithContext(ctx: context.Context, model: Model): void - /** - * AuxSaveNoValidate saves the specified model into the auxiliary app database without performing validations. - * - * If you want to also run validations before persisting, use [App.AuxSave()]. - */ - auxSaveNoValidate(model: Model): void - /** - * AuxSaveNoValidateWithContext is the same as [App.AuxSaveNoValidate()] - * but allows specifying a context to limit the db execution. - * - * If you want to also run validations before persisting, use [App.AuxSaveWithContext()]. - */ - auxSaveNoValidateWithContext(ctx: context.Context, model: Model): void - /** - * Validate triggers the OnModelValidate hook for the specified model. - */ - validate(model: Model): void - /** - * ValidateWithContext is the same as Validate but allows specifying the ModelEvent context. - */ - validateWithContext(ctx: context.Context, model: Model): void - /** - * RunInTransaction wraps fn into a transaction for the regular app database. - * - * It is safe to nest RunInTransaction calls as long as you use the callback's txApp. - */ - runInTransaction(fn: (txApp: App) => void): void - /** - * AuxRunInTransaction wraps fn into a transaction for the auxiliary app database. - * - * It is safe to nest RunInTransaction calls as long as you use the callback's txApp. - */ - auxRunInTransaction(fn: (txApp: App) => void): void - /** - * LogQuery returns a new Log select query. - */ - logQuery(): (dbx.SelectQuery) - /** - * FindLogById finds a single Log entry by its id. - */ - findLogById(id: string): (Log) - /** - * LogsStatsItem returns hourly grouped logs statistics. - */ - logsStats(expr: dbx.Expression): Array<(LogsStatsItem | undefined)> - /** - * DeleteOldLogs delete all logs that are created before createdBefore. - */ - deleteOldLogs(createdBefore: time.Time): void - /** - * CollectionQuery returns a new Collection select query. - */ - collectionQuery(): (dbx.SelectQuery) - /** - * FindCollections finds all collections by the given type(s). - * - * If collectionTypes is not set, it returns all collections. - * - * Example: - * - * ``` - * app.FindAllCollections() // all collections - * app.FindAllCollections("auth", "view") // only auth and view collections - * ``` - */ - findAllCollections(...collectionTypes: string[]): Array<(Collection | undefined)> - /** - * ReloadCachedCollections fetches all collections and caches them into the app store. - */ - reloadCachedCollections(): void - /** - * FindCollectionByNameOrId finds a single collection by its name (case insensitive) or id.s - */ - findCollectionByNameOrId(nameOrId: string): (Collection) - /** - * FindCachedCollectionByNameOrId is similar to [App.FindCollectionByNameOrId] - * but retrieves the Collection from the app cache instead of making a db call. - * - * NB! This method is suitable for read-only Collection operations. - * - * Returns [sql.ErrNoRows] if no Collection is found for consistency - * with the [App.FindCollectionByNameOrId] method. - * - * If you plan making changes to the returned Collection model, - * use [App.FindCollectionByNameOrId] instead. - * - * Caveats: - * - * ``` - * - The returned Collection should be used only for read-only operations. - * Avoid directly modifying the returned cached Collection as it will affect - * the global cached value even if you don't persist the changes in the database! - * - If you are updating a Collection in a transaction and then call this method before commit, - * it'll return the cached Collection state and not the one from the uncommitted transaction. - * - The cache is automatically updated on collections db change (create/update/delete). - * To manually reload the cache you can call [App.ReloadCachedCollections] - * ``` - */ - findCachedCollectionByNameOrId(nameOrId: string): (Collection) - /** - * FindCollectionReferences returns information for all relation - * fields referencing the provided collection. - * - * If the provided collection has reference to itself then it will be - * also included in the result. To exclude it, pass the collection id - * as the excludeIds argument. - */ - findCollectionReferences(collection: Collection, ...excludeIds: string[]): _TygojaDict - /** - * FindCachedCollectionReferences is similar to [App.FindCollectionReferences] - * but retrieves the Collection from the app cache instead of making a db call. - * - * NB! This method is suitable for read-only Collection operations. - * - * If you plan making changes to the returned Collection model, - * use [App.FindCollectionReferences] instead. - * - * Caveats: - * - * ``` - * - The returned Collection should be used only for read-only operations. - * Avoid directly modifying the returned cached Collection as it will affect - * the global cached value even if you don't persist the changes in the database! - * - If you are updating a Collection in a transaction and then call this method before commit, - * it'll return the cached Collection state and not the one from the uncommitted transaction. - * - The cache is automatically updated on collections db change (create/update/delete). - * To manually reload the cache you can call [App.ReloadCachedCollections]. - * ``` - */ - findCachedCollectionReferences(collection: Collection, ...excludeIds: string[]): _TygojaDict - /** - * IsCollectionNameUnique checks that there is no existing collection - * with the provided name (case insensitive!). - * - * Note: case insensitive check because the name is used also as - * table name for the records. - */ - isCollectionNameUnique(name: string, ...excludeIds: string[]): boolean - /** - * TruncateCollection deletes all records associated with the provided collection. - * - * The truncate operation is executed in a single transaction, - * aka. either everything is deleted or none. - * - * Note that this method will also trigger the records related - * cascade and file delete actions. - */ - truncateCollection(collection: Collection): void - /** - * ImportCollections imports the provided collections data in a single transaction. - * - * For existing matching collections, the imported data is unmarshaled on top of the existing model. - * - * NB! If deleteMissing is true, ALL NON-SYSTEM COLLECTIONS AND SCHEMA FIELDS, - * that are not present in the imported configuration, WILL BE DELETED - * (this includes their related records data). - */ - importCollections(toImport: Array<_TygojaDict>, deleteMissing: boolean): void - /** - * ImportCollectionsByMarshaledJSON is the same as [ImportCollections] - * but accept marshaled json array as import data (usually used for the autogenerated snapshots). - */ - importCollectionsByMarshaledJSON(rawSliceOfMaps: string|Array, deleteMissing: boolean): void - /** - * SyncRecordTableSchema compares the two provided collections - * and applies the necessary related record table changes. - * - * If oldCollection is null, then only newCollection is used to create the record table. - * - * This method is automatically invoked as part of a collection create/update/delete operation. - */ - syncRecordTableSchema(newCollection: Collection, oldCollection: Collection): void - /** - * FindAllExternalAuthsByRecord returns all ExternalAuth models - * linked to the provided auth record. - */ - findAllExternalAuthsByRecord(authRecord: Record): Array<(ExternalAuth | undefined)> - /** - * FindAllExternalAuthsByCollection returns all ExternalAuth models - * linked to the provided auth collection. - */ - findAllExternalAuthsByCollection(collection: Collection): Array<(ExternalAuth | undefined)> - /** - * FindFirstExternalAuthByExpr returns the first available (the most recent created) - * ExternalAuth model that satisfies the non-nil expression. - */ - findFirstExternalAuthByExpr(expr: dbx.Expression): (ExternalAuth) - /** - * FindAllMFAsByRecord returns all MFA models linked to the provided auth record. - */ - findAllMFAsByRecord(authRecord: Record): Array<(MFA | undefined)> - /** - * FindAllMFAsByCollection returns all MFA models linked to the provided collection. - */ - findAllMFAsByCollection(collection: Collection): Array<(MFA | undefined)> - /** - * FindMFAById returns a single MFA model by its id. - */ - findMFAById(id: string): (MFA) - /** - * DeleteAllMFAsByRecord deletes all MFA models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllMFAsByRecord(authRecord: Record): void - /** - * DeleteExpiredMFAs deletes the expired MFAs for all auth collections. - */ - deleteExpiredMFAs(): void - /** - * FindAllOTPsByRecord returns all OTP models linked to the provided auth record. - */ - findAllOTPsByRecord(authRecord: Record): Array<(OTP | undefined)> - /** - * FindAllOTPsByCollection returns all OTP models linked to the provided collection. - */ - findAllOTPsByCollection(collection: Collection): Array<(OTP | undefined)> - /** - * FindOTPById returns a single OTP model by its id. - */ - findOTPById(id: string): (OTP) - /** - * DeleteAllOTPsByRecord deletes all OTP models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllOTPsByRecord(authRecord: Record): void - /** - * DeleteExpiredOTPs deletes the expired OTPs for all auth collections. - */ - deleteExpiredOTPs(): void - /** - * FindAllAuthOriginsByRecord returns all AuthOrigin models linked to the provided auth record (in DESC order). - */ - findAllAuthOriginsByRecord(authRecord: Record): Array<(AuthOrigin | undefined)> - /** - * FindAllAuthOriginsByCollection returns all AuthOrigin models linked to the provided collection (in DESC order). - */ - findAllAuthOriginsByCollection(collection: Collection): Array<(AuthOrigin | undefined)> - /** - * FindAuthOriginById returns a single AuthOrigin model by its id. - */ - findAuthOriginById(id: string): (AuthOrigin) - /** - * FindAuthOriginByRecordAndFingerprint returns a single AuthOrigin model - * by its authRecord relation and fingerprint. - */ - findAuthOriginByRecordAndFingerprint(authRecord: Record, fingerprint: string): (AuthOrigin) - /** - * DeleteAllAuthOriginsByRecord deletes all AuthOrigin models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllAuthOriginsByRecord(authRecord: Record): void - /** - * RecordQuery returns a new Record select query from a collection model, id or name. - * - * In case a collection id or name is provided and that collection doesn't - * actually exists, the generated query will be created with a cancelled context - * and will fail once an executor (Row(), One(), All(), etc.) is called. - */ - recordQuery(collectionModelOrIdentifier: any): (dbx.SelectQuery) - /** - * FindRecordById finds the Record model by its id. - */ - findRecordById(collectionModelOrIdentifier: any, recordId: string, ...optFilters: ((q: dbx.SelectQuery) => void)[]): (Record) - /** - * FindRecordsByIds finds all records by the specified ids. - * If no records are found, returns an empty slice. - */ - findRecordsByIds(collectionModelOrIdentifier: any, recordIds: Array, ...optFilters: ((q: dbx.SelectQuery) => void)[]): Array<(Record | undefined)> - /** - * FindAllRecords finds all records matching specified db expressions. - * - * Returns all collection records if no expression is provided. - * - * Returns an empty slice if no records are found. - * - * Example: - * - * ``` - * // no extra expressions - * app.FindAllRecords("example") - * - * // with extra expressions - * expr1 := dbx.HashExp{"email": "test@example.com"} - * expr2 := dbx.NewExp("LOWER(username) = {:username}", dbx.Params{"username": "test"}) - * app.FindAllRecords("example", expr1, expr2) - * ``` - */ - findAllRecords(collectionModelOrIdentifier: any, ...exprs: dbx.Expression[]): Array<(Record | undefined)> - /** - * FindFirstRecordByData returns the first found record matching - * the provided key-value pair. - */ - findFirstRecordByData(collectionModelOrIdentifier: any, key: string, value: any): (Record) - /** - * FindRecordsByFilter returns limit number of records matching the - * provided string filter. - * - * NB! Use the last "params" argument to bind untrusted user variables! - * - * The filter argument is optional and can be empty string to target - * all available records. - * - * The sort argument is optional and can be empty string OR the same format - * used in the web APIs, ex. "-created,title". - * - * If the limit argument is <= 0, no limit is applied to the query and - * all matching records are returned. - * - * Returns an empty slice if no records are found. - * - * Example: - * - * ``` - * app.FindRecordsByFilter( - * "posts", - * "title ~ {:title} && visible = {:visible}", - * "-created", - * 10, - * 0, - * dbx.Params{"title": "lorem ipsum", "visible": true} - * ) - * ``` - */ - findRecordsByFilter(collectionModelOrIdentifier: any, filter: string, sort: string, limit: number, offset: number, ...params: dbx.Params[]): Array<(Record | undefined)> - /** - * FindFirstRecordByFilter returns the first available record matching the provided filter (if any). - * - * NB! Use the last params argument to bind untrusted user variables! - * - * Returns sql.ErrNoRows if no record is found. - * - * Example: - * - * ``` - * app.FindFirstRecordByFilter("posts", "") - * app.FindFirstRecordByFilter("posts", "slug={:slug} && status='public'", dbx.Params{"slug": "test"}) - * ``` - */ - findFirstRecordByFilter(collectionModelOrIdentifier: any, filter: string, ...params: dbx.Params[]): (Record) - /** - * CountRecords returns the total number of records in a collection. - */ - countRecords(collectionModelOrIdentifier: any, ...exprs: dbx.Expression[]): number - /** - * FindAuthRecordByToken finds the auth record associated with the provided JWT - * (auth, file, verifyEmail, changeEmail, passwordReset types). - * - * Optionally specify a list of validTypes to check tokens only from those types. - * - * Returns an error if the JWT is invalid, expired or not associated to an auth collection record. - */ - findAuthRecordByToken(token: string, ...validTypes: string[]): (Record) - /** - * FindAuthRecordByEmail finds the auth record associated with the provided email. - * - * Returns an error if it is not an auth collection or the record is not found. - */ - findAuthRecordByEmail(collectionModelOrIdentifier: any, email: string): (Record) - /** - * CanAccessRecord checks if a record is allowed to be accessed by the - * specified requestInfo and accessRule. - * - * Rule and db checks are ignored in case requestInfo.Auth is a superuser. - * - * The returned error indicate that something unexpected happened during - * the check (eg. invalid rule or db query error). - * - * The method always return false on invalid rule or db query error. - * - * Example: - * - * ``` - * requestInfo, _ := e.RequestInfo() - * record, _ := app.FindRecordById("example", "RECORD_ID") - * rule := types.Pointer("@request.auth.id != '' || status = 'public'") - * // ... or use one of the record collection's rule, eg. record.Collection().ViewRule - * - * if ok, _ := app.CanAccessRecord(record, requestInfo, rule); ok { ... } - * ``` - */ - canAccessRecord(record: Record, requestInfo: RequestInfo, accessRule: string): boolean - /** - * ExpandRecord expands the relations of a single Record model. - * - * If optFetchFunc is not set, then a default function will be used - * that returns all relation records. - * - * Returns a map with the failed expand parameters and their errors. - */ - expandRecord(record: Record, expands: Array, optFetchFunc: ExpandFetchFunc): _TygojaDict - /** - * ExpandRecords expands the relations of the provided Record models list. - * - * If optFetchFunc is not set, then a default function will be used - * that returns all relation records. - * - * Returns a map with the failed expand parameters and their errors. - */ - expandRecords(records: Array<(Record | undefined)>, expands: Array, optFetchFunc: ExpandFetchFunc): _TygojaDict - /** - * OnBootstrap hook is triggered when initializing the main application - * resources (db, app settings, etc). - */ - onBootstrap(): (hook.Hook) - /** - * OnServe hook is triggered when the app web server is started - * (after starting the TCP listener but before initializing the blocking serve task), - * allowing you to adjust its options and attach new routes or middlewares. - */ - onServe(): (hook.Hook) - /** - * OnTerminate hook is triggered when the app is in the process - * of being terminated (ex. on SIGTERM signal). - * - * Note that the app could be terminated abruptly without awaiting the hook completion. - */ - onTerminate(): (hook.Hook) - /** - * OnBackupCreate hook is triggered on each [App.CreateBackup] call. - */ - onBackupCreate(): (hook.Hook) - /** - * OnBackupRestore hook is triggered before app backup restore (aka. [App.RestoreBackup] call). - * - * Note that by default on success the application is restarted and the after state of the hook is ignored. - */ - onBackupRestore(): (hook.Hook) - /** - * OnModelValidate is triggered every time when a model is being validated - * (e.g. triggered by App.Validate() or App.Save()). - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelValidate(...tags: string[]): (hook.TaggedHook) - /** - * OnModelCreate is triggered every time when a new model is being created - * (e.g. triggered by App.Save()). - * - * Operations BEFORE the e.Next() execute before the model validation - * and the INSERT DB statement. - * - * Operations AFTER the e.Next() execute after the model validation - * and the INSERT DB statement. - * - * Note that successful execution doesn't guarantee that the model - * is persisted in the database since its wrapping transaction may - * not have been committed yet. - * If you want to listen to only the actual persisted events, you can - * bind to [OnModelAfterCreateSuccess] or [OnModelAfterCreateError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelCreate(...tags: string[]): (hook.TaggedHook) - /** - * OnModelCreateExecute is triggered after successful Model validation - * and right before the model INSERT DB statement execution. - * - * Usually it is triggered as part of the App.Save() in the following firing order: - * OnModelCreate { - * ``` - * -> OnModelValidate (skipped with App.SaveNoValidate()) - * -> OnModelCreateExecute - * ``` - * } - * - * Note that successful execution doesn't guarantee that the model - * is persisted in the database since its wrapping transaction may have been - * committed yet. - * If you want to listen to only the actual persisted events, - * you can bind to [OnModelAfterCreateSuccess] or [OnModelAfterCreateError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelCreateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterCreateSuccess is triggered after each successful - * Model DB create persistence. - * - * Note that when a Model is persisted as part of a transaction, - * this hook is delayed and executed only AFTER the transaction has been committed. - * This hook is NOT triggered in case the transaction rollbacks - * (aka. when the model wasn't persisted). - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterCreateError is triggered after each failed - * Model DB create persistence. - * - * Note that the execution of this hook is either immediate or delayed - * depending on the error: - * ``` - * - "immediate" on App.Save() failure - * - "delayed" on transaction rollback - * ``` - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterCreateError(...tags: string[]): (hook.TaggedHook) - /** - * OnModelUpdate is triggered every time when a new model is being updated - * (e.g. triggered by App.Save()). - * - * Operations BEFORE the e.Next() execute before the model validation - * and the UPDATE DB statement. - * - * Operations AFTER the e.Next() execute after the model validation - * and the UPDATE DB statement. - * - * Note that successful execution doesn't guarantee that the model - * is persisted in the database since its wrapping transaction may - * not have been committed yet. - * If you want to listen to only the actual persisted events, you can - * bind to [OnModelAfterUpdateSuccess] or [OnModelAfterUpdateError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelUpdate(...tags: string[]): (hook.TaggedHook) - /** - * OnModelUpdateExecute is triggered after successful Model validation - * and right before the model UPDATE DB statement execution. - * - * Usually it is triggered as part of the App.Save() in the following firing order: - * OnModelUpdate { - * ``` - * -> OnModelValidate (skipped with App.SaveNoValidate()) - * -> OnModelUpdateExecute - * ``` - * } - * - * Note that successful execution doesn't guarantee that the model - * is persisted in the database since its wrapping transaction may have been - * committed yet. - * If you want to listen to only the actual persisted events, - * you can bind to [OnModelAfterUpdateSuccess] or [OnModelAfterUpdateError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelUpdateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterUpdateSuccess is triggered after each successful - * Model DB update persistence. - * - * Note that when a Model is persisted as part of a transaction, - * this hook is delayed and executed only AFTER the transaction has been committed. - * This hook is NOT triggered in case the transaction rollbacks - * (aka. when the model changes weren't persisted). - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterUpdateError is triggered after each failed - * Model DB update persistence. - * - * Note that the execution of this hook is either immediate or delayed - * depending on the error: - * ``` - * - "immediate" on App.Save() failure - * - "delayed" on transaction rollback - * ``` - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterUpdateError(...tags: string[]): (hook.TaggedHook) - /** - * OnModelDelete is triggered every time when a new model is being deleted - * (e.g. triggered by App.Delete()). - * - * Note that successful execution doesn't guarantee that the model - * is deleted from the database since its wrapping transaction may - * not have been committed yet. - * If you want to listen to only the actual persisted deleted events, you can - * bind to [OnModelAfterDeleteSuccess] or [OnModelAfterDeleteError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelDelete(...tags: string[]): (hook.TaggedHook) - /** - * OnModelUpdateExecute is triggered right before the model - * DELETE DB statement execution. - * - * Usually it is triggered as part of the App.Delete() in the following firing order: - * OnModelDelete { - * ``` - * -> (internal delete checks) - * -> OnModelDeleteExecute - * ``` - * } - * - * Note that successful execution doesn't guarantee that the model - * is deleted from the database since its wrapping transaction may - * not have been committed yet. - * If you want to listen to only the actual persisted deleted events, you can - * bind to [OnModelAfterDeleteSuccess] or [OnModelAfterDeleteError] hooks. - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelDeleteExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterDeleteSuccess is triggered after each successful - * Model DB delete persistence. - * - * Note that when a Model is deleted as part of a transaction, - * this hook is delayed and executed only AFTER the transaction has been committed. - * This hook is NOT triggered in case the transaction rollbacks - * (aka. when the model delete wasn't persisted). - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnModelAfterDeleteError is triggered after each failed - * Model DB delete persistence. - * - * Note that the execution of this hook is either immediate or delayed - * depending on the error: - * ``` - * - "immediate" on App.Delete() failure - * - "delayed" on transaction rollback - * ``` - * - * For convenience, if you want to listen to only the Record models - * events without doing manual type assertion, you can attach to the OnRecord* proxy hooks. - * - * If the optional "tags" list (Collection id/name, Model table name, etc.) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onModelAfterDeleteError(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordEnrich is triggered every time when a record is enriched - * (as part of the builtin Record responses, during realtime message seriazation, or when [apis.EnrichRecord] is invoked). - * - * It could be used for example to redact/hide or add computed temporary - * Record model props only for the specific request info. For example: - * - * app.OnRecordEnrich("posts").BindFunc(func(e core.*RecordEnrichEvent) { - * ``` - * // hide one or more fields - * e.Record.Hide("role") - * - * // add new custom field for registered users - * if e.RequestInfo.Auth != nil && e.RequestInfo.Auth.Collection().Name == "users" { - * e.Record.WithCustomData(true) // for security requires explicitly allowing it - * e.Record.Set("computedScore", e.Record.GetInt("score") * e.RequestInfo.Auth.GetInt("baseScore")) - * } - * - * return e.Next() - * ``` - * }) - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordEnrich(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordValidate is a Record proxy model hook of [OnModelValidate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordValidate(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordCreate is a Record proxy model hook of [OnModelCreate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordCreate(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordCreateExecute is a Record proxy model hook of [OnModelCreateExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordCreateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterCreateSuccess is a Record proxy model hook of [OnModelAfterCreateSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterCreateError is a Record proxy model hook of [OnModelAfterCreateError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterCreateError(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordUpdate is a Record proxy model hook of [OnModelUpdate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordUpdate(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordUpdateExecute is a Record proxy model hook of [OnModelUpdateExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordUpdateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterUpdateSuccess is a Record proxy model hook of [OnModelAfterUpdateSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterUpdateError is a Record proxy model hook of [OnModelAfterUpdateError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterUpdateError(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordDelete is a Record proxy model hook of [OnModelDelete]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordDelete(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordDeleteExecute is a Record proxy model hook of [OnModelDeleteExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordDeleteExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterDeleteSuccess is a Record proxy model hook of [OnModelAfterDeleteSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAfterDeleteError is a Record proxy model hook of [OnModelAfterDeleteError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAfterDeleteError(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionValidate is a Collection proxy model hook of [OnModelValidate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionValidate(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionCreate is a Collection proxy model hook of [OnModelCreate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionCreate(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionCreateExecute is a Collection proxy model hook of [OnModelCreateExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionCreateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterCreateSuccess is a Collection proxy model hook of [OnModelAfterCreateSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterCreateError is a Collection proxy model hook of [OnModelAfterCreateError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterCreateError(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionUpdate is a Collection proxy model hook of [OnModelUpdate]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionUpdate(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionUpdateExecute is a Collection proxy model hook of [OnModelUpdateExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionUpdateExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterUpdateSuccess is a Collection proxy model hook of [OnModelAfterUpdateSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterUpdateError is a Collection proxy model hook of [OnModelAfterUpdateError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterUpdateError(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionDelete is a Collection proxy model hook of [OnModelDelete]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionDelete(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionDeleteExecute is a Collection proxy model hook of [OnModelDeleteExecute]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionDeleteExecute(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterDeleteSuccess is a Collection proxy model hook of [OnModelAfterDeleteSuccess]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionAfterDeleteError is a Collection proxy model hook of [OnModelAfterDeleteError]. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onCollectionAfterDeleteError(...tags: string[]): (hook.TaggedHook) - /** - * OnMailerSend hook is triggered every time when a new email is - * being send using the [App.NewMailClient()] instance. - * - * It allows intercepting the email message or to use a custom mailer client. - */ - onMailerSend(): (hook.Hook) - /** - * OnMailerRecordAuthAlertSend hook is triggered when - * sending a new device login auth alert email, allowing you to - * intercept and customize the email message that is being sent. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onMailerRecordAuthAlertSend(...tags: string[]): (hook.TaggedHook) - /** - * OnMailerBeforeRecordResetPasswordSend hook is triggered when - * sending a password reset email to an auth record, allowing - * you to intercept and customize the email message that is being sent. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onMailerRecordPasswordResetSend(...tags: string[]): (hook.TaggedHook) - /** - * OnMailerBeforeRecordVerificationSend hook is triggered when - * sending a verification email to an auth record, allowing - * you to intercept and customize the email message that is being sent. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onMailerRecordVerificationSend(...tags: string[]): (hook.TaggedHook) - /** - * OnMailerRecordEmailChangeSend hook is triggered when sending a - * confirmation new address email to an auth record, allowing - * you to intercept and customize the email message that is being sent. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onMailerRecordEmailChangeSend(...tags: string[]): (hook.TaggedHook) - /** - * OnMailerRecordOTPSend hook is triggered when sending an OTP email - * to an auth record, allowing you to intercept and customize the - * email message that is being sent. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onMailerRecordOTPSend(...tags: string[]): (hook.TaggedHook) - /** - * OnRealtimeConnectRequest hook is triggered when establishing the SSE client connection. - * - * Any execution after e.Next() of a hook handler happens after the client disconnects. - */ - onRealtimeConnectRequest(): (hook.Hook) - /** - * OnRealtimeMessageSend hook is triggered when sending an SSE message to a client. - */ - onRealtimeMessageSend(): (hook.Hook) - /** - * OnRealtimeSubscribeRequest hook is triggered when updating the - * client subscriptions, allowing you to further validate and - * modify the submitted change. - */ - onRealtimeSubscribeRequest(): (hook.Hook) - /** - * OnSettingsListRequest hook is triggered on each API Settings list request. - * - * Could be used to validate or modify the response before returning it to the client. - */ - onSettingsListRequest(): (hook.Hook) - /** - * OnSettingsUpdateRequest hook is triggered on each API Settings update request. - * - * Could be used to additionally validate the request data or - * implement completely different persistence behavior. - */ - onSettingsUpdateRequest(): (hook.Hook) - /** - * OnSettingsReload hook is triggered every time when the App.Settings() - * is being replaced with a new state. - * - * Calling App.Settings() after e.Next() returns the new state. - */ - onSettingsReload(): (hook.Hook) - /** - * OnFileDownloadRequest hook is triggered before each API File download request. - * - * Could be used to validate or modify the file response before - * returning it to the client. - */ - onFileDownloadRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnFileBeforeTokenRequest hook is triggered on each auth file token API request. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onFileTokenRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAuthRequest hook is triggered on each successful API - * record authentication request (sign-in, token refresh, etc.). - * - * Could be used to additionally validate or modify the authenticated - * record data and token. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAuthRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAuthWithPasswordRequest hook is triggered on each - * Record auth with password API request. - * - * [RecordAuthWithPasswordRequestEvent.Record] could be nil if no matching identity is found, allowing - * you to manually locate a different Record model (by reassigning [RecordAuthWithPasswordRequestEvent.Record]). - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAuthWithPasswordRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAuthWithOAuth2Request hook is triggered on each Record - * OAuth2 sign-in/sign-up API request (after token exchange and before external provider linking). - * - * If [RecordAuthWithOAuth2RequestEvent.Record] is not set, then the OAuth2 - * request will try to create a new auth Record. - * - * To assign or link a different existing record model you can - * change the [RecordAuthWithOAuth2RequestEvent.Record] field. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAuthWithOAuth2Request(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAuthRefreshRequest hook is triggered on each Record - * auth refresh API request (right before generating a new auth token). - * - * Could be used to additionally validate the request data or implement - * completely different auth refresh behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAuthRefreshRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordRequestPasswordResetRequest hook is triggered on - * each Record request password reset API request. - * - * Could be used to additionally validate the request data or implement - * completely different password reset behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordRequestPasswordResetRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordConfirmPasswordResetRequest hook is triggered on - * each Record confirm password reset API request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordConfirmPasswordResetRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordRequestVerificationRequest hook is triggered on - * each Record request verification API request. - * - * Could be used to additionally validate the loaded request data or implement - * completely different verification behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordRequestVerificationRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordConfirmVerificationRequest hook is triggered on each - * Record confirm verification API request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordConfirmVerificationRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordRequestEmailChangeRequest hook is triggered on each - * Record request email change API request. - * - * Could be used to additionally validate the request data or implement - * completely different request email change behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordRequestEmailChangeRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordConfirmEmailChangeRequest hook is triggered on each - * Record confirm email change API request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordConfirmEmailChangeRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordRequestOTPRequest hook is triggered on each Record - * request OTP API request. - * - * [RecordCreateOTPRequestEvent.Record] could be nil if no matching identity is found, allowing - * you to manually create or locate a different Record model (by reassigning [RecordCreateOTPRequestEvent.Record]). - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordRequestOTPRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordAuthWithOTPRequest hook is triggered on each Record - * auth with OTP API request. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordAuthWithOTPRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordsListRequest hook is triggered on each API Records list request. - * - * Could be used to validate or modify the response before returning it to the client. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordsListRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordViewRequest hook is triggered on each API Record view request. - * - * Could be used to validate or modify the response before returning it to the client. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordViewRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordCreateRequest hook is triggered on each API Record create request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordCreateRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordUpdateRequest hook is triggered on each API Record update request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordUpdateRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnRecordDeleteRequest hook is triggered on each API Record delete request. - * - * Could be used to additionally validate the request data or implement - * completely different delete behavior. - * - * If the optional "tags" list (Collection ids or names) is specified, - * then all event handlers registered via the created hook will be - * triggered and called only if their event data origin matches the tags. - */ - onRecordDeleteRequest(...tags: string[]): (hook.TaggedHook) - /** - * OnCollectionsListRequest hook is triggered on each API Collections list request. - * - * Could be used to validate or modify the response before returning it to the client. - */ - onCollectionsListRequest(): (hook.Hook) - /** - * OnCollectionViewRequest hook is triggered on each API Collection view request. - * - * Could be used to validate or modify the response before returning it to the client. - */ - onCollectionViewRequest(): (hook.Hook) - /** - * OnCollectionCreateRequest hook is triggered on each API Collection create request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - */ - onCollectionCreateRequest(): (hook.Hook) - /** - * OnCollectionUpdateRequest hook is triggered on each API Collection update request. - * - * Could be used to additionally validate the request data or implement - * completely different persistence behavior. - */ - onCollectionUpdateRequest(): (hook.Hook) - /** - * OnCollectionDeleteRequest hook is triggered on each API Collection delete request. - * - * Could be used to additionally validate the request data or implement - * completely different delete behavior. - */ - onCollectionDeleteRequest(): (hook.Hook) - /** - * OnCollectionsBeforeImportRequest hook is triggered on each API - * collections import request. - * - * Could be used to additionally validate the imported collections or - * to implement completely different import behavior. - */ - onCollectionsImportRequest(): (hook.Hook) - /** - * OnBatchRequest hook is triggered on each API batch request. - * - * Could be used to additionally validate or modify the submitted batch requests. - */ - onBatchRequest(): (hook.Hook) - } - // @ts-ignore - import validation = ozzo_validation - /** - * AuthOrigin defines a Record proxy for working with the authOrigins collection. - */ - type _swwwIyo = Record - interface AuthOrigin extends _swwwIyo { - } - interface newAuthOrigin { - /** - * NewAuthOrigin instantiates and returns a new blank *AuthOrigin model. - * - * Example usage: - * - * ``` - * origin := core.NewOrigin(app) - * origin.SetRecordRef(user.Id) - * origin.SetCollectionRef(user.Collection().Id) - * origin.SetFingerprint("...") - * app.Save(origin) - * ``` - */ - (app: App): (AuthOrigin) - } - interface AuthOrigin { - /** - * PreValidate implements the [PreValidator] interface and checks - * whether the proxy is properly loaded. - */ - preValidate(ctx: context.Context, app: App): void - } - interface AuthOrigin { - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - } - interface AuthOrigin { - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - interface AuthOrigin { - /** - * CollectionRef returns the "collectionRef" field value. - */ - collectionRef(): string - } - interface AuthOrigin { - /** - * SetCollectionRef updates the "collectionRef" record field value. - */ - setCollectionRef(collectionId: string): void - } - interface AuthOrigin { - /** - * RecordRef returns the "recordRef" record field value. - */ - recordRef(): string - } - interface AuthOrigin { - /** - * SetRecordRef updates the "recordRef" record field value. - */ - setRecordRef(recordId: string): void - } - interface AuthOrigin { - /** - * Fingerprint returns the "fingerprint" record field value. - */ - fingerprint(): string - } - interface AuthOrigin { - /** - * SetFingerprint updates the "fingerprint" record field value. - */ - setFingerprint(fingerprint: string): void - } - interface AuthOrigin { - /** - * Created returns the "created" record field value. - */ - created(): types.DateTime - } - interface AuthOrigin { - /** - * Updated returns the "updated" record field value. - */ - updated(): types.DateTime - } - interface BaseApp { - /** - * FindAllAuthOriginsByRecord returns all AuthOrigin models linked to the provided auth record (in DESC order). - */ - findAllAuthOriginsByRecord(authRecord: Record): Array<(AuthOrigin | undefined)> - } - interface BaseApp { - /** - * FindAllAuthOriginsByCollection returns all AuthOrigin models linked to the provided collection (in DESC order). - */ - findAllAuthOriginsByCollection(collection: Collection): Array<(AuthOrigin | undefined)> - } - interface BaseApp { - /** - * FindAuthOriginById returns a single AuthOrigin model by its id. - */ - findAuthOriginById(id: string): (AuthOrigin) - } - interface BaseApp { - /** - * FindAuthOriginByRecordAndFingerprint returns a single AuthOrigin model - * by its authRecord relation and fingerprint. - */ - findAuthOriginByRecordAndFingerprint(authRecord: Record, fingerprint: string): (AuthOrigin) - } - interface BaseApp { - /** - * DeleteAllAuthOriginsByRecord deletes all AuthOrigin models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllAuthOriginsByRecord(authRecord: Record): void - } - /** - * FilesManager defines an interface with common methods that files manager models should implement. - */ - interface FilesManager { - [key:string]: any; - /** - * BaseFilesPath returns the storage dir path used by the interface instance. - */ - baseFilesPath(): string - } - /** - * DBConnectFunc defines a database connection initialization function. - */ - interface DBConnectFunc {(dbPath: string): (dbx.DB) } - /** - * BaseAppConfig defines a BaseApp configuration option - */ - interface BaseAppConfig { - dbConnect: DBConnectFunc - dataDir: string - encryptionEnv: string - queryTimeout: time.Duration - dataMaxOpenConns: number - dataMaxIdleConns: number - auxMaxOpenConns: number - auxMaxIdleConns: number - isDev: boolean - } - /** - * BaseApp implements CoreApp and defines the base PocketBase app structure. - */ - interface BaseApp { - } - interface newBaseApp { - /** - * NewBaseApp creates and returns a new BaseApp instance - * configured with the provided arguments. - * - * To initialize the app, you need to call `app.Bootstrap()`. - */ - (config: BaseAppConfig): (BaseApp) - } - interface BaseApp { - /** - * UnsafeWithoutHooks returns a shallow copy of the current app WITHOUT any registered hooks. - * - * NB! Note that using the returned app instance may cause data integrity errors - * since the Record validations and data normalizations (including files uploads) - * rely on the app hooks to work. - */ - unsafeWithoutHooks(): App - } - interface BaseApp { - /** - * Logger returns the default app logger. - * - * If the application is not bootstrapped yet, fallbacks to slog.Default(). - */ - logger(): (slog.Logger) - } - interface BaseApp { - /** - * TxInfo returns the transaction associated with the current app instance (if any). - * - * Could be used if you want to execute indirectly a function after - * the related app transaction completes using `app.TxInfo().OnAfterFunc(callback)`. - */ - txInfo(): (TxAppInfo) - } - interface BaseApp { - /** - * IsTransactional checks if the current app instance is part of a transaction. - */ - isTransactional(): boolean - } - interface BaseApp { - /** - * IsBootstrapped checks if the application was initialized - * (aka. whether Bootstrap() was called). - */ - isBootstrapped(): boolean - } - interface BaseApp { - /** - * Bootstrap initializes the application - * (aka. create data dir, open db connections, load settings, etc.). - * - * It will call ResetBootstrapState() if the application was already bootstrapped. - */ - bootstrap(): void - } - interface closer { - [key:string]: any; - close(): void - } - interface BaseApp { - /** - * ResetBootstrapState releases the initialized core app resources - * (closing db connections, stopping cron ticker, etc.). - */ - resetBootstrapState(): void - } - interface BaseApp { - /** - * DB returns the default app data.db builder instance. - * - * To minimize SQLITE_BUSY errors, it automatically routes the - * SELECT queries to the underlying concurrent db pool and everything - * else to the nonconcurrent one. - * - * For more finer control over the used connections pools you can - * call directly ConcurrentDB() or NonconcurrentDB(). - */ - db(): dbx.Builder - } - interface BaseApp { - /** - * ConcurrentDB returns the concurrent app data.db builder instance. - * - * This method is used mainly internally for executing db read - * operations in a concurrent/non-blocking manner. - * - * Most users should use simply DB() as it will automatically - * route the query execution to ConcurrentDB() or NonconcurrentDB(). - * - * In a transaction the ConcurrentDB() and NonconcurrentDB() refer to the same *dbx.TX instance. - */ - concurrentDB(): dbx.Builder - } - interface BaseApp { - /** - * NonconcurrentDB returns the nonconcurrent app data.db builder instance. - * - * The returned db instance is limited only to a single open connection, - * meaning that it can process only 1 db operation at a time (other queries queue up). - * - * This method is used mainly internally and in the tests to execute write - * (save/delete) db operations as it helps with minimizing the SQLITE_BUSY errors. - * - * Most users should use simply DB() as it will automatically - * route the query execution to ConcurrentDB() or NonconcurrentDB(). - * - * In a transaction the ConcurrentDB() and NonconcurrentDB() refer to the same *dbx.TX instance. - */ - nonconcurrentDB(): dbx.Builder - } - interface BaseApp { - /** - * AuxDB returns the app auxiliary.db builder instance. - * - * To minimize SQLITE_BUSY errors, it automatically routes the - * SELECT queries to the underlying concurrent db pool and everything - * else to the nonconcurrent one. - * - * For more finer control over the used connections pools you can - * call directly AuxConcurrentDB() or AuxNonconcurrentDB(). - */ - auxDB(): dbx.Builder - } - interface BaseApp { - /** - * AuxConcurrentDB returns the concurrent app auxiliary.db builder instance. - * - * This method is used mainly internally for executing db read - * operations in a concurrent/non-blocking manner. - * - * Most users should use simply AuxDB() as it will automatically - * route the query execution to AuxConcurrentDB() or AuxNonconcurrentDB(). - * - * In a transaction the AuxConcurrentDB() and AuxNonconcurrentDB() refer to the same *dbx.TX instance. - */ - auxConcurrentDB(): dbx.Builder - } - interface BaseApp { - /** - * AuxNonconcurrentDB returns the nonconcurrent app auxiliary.db builder instance. - * - * The returned db instance is limited only to a single open connection, - * meaning that it can process only 1 db operation at a time (other queries queue up). - * - * This method is used mainly internally and in the tests to execute write - * (save/delete) db operations as it helps with minimizing the SQLITE_BUSY errors. - * - * Most users should use simply AuxDB() as it will automatically - * route the query execution to AuxConcurrentDB() or AuxNonconcurrentDB(). - * - * In a transaction the AuxConcurrentDB() and AuxNonconcurrentDB() refer to the same *dbx.TX instance. - */ - auxNonconcurrentDB(): dbx.Builder - } - interface BaseApp { - /** - * DataDir returns the app data directory path. - */ - dataDir(): string - } - interface BaseApp { - /** - * EncryptionEnv returns the name of the app secret env key - * (currently used primarily for optional settings encryption but this may change in the future). - */ - encryptionEnv(): string - } - interface BaseApp { - /** - * IsDev returns whether the app is in dev mode. - * - * When enabled logs, executed sql statements, etc. are printed to the stderr. - */ - isDev(): boolean - } - interface BaseApp { - /** - * Settings returns the loaded app settings. - */ - settings(): (Settings) - } - interface BaseApp { - /** - * Store returns the app runtime store. - */ - store(): (store.Store) - } - interface BaseApp { - /** - * Cron returns the app cron instance. - */ - cron(): (cron.Cron) - } - interface BaseApp { - /** - * SubscriptionsBroker returns the app realtime subscriptions broker instance. - */ - subscriptionsBroker(): (subscriptions.Broker) - } - interface BaseApp { - /** - * NewMailClient creates and returns a new SMTP or Sendmail client - * based on the current app settings. - */ - newMailClient(): mailer.Mailer - } - interface BaseApp { - /** - * NewFilesystem creates a new local or S3 filesystem instance - * for managing regular app files (ex. record uploads) - * based on the current app settings. - * - * NB! Make sure to call Close() on the returned result - * after you are done working with it. - */ - newFilesystem(): (filesystem.System) - } - interface BaseApp { - /** - * NewBackupsFilesystem creates a new local or S3 filesystem instance - * for managing app backups based on the current app settings. - * - * NB! Make sure to call Close() on the returned result - * after you are done working with it. - */ - newBackupsFilesystem(): (filesystem.System) - } - interface BaseApp { - /** - * Restart restarts (aka. replaces) the current running application process. - * - * NB! It relies on execve which is supported only on UNIX based systems. - */ - restart(): void - } - interface BaseApp { - /** - * RunSystemMigrations applies all new migrations registered in the [core.SystemMigrations] list. - */ - runSystemMigrations(): void - } - interface BaseApp { - /** - * RunAppMigrations applies all new migrations registered in the [CoreAppMigrations] list. - */ - runAppMigrations(): void - } - interface BaseApp { - /** - * RunAllMigrations applies all system and app migrations - * (aka. from both [core.SystemMigrations] and [CoreAppMigrations]). - */ - runAllMigrations(): void - } - interface BaseApp { - onBootstrap(): (hook.Hook) - } - interface BaseApp { - onServe(): (hook.Hook) - } - interface BaseApp { - onTerminate(): (hook.Hook) - } - interface BaseApp { - onBackupCreate(): (hook.Hook) - } - interface BaseApp { - onBackupRestore(): (hook.Hook) - } - interface BaseApp { - onModelCreate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelCreateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterCreateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelUpdate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelUpdateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterUpdateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelValidate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelDelete(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelDeleteExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onModelAfterDeleteError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordEnrich(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordValidate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordCreate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordCreateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterCreateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordUpdate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordUpdateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterUpdateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordDelete(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordDeleteExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAfterDeleteError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionValidate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionCreate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionCreateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterCreateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterCreateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionUpdate(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionUpdateExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterUpdateSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterUpdateError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionDelete(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionDeleteExecute(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterDeleteSuccess(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionAfterDeleteError(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onMailerSend(): (hook.Hook) - } - interface BaseApp { - onMailerRecordPasswordResetSend(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onMailerRecordVerificationSend(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onMailerRecordEmailChangeSend(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onMailerRecordOTPSend(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onMailerRecordAuthAlertSend(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRealtimeConnectRequest(): (hook.Hook) - } - interface BaseApp { - onRealtimeMessageSend(): (hook.Hook) - } - interface BaseApp { - onRealtimeSubscribeRequest(): (hook.Hook) - } - interface BaseApp { - onSettingsListRequest(): (hook.Hook) - } - interface BaseApp { - onSettingsUpdateRequest(): (hook.Hook) - } - interface BaseApp { - onSettingsReload(): (hook.Hook) - } - interface BaseApp { - onFileDownloadRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onFileTokenRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAuthRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAuthWithPasswordRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAuthWithOAuth2Request(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAuthRefreshRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordRequestPasswordResetRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordConfirmPasswordResetRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordRequestVerificationRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordConfirmVerificationRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordRequestEmailChangeRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordConfirmEmailChangeRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordRequestOTPRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordAuthWithOTPRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordsListRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordViewRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordCreateRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordUpdateRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onRecordDeleteRequest(...tags: string[]): (hook.TaggedHook) - } - interface BaseApp { - onCollectionsListRequest(): (hook.Hook) - } - interface BaseApp { - onCollectionViewRequest(): (hook.Hook) - } - interface BaseApp { - onCollectionCreateRequest(): (hook.Hook) - } - interface BaseApp { - onCollectionUpdateRequest(): (hook.Hook) - } - interface BaseApp { - onCollectionDeleteRequest(): (hook.Hook) - } - interface BaseApp { - onCollectionsImportRequest(): (hook.Hook) - } - interface BaseApp { - onBatchRequest(): (hook.Hook) - } - interface BaseApp { - /** - * CreateBackup creates a new backup of the current app pb_data directory. - * - * If name is empty, it will be autogenerated. - * If backup with the same name exists, the new backup file will replace it. - * - * The backup is executed within a transaction, meaning that new writes - * will be temporary "blocked" until the backup file is generated. - * - * To safely perform the backup, it is recommended to have free disk space - * for at least 2x the size of the pb_data directory. - * - * By default backups are stored in pb_data/backups - * (the backups directory itself is excluded from the generated backup). - * - * When using S3 storage for the uploaded collection files, you have to - * take care manually to backup those since they are not part of the pb_data. - * - * Backups can be stored on S3 if it is configured in app.Settings().Backups. - */ - createBackup(ctx: context.Context, name: string): void - } - interface BaseApp { - /** - * RestoreBackup restores the backup with the specified name and restarts - * the current running application process. - * - * NB! This feature is experimental and currently is expected to work only on UNIX based systems. - * - * To safely perform the restore it is recommended to have free disk space - * for at least 2x the size of the restored pb_data backup. - * - * The performed steps are: - * - * 1. Download the backup with the specified name in a temp location - * ``` - * (this is in case of S3; otherwise it creates a temp copy of the zip) - * ``` - * - * 2. Extract the backup in a temp directory inside the app "pb_data" - * ``` - * (eg. "pb_data/.pb_temp_to_delete/pb_restore"). - * ``` - * - * 3. Move the current app "pb_data" content (excluding the local backups and the special temp dir) - * ``` - * under another temp sub dir that will be deleted on the next app start up - * (eg. "pb_data/.pb_temp_to_delete/old_pb_data"). - * This is because on some environments it may not be allowed - * to delete the currently open "pb_data" files. - * ``` - * - * 4. Move the extracted dir content to the app "pb_data". - * - * 5. Restart the app (on successful app bootstap it will also remove the old pb_data). - * - * If a failure occure during the restore process the dir changes are reverted. - * If for whatever reason the revert is not possible, it panics. - * - * Note that if your pb_data has custom network mounts as subdirectories, then - * it is possible the restore to fail during the `os.Rename` operations - * (see https://github.com/pocketbase/pocketbase/issues/4647). - */ - restoreBackup(ctx: context.Context, name: string): void - } - interface BaseApp { - /** - * ImportCollectionsByMarshaledJSON is the same as [ImportCollections] - * but accept marshaled json array as import data (usually used for the autogenerated snapshots). - */ - importCollectionsByMarshaledJSON(rawSliceOfMaps: string|Array, deleteMissing: boolean): void - } - interface BaseApp { - /** - * ImportCollections imports the provided collections data in a single transaction. - * - * For existing matching collections, the imported data is unmarshaled on top of the existing model. - * - * NB! If deleteMissing is true, ALL NON-SYSTEM COLLECTIONS AND SCHEMA FIELDS, - * that are not present in the imported configuration, WILL BE DELETED - * (this includes their related records data). - */ - importCollections(toImport: Array<_TygojaDict>, deleteMissing: boolean): void - } - /** - * @todo experiment eventually replacing the rules *string with a struct? - */ - type _stnEsaK = BaseModel - interface baseCollection extends _stnEsaK { - listRule?: string - viewRule?: string - createRule?: string - updateRule?: string - deleteRule?: string - /** - * RawOptions represents the raw serialized collection option loaded from the DB. - * NB! This field shouldn't be modified manually. It is automatically updated - * with the collection type specific option before save. - */ - rawOptions: types.JSONRaw - name: string - type: string - fields: FieldsList - indexes: types.JSONArray - created: types.DateTime - updated: types.DateTime - /** - * System prevents the collection rename, deletion and rules change. - * It is used primarily for internal purposes for collections like "_superusers", "_externalAuths", etc. - */ - system: boolean - } - /** - * Collection defines the table, fields and various options related to a set of records. - */ - type _sSFOxxn = baseCollection&collectionAuthOptions&collectionViewOptions - interface Collection extends _sSFOxxn { - } - interface newCollection { - /** - * NewCollection initializes and returns a new Collection model with the specified type and name. - * - * It also loads the minimal default configuration for the collection - * (eg. system fields, indexes, type specific options, etc.). - */ - (typ: string, name: string, ...optId: string[]): (Collection) - } - interface newBaseCollection { - /** - * NewBaseCollection initializes and returns a new "base" Collection model. - * - * It also loads the minimal default configuration for the collection - * (eg. system fields, indexes, type specific options, etc.). - */ - (name: string, ...optId: string[]): (Collection) - } - interface newViewCollection { - /** - * NewViewCollection initializes and returns a new "view" Collection model. - * - * It also loads the minimal default configuration for the collection - * (eg. system fields, indexes, type specific options, etc.). - */ - (name: string, ...optId: string[]): (Collection) - } - interface newAuthCollection { - /** - * NewAuthCollection initializes and returns a new "auth" Collection model. - * - * It also loads the minimal default configuration for the collection - * (eg. system fields, indexes, type specific options, etc.). - */ - (name: string, ...optId: string[]): (Collection) - } - interface Collection { - /** - * TableName returns the Collection model SQL table name. - */ - tableName(): string - } - interface Collection { - /** - * BaseFilesPath returns the storage dir path used by the collection. - */ - baseFilesPath(): string - } - interface Collection { - /** - * IsBase checks if the current collection has "base" type. - */ - isBase(): boolean - } - interface Collection { - /** - * IsAuth checks if the current collection has "auth" type. - */ - isAuth(): boolean - } - interface Collection { - /** - * IsView checks if the current collection has "view" type. - */ - isView(): boolean - } - interface Collection { - /** - * IntegrityChecks toggles the current collection integrity checks (ex. checking references on delete). - */ - integrityChecks(enable: boolean): void - } - interface Collection { - /** - * PostScan implements the [dbx.PostScanner] interface to auto unmarshal - * the raw serialized options into the concrete type specific fields. - */ - postScan(): void - } - interface Collection { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - * - * For new/"blank" Collection models it replaces the model with a factory - * instance and then unmarshal the provided data one on top of it. - */ - unmarshalJSON(b: string|Array): void - } - interface Collection { - /** - * MarshalJSON implements the [json.Marshaler] interface. - * - * Note that non-type related fields are ignored from the serialization - * (ex. for "view" colections the "auth" fields are skipped). - */ - marshalJSON(): string|Array - } - interface Collection { - /** - * String returns a string representation of the current collection. - */ - string(): string - } - interface Collection { - /** - * DBExport prepares and exports the current collection data for db persistence. - */ - dbExport(app: App): _TygojaDict - } - interface Collection { - /** - * GetIndex returns s single Collection index expression by its name. - */ - getIndex(name: string): string - } - interface Collection { - /** - * AddIndex adds a new index into the current collection. - * - * If the collection has an existing index matching the new name it will be replaced with the new one. - */ - addIndex(name: string, unique: boolean, columnsExpr: string, optWhereExpr: string): void - } - interface Collection { - /** - * RemoveIndex removes a single index with the specified name from the current collection. - */ - removeIndex(name: string): void - } - /** - * collectionAuthOptions defines the options for the "auth" type collection. - */ - interface collectionAuthOptions { - /** - * AuthRule could be used to specify additional record constraints - * applied after record authentication and right before returning the - * auth token response to the client. - * - * For example, to allow only verified users you could set it to - * "verified = true". - * - * Set it to empty string to allow any Auth collection record to authenticate. - * - * Set it to nil to disallow authentication altogether for the collection - * (that includes password, OAuth2, etc.). - */ - authRule?: string - /** - * ManageRule gives admin-like permissions to allow fully managing - * the auth record(s), eg. changing the password without requiring - * to enter the old one, directly updating the verified state and email, etc. - * - * This rule is executed in addition to the Create and Update API rules. - */ - manageRule?: string - /** - * AuthAlert defines options related to the auth alerts on new device login. - */ - authAlert: AuthAlertConfig - /** - * OAuth2 specifies whether OAuth2 auth is enabled for the collection - * and which OAuth2 providers are allowed. - */ - oauth2: OAuth2Config - /** - * PasswordAuth defines options related to the collection password authentication. - */ - passwordAuth: PasswordAuthConfig - /** - * MFA defines options related to the Multi-factor authentication (MFA). - */ - mfa: MFAConfig - /** - * OTP defines options related to the One-time password authentication (OTP). - */ - otp: OTPConfig - /** - * Various token configurations - * --- - */ - authToken: TokenConfig - passwordResetToken: TokenConfig - emailChangeToken: TokenConfig - verificationToken: TokenConfig - fileToken: TokenConfig - /** - * Default email templates - * --- - */ - verificationTemplate: EmailTemplate - resetPasswordTemplate: EmailTemplate - confirmEmailChangeTemplate: EmailTemplate - } - interface EmailTemplate { - subject: string - body: string - } - interface EmailTemplate { - /** - * Validate makes EmailTemplate validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface EmailTemplate { - /** - * Resolve replaces the placeholder parameters in the current email - * template and returns its components as ready-to-use strings. - */ - resolve(placeholders: _TygojaDict): [string, string] - } - interface AuthAlertConfig { - enabled: boolean - emailTemplate: EmailTemplate - } - interface AuthAlertConfig { - /** - * Validate makes AuthAlertConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface TokenConfig { - secret: string - /** - * Duration specifies how long an issued token to be valid (in seconds) - */ - duration: number - } - interface TokenConfig { - /** - * Validate makes TokenConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface TokenConfig { - /** - * DurationTime returns the current Duration as [time.Duration]. - */ - durationTime(): time.Duration - } - interface OTPConfig { - enabled: boolean - /** - * Duration specifies how long the OTP to be valid (in seconds) - */ - duration: number - /** - * Length specifies the auto generated password length. - */ - length: number - /** - * EmailTemplate is the default OTP email template that will be send to the auth record. - * - * In addition to the system placeholders you can also make use of - * [core.EmailPlaceholderOTPId] and [core.EmailPlaceholderOTP]. - */ - emailTemplate: EmailTemplate - } - interface OTPConfig { - /** - * Validate makes OTPConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface OTPConfig { - /** - * DurationTime returns the current Duration as [time.Duration]. - */ - durationTime(): time.Duration - } - interface MFAConfig { - enabled: boolean - /** - * Duration specifies how long an issued MFA to be valid (in seconds) - */ - duration: number - /** - * Rule is an optional field to restrict MFA only for the records that satisfy the rule. - * - * Leave it empty to enable MFA for everyone. - */ - rule: string - } - interface MFAConfig { - /** - * Validate makes MFAConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface MFAConfig { - /** - * DurationTime returns the current Duration as [time.Duration]. - */ - durationTime(): time.Duration - } - interface PasswordAuthConfig { - enabled: boolean - /** - * IdentityFields is a list of field names that could be used as - * identity during password authentication. - * - * Usually only fields that has single column UNIQUE index are accepted as values. - */ - identityFields: Array - } - interface PasswordAuthConfig { - /** - * Validate makes PasswordAuthConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface OAuth2KnownFields { - id: string - name: string - username: string - avatarURL: string - } - interface OAuth2Config { - providers: Array - mappedFields: OAuth2KnownFields - enabled: boolean - } - interface OAuth2Config { - /** - * GetProviderConfig returns the first OAuth2ProviderConfig that matches the specified name. - * - * Returns false and zero config if no such provider is available in c.Providers. - */ - getProviderConfig(name: string): [OAuth2ProviderConfig, boolean] - } - interface OAuth2Config { - /** - * Validate makes OAuth2Config validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface OAuth2ProviderConfig { - /** - * PKCE overwrites the default provider PKCE config option. - * - * This usually shouldn't be needed but some OAuth2 vendors, like the LinkedIn OIDC, - * may require manual adjustment due to returning error if extra parameters are added to the request - * (https://github.com/pocketbase/pocketbase/discussions/3799#discussioncomment-7640312) - */ - pkce?: boolean - name: string - clientId: string - clientSecret: string - authURL: string - tokenURL: string - userInfoURL: string - displayName: string - extra: _TygojaDict - } - interface OAuth2ProviderConfig { - /** - * Validate makes OAuth2ProviderConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface OAuth2ProviderConfig { - /** - * InitProvider returns a new auth.Provider instance loaded with the current OAuth2ProviderConfig options. - */ - initProvider(): auth.Provider - } - /** - * collectionBaseOptions defines the options for the "base" type collection. - */ - interface collectionBaseOptions { - } - /** - * collectionViewOptions defines the options for the "view" type collection. - */ - interface collectionViewOptions { - viewQuery: string - } - interface BaseApp { - /** - * CollectionQuery returns a new Collection select query. - */ - collectionQuery(): (dbx.SelectQuery) - } - interface BaseApp { - /** - * FindCollections finds all collections by the given type(s). - * - * If collectionTypes is not set, it returns all collections. - * - * Example: - * - * ``` - * app.FindAllCollections() // all collections - * app.FindAllCollections("auth", "view") // only auth and view collections - * ``` - */ - findAllCollections(...collectionTypes: string[]): Array<(Collection | undefined)> - } - interface BaseApp { - /** - * ReloadCachedCollections fetches all collections and caches them into the app store. - */ - reloadCachedCollections(): void - } - interface BaseApp { - /** - * FindCollectionByNameOrId finds a single collection by its name (case insensitive) or id. - */ - findCollectionByNameOrId(nameOrId: string): (Collection) - } - interface BaseApp { - /** - * FindCachedCollectionByNameOrId is similar to [BaseApp.FindCollectionByNameOrId] - * but retrieves the Collection from the app cache instead of making a db call. - * - * NB! This method is suitable for read-only Collection operations. - * - * Returns [sql.ErrNoRows] if no Collection is found for consistency - * with the [BaseApp.FindCollectionByNameOrId] method. - * - * If you plan making changes to the returned Collection model, - * use [BaseApp.FindCollectionByNameOrId] instead. - * - * Caveats: - * - * ``` - * - The returned Collection should be used only for read-only operations. - * Avoid directly modifying the returned cached Collection as it will affect - * the global cached value even if you don't persist the changes in the database! - * - If you are updating a Collection in a transaction and then call this method before commit, - * it'll return the cached Collection state and not the one from the uncommitted transaction. - * - The cache is automatically updated on collections db change (create/update/delete). - * To manually reload the cache you can call [BaseApp.ReloadCachedCollections]. - * ``` - */ - findCachedCollectionByNameOrId(nameOrId: string): (Collection) - } - interface BaseApp { - /** - * FindCollectionReferences returns information for all relation fields - * referencing the provided collection. - * - * If the provided collection has reference to itself then it will be - * also included in the result. To exclude it, pass the collection id - * as the excludeIds argument. - */ - findCollectionReferences(collection: Collection, ...excludeIds: string[]): _TygojaDict - } - interface BaseApp { - /** - * FindCachedCollectionReferences is similar to [BaseApp.FindCollectionReferences] - * but retrieves the Collection from the app cache instead of making a db call. - * - * NB! This method is suitable for read-only Collection operations. - * - * If you plan making changes to the returned Collection model, - * use [BaseApp.FindCollectionReferences] instead. - * - * Caveats: - * - * ``` - * - The returned Collection should be used only for read-only operations. - * Avoid directly modifying the returned cached Collection as it will affect - * the global cached value even if you don't persist the changes in the database! - * - If you are updating a Collection in a transaction and then call this method before commit, - * it'll return the cached Collection state and not the one from the uncommitted transaction. - * - The cache is automatically updated on collections db change (create/update/delete). - * To manually reload the cache you can call [BaseApp.ReloadCachedCollections]. - * ``` - */ - findCachedCollectionReferences(collection: Collection, ...excludeIds: string[]): _TygojaDict - } - interface BaseApp { - /** - * IsCollectionNameUnique checks that there is no existing collection - * with the provided name (case insensitive!). - * - * Note: case insensitive check because the name is used also as - * table name for the records. - */ - isCollectionNameUnique(name: string, ...excludeIds: string[]): boolean - } - interface BaseApp { - /** - * TruncateCollection deletes all records associated with the provided collection. - * - * The truncate operation is executed in a single transaction, - * aka. either everything is deleted or none. - * - * Note that this method will also trigger the records related - * cascade and file delete actions. - */ - truncateCollection(collection: Collection): void - } - interface BaseApp { - /** - * SyncRecordTableSchema compares the two provided collections - * and applies the necessary related record table changes. - * - * If oldCollection is null, then only newCollection is used to create the record table. - * - * This method is automatically invoked as part of a collection create/update/delete operation. - */ - syncRecordTableSchema(newCollection: Collection, oldCollection: Collection): void - } - interface collectionValidator { - } - interface optionsValidator { - [key:string]: any; - } - /** - * DBExporter defines an interface for custom DB data export. - * Usually used as part of [App.Save]. - */ - interface DBExporter { - [key:string]: any; - /** - * DBExport returns a key-value map with the data to be used when saving the struct in the database. - */ - dbExport(app: App): _TygojaDict - } - /** - * PreValidator defines an optional model interface for registering a - * function that will run BEFORE firing the validation hooks (see [App.ValidateWithContext]). - */ - interface PreValidator { - [key:string]: any; - /** - * PreValidate defines a function that runs BEFORE the validation hooks. - */ - preValidate(ctx: context.Context, app: App): void - } - /** - * PostValidator defines an optional model interface for registering a - * function that will run AFTER executing the validation hooks (see [App.ValidateWithContext]). - */ - interface PostValidator { - [key:string]: any; - /** - * PostValidate defines a function that runs AFTER the successful - * execution of the validation hooks. - */ - postValidate(ctx: context.Context, app: App): void - } - interface generateDefaultRandomId { - /** - * GenerateDefaultRandomId generates a default random id string - * (note: the generated random string is not intended for security purposes). - */ - (): string - } - interface BaseApp { - /** - * ModelQuery creates a new preconfigured select data.db query with preset - * SELECT, FROM and other common fields based on the provided model. - */ - modelQuery(m: Model): (dbx.SelectQuery) - } - interface BaseApp { - /** - * AuxModelQuery creates a new preconfigured select auxiliary.db query with preset - * SELECT, FROM and other common fields based on the provided model. - */ - auxModelQuery(m: Model): (dbx.SelectQuery) - } - interface BaseApp { - /** - * Delete deletes the specified model from the regular app database. - */ - delete(model: Model): void - } - interface BaseApp { - /** - * Delete deletes the specified model from the regular app database - * (the context could be used to limit the query execution). - */ - deleteWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * AuxDelete deletes the specified model from the auxiliary database. - */ - auxDelete(model: Model): void - } - interface BaseApp { - /** - * AuxDeleteWithContext deletes the specified model from the auxiliary database - * (the context could be used to limit the query execution). - */ - auxDeleteWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * Save validates and saves the specified model into the regular app database. - * - * If you don't want to run validations, use [App.SaveNoValidate()]. - */ - save(model: Model): void - } - interface BaseApp { - /** - * SaveWithContext is the same as [App.Save()] but allows specifying a context to limit the db execution. - * - * If you don't want to run validations, use [App.SaveNoValidateWithContext()]. - */ - saveWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * SaveNoValidate saves the specified model into the regular app database without performing validations. - * - * If you want to also run validations before persisting, use [App.Save()]. - */ - saveNoValidate(model: Model): void - } - interface BaseApp { - /** - * SaveNoValidateWithContext is the same as [App.SaveNoValidate()] - * but allows specifying a context to limit the db execution. - * - * If you want to also run validations before persisting, use [App.SaveWithContext()]. - */ - saveNoValidateWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * AuxSave validates and saves the specified model into the auxiliary app database. - * - * If you don't want to run validations, use [App.AuxSaveNoValidate()]. - */ - auxSave(model: Model): void - } - interface BaseApp { - /** - * AuxSaveWithContext is the same as [App.AuxSave()] but allows specifying a context to limit the db execution. - * - * If you don't want to run validations, use [App.AuxSaveNoValidateWithContext()]. - */ - auxSaveWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * AuxSaveNoValidate saves the specified model into the auxiliary app database without performing validations. - * - * If you want to also run validations before persisting, use [App.AuxSave()]. - */ - auxSaveNoValidate(model: Model): void - } - interface BaseApp { - /** - * AuxSaveNoValidateWithContext is the same as [App.AuxSaveNoValidate()] - * but allows specifying a context to limit the db execution. - * - * If you want to also run validations before persisting, use [App.AuxSaveWithContext()]. - */ - auxSaveNoValidateWithContext(ctx: context.Context, model: Model): void - } - interface BaseApp { - /** - * Validate triggers the OnModelValidate hook for the specified model. - */ - validate(model: Model): void - } - interface BaseApp { - /** - * ValidateWithContext is the same as Validate but allows specifying the ModelEvent context. - */ - validateWithContext(ctx: context.Context, model: Model): void - } - /** - * note: expects both builder to use the same driver - */ - interface dualDBBuilder { - } - interface dualDBBuilder { - /** - * Select implements the [dbx.Builder.Select] interface method. - */ - select(...cols: string[]): (dbx.SelectQuery) - } - interface dualDBBuilder { - /** - * Model implements the [dbx.Builder.Model] interface method. - */ - model(data: { - }): (dbx.ModelQuery) - } - interface dualDBBuilder { - /** - * GeneratePlaceholder implements the [dbx.Builder.GeneratePlaceholder] interface method. - */ - generatePlaceholder(i: number): string - } - interface dualDBBuilder { - /** - * Quote implements the [dbx.Builder.Quote] interface method. - */ - quote(str: string): string - } - interface dualDBBuilder { - /** - * QuoteSimpleTableName implements the [dbx.Builder.QuoteSimpleTableName] interface method. - */ - quoteSimpleTableName(table: string): string - } - interface dualDBBuilder { - /** - * QuoteSimpleColumnName implements the [dbx.Builder.QuoteSimpleColumnName] interface method. - */ - quoteSimpleColumnName(col: string): string - } - interface dualDBBuilder { - /** - * QueryBuilder implements the [dbx.Builder.QueryBuilder] interface method. - */ - queryBuilder(): dbx.QueryBuilder - } - interface dualDBBuilder { - /** - * Insert implements the [dbx.Builder.Insert] interface method. - */ - insert(table: string, cols: dbx.Params): (dbx.Query) - } - interface dualDBBuilder { - /** - * Upsert implements the [dbx.Builder.Upsert] interface method. - */ - upsert(table: string, cols: dbx.Params, ...constraints: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * Update implements the [dbx.Builder.Update] interface method. - */ - update(table: string, cols: dbx.Params, where: dbx.Expression): (dbx.Query) - } - interface dualDBBuilder { - /** - * Delete implements the [dbx.Builder.Delete] interface method. - */ - delete(table: string, where: dbx.Expression): (dbx.Query) - } - interface dualDBBuilder { - /** - * CreateTable implements the [dbx.Builder.CreateTable] interface method. - */ - createTable(table: string, cols: _TygojaDict, ...options: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * RenameTable implements the [dbx.Builder.RenameTable] interface method. - */ - renameTable(oldName: string, newName: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * DropTable implements the [dbx.Builder.DropTable] interface method. - */ - dropTable(table: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * TruncateTable implements the [dbx.Builder.TruncateTable] interface method. - */ - truncateTable(table: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * AddColumn implements the [dbx.Builder.AddColumn] interface method. - */ - addColumn(table: string, col: string, typ: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * DropColumn implements the [dbx.Builder.DropColumn] interface method. - */ - dropColumn(table: string, col: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * RenameColumn implements the [dbx.Builder.RenameColumn] interface method. - */ - renameColumn(table: string, oldName: string, newName: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * AlterColumn implements the [dbx.Builder.AlterColumn] interface method. - */ - alterColumn(table: string, col: string, typ: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * AddPrimaryKey implements the [dbx.Builder.AddPrimaryKey] interface method. - */ - addPrimaryKey(table: string, name: string, ...cols: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * DropPrimaryKey implements the [dbx.Builder.DropPrimaryKey] interface method. - */ - dropPrimaryKey(table: string, name: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * AddForeignKey implements the [dbx.Builder.AddForeignKey] interface method. - */ - addForeignKey(table: string, name: string, cols: Array, refCols: Array, refTable: string, ...options: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * DropForeignKey implements the [dbx.Builder.DropForeignKey] interface method. - */ - dropForeignKey(table: string, name: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * CreateIndex implements the [dbx.Builder.CreateIndex] interface method. - */ - createIndex(table: string, name: string, ...cols: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * CreateUniqueIndex implements the [dbx.Builder.CreateUniqueIndex] interface method. - */ - createUniqueIndex(table: string, name: string, ...cols: string[]): (dbx.Query) - } - interface dualDBBuilder { - /** - * DropIndex implements the [dbx.Builder.DropIndex] interface method. - */ - dropIndex(table: string, name: string): (dbx.Query) - } - interface dualDBBuilder { - /** - * NewQuery implements the [dbx.Builder.NewQuery] interface method by - * routing the SELECT queries to the concurrent builder instance. - */ - newQuery(str: string): (dbx.Query) - } - interface defaultDBConnect { - (dbPath: string): (dbx.DB) - } - /** - * Model defines an interface with common methods that all db models should have. - * - * Note: for simplicity composite pk are not supported. - */ - interface Model { - [key:string]: any; - tableName(): string - pk(): any - lastSavedPK(): any - isNew(): boolean - markAsNew(): void - markAsNotNew(): void - } - /** - * BaseModel defines a base struct that is intended to be embedded into other custom models. - */ - interface BaseModel { - /** - * Id is the primary key of the model. - * It is usually autogenerated by the parent model implementation. - */ - id: string - } - interface BaseModel { - /** - * LastSavedPK returns the last saved primary key of the model. - * - * Its value is updated to the latest PK value after MarkAsNotNew() or PostScan() calls. - */ - lastSavedPK(): any - } - interface BaseModel { - pk(): any - } - interface BaseModel { - /** - * IsNew indicates what type of db query (insert or update) - * should be used with the model instance. - */ - isNew(): boolean - } - interface BaseModel { - /** - * MarkAsNew clears the pk field and marks the current model as "new" - * (aka. forces m.IsNew() to be true). - */ - markAsNew(): void - } - interface BaseModel { - /** - * MarkAsNew set the pk field to the Id value and marks the current model - * as NOT "new" (aka. forces m.IsNew() to be false). - */ - markAsNotNew(): void - } - interface BaseModel { - /** - * PostScan implements the [dbx.PostScanner] interface. - * - * It is usually executed right after the model is populated with the db row values. - */ - postScan(): void - } - interface BaseApp { - /** - * TableColumns returns all column names of a single table by its name. - */ - tableColumns(tableName: string): Array - } - interface TableInfoRow { - /** - * the `db:"pk"` tag has special semantic so we cannot rename - * the original field without specifying a custom mapper - */ - pk: number - index: number - name: string - type: string - notNull: boolean - defaultValue: sql.NullString - } - interface BaseApp { - /** - * TableInfo returns the "table_info" pragma result for the specified table. - */ - tableInfo(tableName: string): Array<(TableInfoRow | undefined)> - } - interface BaseApp { - /** - * TableIndexes returns a name grouped map with all non empty index of the specified table. - * - * Note: This method doesn't return an error on nonexisting table. - */ - tableIndexes(tableName: string): _TygojaDict - } - interface BaseApp { - /** - * DeleteTable drops the specified table. - * - * This method is a no-op if a table with the provided name doesn't exist. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "tableName" argument must come only from trusted input! - */ - deleteTable(tableName: string): void - } - interface BaseApp { - /** - * HasTable checks if a table (or view) with the provided name exists (case insensitive). - * in the data.db. - */ - hasTable(tableName: string): boolean - } - interface BaseApp { - /** - * AuxHasTable checks if a table (or view) with the provided name exists (case insensitive) - * in the auixiliary.db. - */ - auxHasTable(tableName: string): boolean - } - interface BaseApp { - /** - * Vacuum executes VACUUM on the data.db in order to reclaim unused data db disk space. - */ - vacuum(): void - } - interface BaseApp { - /** - * AuxVacuum executes VACUUM on the auxiliary.db in order to reclaim unused auxiliary db disk space. - */ - auxVacuum(): void - } - interface BaseApp { - /** - * RunInTransaction wraps fn into a transaction for the regular app database. - * - * It is safe to nest RunInTransaction calls as long as you use the callback's txApp. - */ - runInTransaction(fn: (txApp: App) => void): void - } - interface BaseApp { - /** - * AuxRunInTransaction wraps fn into a transaction for the auxiliary app database. - * - * It is safe to nest RunInTransaction calls as long as you use the callback's txApp. - */ - auxRunInTransaction(fn: (txApp: App) => void): void - } - /** - * TxAppInfo represents an active transaction context associated to an existing app instance. - */ - interface TxAppInfo { - } - interface TxAppInfo { - /** - * OnComplete registers the provided callback that will be invoked - * once the related transaction ends (either completes successfully or rollbacked with an error). - * - * The callback receives the transaction error (if any) as its argument. - * Any additional errors returned by the OnComplete callbacks will be - * joined together with txErr when returning the final transaction result. - */ - onComplete(fn: (txErr: Error) => void): void - } - /** - * RequestEvent defines the PocketBase router handler event. - */ - type _sSsuavW = router.Event - interface RequestEvent extends _sSsuavW { - app: App - auth?: Record - } - interface RequestEvent { - /** - * RealIP returns the "real" IP address from the configured trusted proxy headers. - * - * If Settings.TrustedProxy is not configured or the found IP is empty, - * it fallbacks to e.RemoteIP(). - * - * NB! - * Be careful when used in a security critical context as it relies on - * the trusted proxy to be properly configured and your app to be accessible only through it. - * If you are not sure, use e.RemoteIP(). - */ - realIP(): string - } - interface RequestEvent { - /** - * HasSuperuserAuth checks whether the current RequestEvent has superuser authentication loaded. - */ - hasSuperuserAuth(): boolean - } - interface RequestEvent { - /** - * RequestInfo parses the current request into RequestInfo instance. - * - * Note that the returned result is cached to avoid copying the request data multiple times - * but the auth state and other common store items are always refreshed in case they were changed by another handler. - */ - requestInfo(): (RequestInfo) - } - /** - * RequestInfo defines a HTTP request data struct, usually used - * as part of the `@request.*` filter resolver. - * - * The Query and Headers fields contains only the first value for each found entry. - */ - interface RequestInfo { - query: _TygojaDict - headers: _TygojaDict - body: _TygojaDict - auth?: Record - method: string - context: string - } - interface RequestInfo { - /** - * HasSuperuserAuth checks whether the current RequestInfo instance - * has superuser authentication loaded. - */ - hasSuperuserAuth(): boolean - } - interface RequestInfo { - /** - * Clone creates a new shallow copy of the current RequestInfo and its Auth record (if any). - */ - clone(): (RequestInfo) - } - type _scfHRWh = hook.Event&RequestEvent - interface BatchRequestEvent extends _scfHRWh { - batch: Array<(InternalRequest | undefined)> - } - interface InternalRequest { - /** - * note: for uploading files the value must be either *filesystem.File or []*filesystem.File - */ - body: _TygojaDict - headers: _TygojaDict - method: string - url: string - } - interface InternalRequest { - validate(): void - } - interface HookTagger { - [key:string]: any; - hookTags(): Array - } - interface baseModelEventData { - model: Model - } - interface baseModelEventData { - tags(): Array - } - interface baseRecordEventData { - record?: Record - } - interface baseRecordEventData { - tags(): Array - } - interface baseCollectionEventData { - collection?: Collection - } - interface baseCollectionEventData { - tags(): Array - } - type _sDyjMmr = hook.Event - interface BootstrapEvent extends _sDyjMmr { - app: App - } - type _sCKjszS = hook.Event - interface TerminateEvent extends _sCKjszS { - app: App - isRestart: boolean - } - type _sCEgcwo = hook.Event - interface BackupEvent extends _sCEgcwo { - app: App - context: context.Context - name: string // the name of the backup to create/restore. - exclude: Array // list of dir entries to exclude from the backup create/restore. - } - type _swcVeOr = hook.Event - interface ServeEvent extends _swcVeOr { - app: App - router?: router.Router - server?: http.Server - certManager?: any - /** - * Listener allow specifying a custom network listener. - * - * Leave it nil to use the default net.Listen("tcp", e.Server.Addr). - */ - listener: net.Listener - /** - * InstallerFunc is the "installer" function that is called after - * successful server tcp bind but only if there is no explicit - * superuser record created yet. - * - * It runs in a separate goroutine and its default value is [apis.DefaultInstallerFunc]. - * - * It receives a system superuser record as argument that you can use to generate - * a short-lived auth token (e.g. systemSuperuser.NewStaticAuthToken(30 * time.Minute)) - * and concatenate it as query param for your installer page - * (if you are using the client-side SDKs, you can then load the - * token with pb.authStore.save(token) and perform any Web API request - * e.g. creating a new superuser). - * - * Set it to nil if you want to skip the installer. - */ - installerFunc: (app: App, systemSuperuser: Record, baseURL: string) => void - } - type _sEtdHeu = hook.Event&RequestEvent - interface SettingsListRequestEvent extends _sEtdHeu { - settings?: Settings - } - type _sHnRUbb = hook.Event&RequestEvent - interface SettingsUpdateRequestEvent extends _sHnRUbb { - oldSettings?: Settings - newSettings?: Settings - } - type _szGInmz = hook.Event - interface SettingsReloadEvent extends _szGInmz { - app: App - } - type _stFCNKk = hook.Event - interface MailerEvent extends _stFCNKk { - app: App - mailer: mailer.Mailer - message?: mailer.Message - } - type _sFVWybE = MailerEvent&baseRecordEventData - interface MailerRecordEvent extends _sFVWybE { - meta: _TygojaDict - } - type _skpgJYU = hook.Event&baseModelEventData - interface ModelEvent extends _skpgJYU { - app: App - context: context.Context - /** - * Could be any of the ModelEventType* constants, like: - * - create - * - update - * - delete - * - validate - */ - type: string - } - type _scJGyGJ = ModelEvent - interface ModelErrorEvent extends _scJGyGJ { - error: Error - } - type _sFNskcE = hook.Event&baseRecordEventData - interface RecordEvent extends _sFNskcE { - app: App - context: context.Context - /** - * Could be any of the ModelEventType* constants, like: - * - create - * - update - * - delete - * - validate - */ - type: string - } - type _sADBBFO = RecordEvent - interface RecordErrorEvent extends _sADBBFO { - error: Error - } - type _sjVFTsc = hook.Event&baseCollectionEventData - interface CollectionEvent extends _sjVFTsc { - app: App - context: context.Context - /** - * Could be any of the ModelEventType* constants, like: - * - create - * - update - * - delete - * - validate - */ - type: string - } - type _sTVOfiH = CollectionEvent - interface CollectionErrorEvent extends _sTVOfiH { - error: Error - } - type _svcaken = hook.Event&RequestEvent&baseRecordEventData - interface FileTokenRequestEvent extends _svcaken { - token: string - } - type _sfwgWUc = hook.Event&RequestEvent&baseCollectionEventData - interface FileDownloadRequestEvent extends _sfwgWUc { - record?: Record - fileField?: FileField - servedPath: string - servedName: string - } - type _sSbGVqN = hook.Event&RequestEvent - interface CollectionsListRequestEvent extends _sSbGVqN { - collections: Array<(Collection | undefined)> - result?: search.Result - } - type _slOXOLE = hook.Event&RequestEvent - interface CollectionsImportRequestEvent extends _slOXOLE { - collectionsData: Array<_TygojaDict> - deleteMissing: boolean - } - type _siujKnZ = hook.Event&RequestEvent&baseCollectionEventData - interface CollectionRequestEvent extends _siujKnZ { - } - type _sKakeGz = hook.Event&RequestEvent - interface RealtimeConnectRequestEvent extends _sKakeGz { - client: subscriptions.Client - /** - * note: modifying it after the connect has no effect - */ - idleTimeout: time.Duration - } - type _smPsqTB = hook.Event&RequestEvent - interface RealtimeMessageEvent extends _smPsqTB { - client: subscriptions.Client - message?: subscriptions.Message - } - type _sjjKWUu = hook.Event&RequestEvent - interface RealtimeSubscribeRequestEvent extends _sjjKWUu { - client: subscriptions.Client - subscriptions: Array - } - type _sPluviw = hook.Event&RequestEvent&baseCollectionEventData - interface RecordsListRequestEvent extends _sPluviw { - /** - * @todo consider removing and maybe add as generic to the search.Result? - */ - records: Array<(Record | undefined)> - result?: search.Result - } - type _snemiHd = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestEvent extends _snemiHd { - record?: Record - } - type _sTpdYFO = hook.Event&baseRecordEventData - interface RecordEnrichEvent extends _sTpdYFO { - app: App - requestInfo?: RequestInfo - } - type _slOmiMf = hook.Event&RequestEvent&baseCollectionEventData - interface RecordCreateOTPRequestEvent extends _slOmiMf { - record?: Record - password: string - } - type _sdQxezU = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithOTPRequestEvent extends _sdQxezU { - record?: Record - otp?: OTP - } - type _sWTDBZU = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthRequestEvent extends _sWTDBZU { - record?: Record - token: string - meta: any - authMethod: string - } - type _sxFIkue = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithPasswordRequestEvent extends _sxFIkue { - record?: Record - identity: string - identityField: string - password: string - } - type _sJlcwKU = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthWithOAuth2RequestEvent extends _sJlcwKU { - providerName: string - providerClient: auth.Provider - record?: Record - oAuth2User?: auth.AuthUser - createData: _TygojaDict - isNewRecord: boolean - } - type _sMBnUFa = hook.Event&RequestEvent&baseCollectionEventData - interface RecordAuthRefreshRequestEvent extends _sMBnUFa { - record?: Record - } - type _sHvAkrq = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestPasswordResetRequestEvent extends _sHvAkrq { - record?: Record - } - type _sKukvnc = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmPasswordResetRequestEvent extends _sKukvnc { - record?: Record - } - type _snAikpn = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestVerificationRequestEvent extends _snAikpn { - record?: Record - } - type _sWfOAbO = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmVerificationRequestEvent extends _sWfOAbO { - record?: Record - } - type _sCDRxYR = hook.Event&RequestEvent&baseCollectionEventData - interface RecordRequestEmailChangeRequestEvent extends _sCDRxYR { - record?: Record - newEmail: string - } - type _sfXHbki = hook.Event&RequestEvent&baseCollectionEventData - interface RecordConfirmEmailChangeRequestEvent extends _sfXHbki { - record?: Record - newEmail: string - } - /** - * ExternalAuth defines a Record proxy for working with the externalAuths collection. - */ - type _sMtCbYa = Record - interface ExternalAuth extends _sMtCbYa { - } - interface newExternalAuth { - /** - * NewExternalAuth instantiates and returns a new blank *ExternalAuth model. - * - * Example usage: - * - * ``` - * ea := core.NewExternalAuth(app) - * ea.SetRecordRef(user.Id) - * ea.SetCollectionRef(user.Collection().Id) - * ea.SetProvider("google") - * ea.SetProviderId("...") - * app.Save(ea) - * ``` - */ - (app: App): (ExternalAuth) - } - interface ExternalAuth { - /** - * PreValidate implements the [PreValidator] interface and checks - * whether the proxy is properly loaded. - */ - preValidate(ctx: context.Context, app: App): void - } - interface ExternalAuth { - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - } - interface ExternalAuth { - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - interface ExternalAuth { - /** - * CollectionRef returns the "collectionRef" field value. - */ - collectionRef(): string - } - interface ExternalAuth { - /** - * SetCollectionRef updates the "collectionRef" record field value. - */ - setCollectionRef(collectionId: string): void - } - interface ExternalAuth { - /** - * RecordRef returns the "recordRef" record field value. - */ - recordRef(): string - } - interface ExternalAuth { - /** - * SetRecordRef updates the "recordRef" record field value. - */ - setRecordRef(recordId: string): void - } - interface ExternalAuth { - /** - * Provider returns the "provider" record field value. - */ - provider(): string - } - interface ExternalAuth { - /** - * SetProvider updates the "provider" record field value. - */ - setProvider(provider: string): void - } - interface ExternalAuth { - /** - * Provider returns the "providerId" record field value. - */ - providerId(): string - } - interface ExternalAuth { - /** - * SetProvider updates the "providerId" record field value. - */ - setProviderId(providerId: string): void - } - interface ExternalAuth { - /** - * Created returns the "created" record field value. - */ - created(): types.DateTime - } - interface ExternalAuth { - /** - * Updated returns the "updated" record field value. - */ - updated(): types.DateTime - } - interface BaseApp { - /** - * FindAllExternalAuthsByRecord returns all ExternalAuth models - * linked to the provided auth record. - */ - findAllExternalAuthsByRecord(authRecord: Record): Array<(ExternalAuth | undefined)> - } - interface BaseApp { - /** - * FindAllExternalAuthsByCollection returns all ExternalAuth models - * linked to the provided auth collection. - */ - findAllExternalAuthsByCollection(collection: Collection): Array<(ExternalAuth | undefined)> - } - interface BaseApp { - /** - * FindFirstExternalAuthByExpr returns the first available (the most recent created) - * ExternalAuth model that satisfies the non-nil expression. - */ - findFirstExternalAuthByExpr(expr: dbx.Expression): (ExternalAuth) - } - /** - * FieldFactoryFunc defines a simple function to construct a specific Field instance. - */ - interface FieldFactoryFunc {(): Field } - /** - * Field defines a common interface that all Collection fields should implement. - */ - interface Field { - [key:string]: any; - /** - * GetId returns the field id. - */ - getId(): string - /** - * SetId changes the field id. - */ - setId(id: string): void - /** - * GetName returns the field name. - */ - getName(): string - /** - * SetName changes the field name. - */ - setName(name: string): void - /** - * GetSystem returns the field system flag state. - */ - getSystem(): boolean - /** - * SetSystem changes the field system flag state. - */ - setSystem(system: boolean): void - /** - * GetHidden returns the field hidden flag state. - */ - getHidden(): boolean - /** - * SetHidden changes the field hidden flag state. - */ - setHidden(hidden: boolean): void - /** - * Type returns the unique type of the field. - */ - type(): string - /** - * ColumnType returns the DB column definition of the field. - */ - columnType(app: App): string - /** - * PrepareValue returns a properly formatted field value based on the provided raw one. - * - * This method is also called on record construction to initialize its default field value. - */ - prepareValue(record: Record, raw: any): any - /** - * ValidateSettings validates the current field value associated with the provided record. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - /** - * ValidateSettings validates the current field settings. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - /** - * MaxBodySizeCalculator defines an optional field interface for - * specifying the max size of a field value. - */ - interface MaxBodySizeCalculator { - [key:string]: any; - /** - * CalculateMaxBodySize returns the approximate max body size of a field value. - */ - calculateMaxBodySize(): number - } - interface SetterFunc {(record: Record, raw: any): void } - /** - * SetterFinder defines a field interface for registering custom field value setters. - */ - interface SetterFinder { - [key:string]: any; - /** - * FindSetter returns a single field value setter function - * by performing pattern-like field matching using the specified key. - * - * The key is usually just the field name but it could also - * contains "modifier" characters based on which you can perform custom set operations - * (ex. "users+" could be mapped to a function that will append new user to the existing field value). - * - * Return nil if you want to fallback to the default field value setter. - */ - findSetter(key: string): SetterFunc - } - interface GetterFunc {(record: Record): any } - /** - * GetterFinder defines a field interface for registering custom field value getters. - */ - interface GetterFinder { - [key:string]: any; - /** - * FindGetter returns a single field value getter function - * by performing pattern-like field matching using the specified key. - * - * The key is usually just the field name but it could also - * contains "modifier" characters based on which you can perform custom get operations - * (ex. "description:excerpt" could be mapped to a function that will return an excerpt of the current field value). - * - * Return nil if you want to fallback to the default field value setter. - */ - findGetter(key: string): GetterFunc - } - /** - * DriverValuer defines a Field interface for exporting and formatting - * a field value for the database. - */ - interface DriverValuer { - [key:string]: any; - /** - * DriverValue exports a single field value for persistence in the database. - */ - driverValue(record: Record): any - } - /** - * MultiValuer defines a field interface that every multi-valued (eg. with MaxSelect) field has. - */ - interface MultiValuer { - [key:string]: any; - /** - * IsMultiple checks whether the field is configured to support multiple or single values. - */ - isMultiple(): boolean - } - /** - * RecordInterceptor defines a field interface for reacting to various - * Record related operations (create, delete, validate, etc.). - */ - interface RecordInterceptor { - [key:string]: any; - /** - * Interceptor is invoked when a specific record action occurs - * allowing you to perform extra validations and normalization - * (ex. uploading or deleting files). - * - * Note that users must call actionFunc() manually if they want to - * execute the specific record action. - */ - intercept(ctx: context.Context, app: App, record: Record, actionName: string, actionFunc: () => void): void - } - interface defaultFieldIdValidationRule { - /** - * DefaultFieldIdValidationRule performs base validation on a field id value. - */ - (value: any): void - } - interface defaultFieldNameValidationRule { - /** - * DefaultFieldIdValidationRule performs base validation on a field name value. - */ - (value: any): void - } - /** - * AutodateField defines an "autodate" type field, aka. - * field which datetime value could be auto set on record create/update. - * - * This field is usually used for defining timestamp fields like "created" and "updated". - * - * Requires either both or at least one of the OnCreate or OnUpdate options to be set. - */ - interface AutodateField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * OnCreate auto sets the current datetime as field value on record create. - */ - onCreate: boolean - /** - * OnUpdate auto sets the current datetime as field value on record update. - */ - onUpdate: boolean - } - interface AutodateField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface AutodateField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface AutodateField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface AutodateField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface AutodateField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface AutodateField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface AutodateField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface AutodateField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface AutodateField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface AutodateField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface AutodateField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface AutodateField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface AutodateField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface AutodateField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - interface AutodateField { - /** - * Intercept implements the [RecordInterceptor] interface. - */ - intercept(ctx: context.Context, app: App, record: Record, actionName: string, actionFunc: () => void): void - } - /** - * BoolField defines "bool" type field to store a single true/false value. - * - * The respective zero record field value is false. - */ - interface BoolField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Required will require the field value to be always "true". - */ - required: boolean - } - interface BoolField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface BoolField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface BoolField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface BoolField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface BoolField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface BoolField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface BoolField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface BoolField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface BoolField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface BoolField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface BoolField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface BoolField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface BoolField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - /** - * DateField defines "date" type field to store a single [types.DateTime] value. - * - * The respective zero record field value is the zero [types.DateTime]. - */ - interface DateField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Min specifies the min allowed field value. - * - * Leave it empty to skip the validator. - */ - min: types.DateTime - /** - * Max specifies the max allowed field value. - * - * Leave it empty to skip the validator. - */ - max: types.DateTime - /** - * Required will require the field value to be non-zero [types.DateTime]. - */ - required: boolean - } - interface DateField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface DateField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface DateField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface DateField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface DateField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface DateField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface DateField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface DateField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface DateField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface DateField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface DateField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface DateField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface DateField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - /** - * EditorField defines "editor" type field to store HTML formatted text. - * - * The respective zero record field value is empty string. - */ - interface EditorField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * MaxSize specifies the maximum size of the allowed field value (in bytes and up to 2^53-1). - * - * If zero, a default limit of ~5MB is applied. - */ - maxSize: number - /** - * ConvertURLs is usually used to instruct the editor whether to - * apply url conversion (eg. stripping the domain name in case the - * urls are using the same domain as the one where the editor is loaded). - * - * (see also https://www.tiny.cloud/docs/tinymce/6/url-handling/#convert_urls) - */ - convertURLs: boolean - /** - * Required will require the field value to be non-empty string. - */ - required: boolean - } - interface EditorField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface EditorField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface EditorField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface EditorField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface EditorField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface EditorField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface EditorField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface EditorField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface EditorField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface EditorField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface EditorField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface EditorField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface EditorField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface EditorField { - /** - * CalculateMaxBodySize implements the [MaxBodySizeCalculator] interface. - */ - calculateMaxBodySize(): number - } - /** - * EmailField defines "email" type field for storing a single email string address. - * - * The respective zero record field value is empty string. - */ - interface EmailField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * ExceptDomains will require the email domain to NOT be included in the listed ones. - * - * This validator can be set only if OnlyDomains is empty. - */ - exceptDomains: Array - /** - * OnlyDomains will require the email domain to be included in the listed ones. - * - * This validator can be set only if ExceptDomains is empty. - */ - onlyDomains: Array - /** - * Required will require the field value to be non-empty email string. - */ - required: boolean - } - interface EmailField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface EmailField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface EmailField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface EmailField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface EmailField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface EmailField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface EmailField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface EmailField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface EmailField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface EmailField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface EmailField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface EmailField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface EmailField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - /** - * FileField defines "file" type field for managing record file(s). - * - * Only the file name is stored as part of the record value. - * New files (aka. files to upload) are expected to be of *filesytem.File. - * - * If MaxSelect is not set or <= 1, then the field value is expected to be a single record id. - * - * If MaxSelect is > 1, then the field value is expected to be a slice of record ids. - * - * The respective zero record field value is either empty string (single) or empty string slice (multiple). - * - * --- - * - * The following additional setter keys are available: - * - * ``` - * - "fieldName+" - append one or more files to the existing record one. For example: - * - * // []string{"old1.txt", "old2.txt", "new1_ajkvass.txt", "new2_klhfnwd.txt"} - * record.Set("documents+", []*filesystem.File{new1, new2}) - * - * - "+fieldName" - prepend one or more files to the existing record one. For example: - * - * // []string{"new1_ajkvass.txt", "new2_klhfnwd.txt", "old1.txt", "old2.txt",} - * record.Set("+documents", []*filesystem.File{new1, new2}) - * - * - "fieldName-" - subtract/delete one or more files from the existing record one. For example: - * - * // []string{"old2.txt",} - * record.Set("documents-", "old1.txt") - * ``` - */ - interface FileField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * MaxSize specifies the maximum size of a single uploaded file (in bytes and up to 2^53-1). - * - * If zero, a default limit of 5MB is applied. - */ - maxSize: number - /** - * MaxSelect specifies the max allowed files. - * - * For multiple files the value must be > 1, otherwise fallbacks to single (default). - */ - maxSelect: number - /** - * MimeTypes specifies an optional list of the allowed file mime types. - * - * Leave it empty to disable the validator. - */ - mimeTypes: Array - /** - * Thumbs specifies an optional list of the supported thumbs for image based files. - * - * Each entry must be in one of the following formats: - * - * ``` - * - WxH (eg. 100x300) - crop to WxH viewbox (from center) - * - WxHt (eg. 100x300t) - crop to WxH viewbox (from top) - * - WxHb (eg. 100x300b) - crop to WxH viewbox (from bottom) - * - WxHf (eg. 100x300f) - fit inside a WxH viewbox (without cropping) - * - 0xH (eg. 0x300) - resize to H height preserving the aspect ratio - * - Wx0 (eg. 100x0) - resize to W width preserving the aspect ratio - * ``` - */ - thumbs: Array - /** - * Protected will require the users to provide a special file token to access the file. - * - * Note that by default all files are publicly accessible. - * - * For the majority of the cases this is fine because by default - * all file names have random part appended to their name which - * need to be known by the user before accessing the file. - */ - protected: boolean - /** - * Required will require the field value to have at least one file. - */ - required: boolean - } - interface FileField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface FileField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface FileField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface FileField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface FileField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface FileField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface FileField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface FileField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface FileField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface FileField { - /** - * IsMultiple implements MultiValuer interface and checks whether the - * current field options support multiple values. - */ - isMultiple(): boolean - } - interface FileField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface FileField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface FileField { - /** - * DriverValue implements the [DriverValuer] interface. - */ - driverValue(record: Record): any - } - interface FileField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface FileField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface FileField { - /** - * CalculateMaxBodySize implements the [MaxBodySizeCalculator] interface. - */ - calculateMaxBodySize(): number - } - interface FileField { - /** - * Intercept implements the [RecordInterceptor] interface. - * - * note: files delete after records deletion is handled globally by the app FileManager hook - */ - intercept(ctx: context.Context, app: App, record: Record, actionName: string, actionFunc: () => void): void - } - interface FileField { - /** - * FindGetter implements the [GetterFinder] interface. - */ - findGetter(key: string): GetterFunc - } - interface FileField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - /** - * GeoPointField defines "geoPoint" type field for storing latitude and longitude GPS coordinates. - * - * You can set the record field value as [types.GeoPoint], map or serialized json object with lat-lon props. - * The stored value is always converted to [types.GeoPoint]. - * Nil, empty map, empty bytes slice, etc. results in zero [types.GeoPoint]. - * - * Examples of updating a record's GeoPointField value programmatically: - * - * ``` - * record.Set("location", types.GeoPoint{Lat: 123, Lon: 456}) - * record.Set("location", map[string]any{"lat":123, "lon":456}) - * record.Set("location", []byte(`{"lat":123, "lon":456}`) - * ``` - */ - interface GeoPointField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Required will require the field coordinates to be non-zero (aka. not "Null Island"). - */ - required: boolean - } - interface GeoPointField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface GeoPointField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface GeoPointField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface GeoPointField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface GeoPointField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface GeoPointField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface GeoPointField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface GeoPointField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface GeoPointField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface GeoPointField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface GeoPointField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface GeoPointField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface GeoPointField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - /** - * JSONField defines "json" type field for storing any serialized JSON value. - * - * The respective zero record field value is the zero [types.JSONRaw]. - */ - interface JSONField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * MaxSize specifies the maximum size of the allowed field value (in bytes and up to 2^53-1). - * - * If zero, a default limit of 1MB is applied. - */ - maxSize: number - /** - * Required will require the field value to be non-empty JSON value - * (aka. not "null", `""`, "[]", "{}"). - */ - required: boolean - } - interface JSONField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface JSONField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface JSONField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface JSONField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface JSONField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface JSONField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface JSONField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface JSONField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface JSONField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface JSONField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface JSONField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface JSONField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface JSONField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface JSONField { - /** - * CalculateMaxBodySize implements the [MaxBodySizeCalculator] interface. - */ - calculateMaxBodySize(): number - } - /** - * NumberField defines "number" type field for storing numeric (float64) value. - * - * The respective zero record field value is 0. - * - * The following additional setter keys are available: - * - * ``` - * - "fieldName+" - appends to the existing record value. For example: - * record.Set("total+", 5) - * - "fieldName-" - subtracts from the existing record value. For example: - * record.Set("total-", 5) - * ``` - */ - interface NumberField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Min specifies the min allowed field value. - * - * Leave it nil to skip the validator. - */ - min?: number - /** - * Max specifies the max allowed field value. - * - * Leave it nil to skip the validator. - */ - max?: number - /** - * OnlyInt will require the field value to be integer. - */ - onlyInt: boolean - /** - * Required will require the field value to be non-zero. - */ - required: boolean - } - interface NumberField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface NumberField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface NumberField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface NumberField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface NumberField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface NumberField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface NumberField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface NumberField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface NumberField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface NumberField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface NumberField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface NumberField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface NumberField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface NumberField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - /** - * PasswordField defines "password" type field for storing bcrypt hashed strings - * (usually used only internally for the "password" auth collection system field). - * - * If you want to set a direct bcrypt hash as record field value you can use the SetRaw method, for example: - * - * ``` - * // generates a bcrypt hash of "123456" and set it as field value - * // (record.GetString("password") returns the plain password until persisted, otherwise empty string) - * record.Set("password", "123456") - * - * // set directly a bcrypt hash of "123456" as field value - * // (record.GetString("password") returns empty string) - * record.SetRaw("password", "$2a$10$.5Elh8fgxypNUWhpUUr/xOa2sZm0VIaE0qWuGGl9otUfobb46T1Pq") - * ``` - * - * The following additional getter keys are available: - * - * ``` - * - "fieldName:hash" - returns the bcrypt hash string of the record field value (if any). For example: - * record.GetString("password:hash") - * ``` - */ - interface PasswordField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Pattern specifies an optional regex pattern to match against the field value. - * - * Leave it empty to skip the pattern check. - */ - pattern: string - /** - * Min specifies an optional required field string length. - */ - min: number - /** - * Max specifies an optional required field string length. - * - * If zero, fallback to max 71 bytes. - */ - max: number - /** - * Cost specifies the cost/weight/iteration/etc. bcrypt factor. - * - * If zero, fallback to [bcrypt.DefaultCost]. - * - * If explicitly set, must be between [bcrypt.MinCost] and [bcrypt.MaxCost]. - */ - cost: number - /** - * Required will require the field value to be non-empty string. - */ - required: boolean - } - interface PasswordField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface PasswordField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface PasswordField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface PasswordField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface PasswordField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface PasswordField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface PasswordField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface PasswordField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface PasswordField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface PasswordField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface PasswordField { - /** - * DriverValue implements the [DriverValuer] interface. - */ - driverValue(record: Record): any - } - interface PasswordField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface PasswordField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface PasswordField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface PasswordField { - /** - * Intercept implements the [RecordInterceptor] interface. - */ - intercept(ctx: context.Context, app: App, record: Record, actionName: string, actionFunc: () => void): void - } - interface PasswordField { - /** - * FindGetter implements the [GetterFinder] interface. - */ - findGetter(key: string): GetterFunc - } - interface PasswordField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - interface PasswordFieldValue { - lastError: Error - hash: string - plain: string - } - interface PasswordFieldValue { - validate(pass: string): boolean - } - /** - * RelationField defines "relation" type field for storing single or - * multiple collection record references. - * - * Requires the CollectionId option to be set. - * - * If MaxSelect is not set or <= 1, then the field value is expected to be a single record id. - * - * If MaxSelect is > 1, then the field value is expected to be a slice of record ids. - * - * The respective zero record field value is either empty string (single) or empty string slice (multiple). - * - * --- - * - * The following additional setter keys are available: - * - * ``` - * - "fieldName+" - append one or more values to the existing record one. For example: - * - * record.Set("categories+", []string{"new1", "new2"}) // []string{"old1", "old2", "new1", "new2"} - * - * - "+fieldName" - prepend one or more values to the existing record one. For example: - * - * record.Set("+categories", []string{"new1", "new2"}) // []string{"new1", "new2", "old1", "old2"} - * - * - "fieldName-" - subtract one or more values from the existing record one. For example: - * - * record.Set("categories-", "old1") // []string{"old2"} - * ``` - */ - interface RelationField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * CollectionId is the id of the related collection. - */ - collectionId: string - /** - * CascadeDelete indicates whether the root model should be deleted - * in case of delete of all linked relations. - */ - cascadeDelete: boolean - /** - * MinSelect indicates the min number of allowed relation records - * that could be linked to the main model. - * - * No min limit is applied if it is zero or negative value. - */ - minSelect: number - /** - * MaxSelect indicates the max number of allowed relation records - * that could be linked to the main model. - * - * For multiple select the value must be > 1, otherwise fallbacks to single (default). - * - * If MinSelect is set, MaxSelect must be at least >= MinSelect. - */ - maxSelect: number - /** - * Required will require the field value to be non-empty. - */ - required: boolean - } - interface RelationField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface RelationField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface RelationField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface RelationField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface RelationField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface RelationField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface RelationField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface RelationField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface RelationField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface RelationField { - /** - * IsMultiple implements [MultiValuer] interface and checks whether the - * current field options support multiple values. - */ - isMultiple(): boolean - } - interface RelationField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface RelationField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface RelationField { - /** - * DriverValue implements the [DriverValuer] interface. - */ - driverValue(record: Record): any - } - interface RelationField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface RelationField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface RelationField { - /** - * FindSetter implements [SetterFinder] interface method. - */ - findSetter(key: string): SetterFunc - } - /** - * SelectField defines "select" type field for storing single or - * multiple string values from a predefined list. - * - * Requires the Values option to be set. - * - * If MaxSelect is not set or <= 1, then the field value is expected to be a single Values element. - * - * If MaxSelect is > 1, then the field value is expected to be a subset of Values slice. - * - * The respective zero record field value is either empty string (single) or empty string slice (multiple). - * - * --- - * - * The following additional setter keys are available: - * - * ``` - * - "fieldName+" - append one or more values to the existing record one. For example: - * - * record.Set("roles+", []string{"new1", "new2"}) // []string{"old1", "old2", "new1", "new2"} - * - * - "+fieldName" - prepend one or more values to the existing record one. For example: - * - * record.Set("+roles", []string{"new1", "new2"}) // []string{"new1", "new2", "old1", "old2"} - * - * - "fieldName-" - subtract one or more values from the existing record one. For example: - * - * record.Set("roles-", "old1") // []string{"old2"} - * ``` - */ - interface SelectField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Values specifies the list of accepted values. - */ - values: Array - /** - * MaxSelect specifies the max allowed selected values. - * - * For multiple select the value must be > 1, otherwise fallbacks to single (default). - */ - maxSelect: number - /** - * Required will require the field value to be non-empty. - */ - required: boolean - } - interface SelectField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface SelectField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface SelectField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface SelectField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface SelectField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface SelectField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface SelectField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface SelectField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface SelectField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface SelectField { - /** - * IsMultiple implements [MultiValuer] interface and checks whether the - * current field options support multiple values. - */ - isMultiple(): boolean - } - interface SelectField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface SelectField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface SelectField { - /** - * DriverValue implements the [DriverValuer] interface. - */ - driverValue(record: Record): any - } - interface SelectField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface SelectField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface SelectField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - /** - * TextField defines "text" type field for storing any string value. - * - * The respective zero record field value is empty string. - * - * The following additional setter keys are available: - * - * - "fieldName:autogenerate" - autogenerate field value if AutogeneratePattern is set. For example: - * - * ``` - * record.Set("slug:autogenerate", "") // [random value] - * record.Set("slug:autogenerate", "abc-") // abc-[random value] - * ``` - */ - interface TextField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * Min specifies the minimum required string characters. - * - * if zero value, no min limit is applied. - */ - min: number - /** - * Max specifies the maximum allowed string characters. - * - * If zero, a default limit of 5000 is applied. - */ - max: number - /** - * Pattern specifies an optional regex pattern to match against the field value. - * - * Leave it empty to skip the pattern check. - */ - pattern: string - /** - * AutogeneratePattern specifies an optional regex pattern that could - * be used to generate random string from it and set it automatically - * on record create if no explicit value is set or when the `:autogenerate` modifier is used. - * - * Note: the generated value still needs to satisfy min, max, pattern (if set) - */ - autogeneratePattern: string - /** - * Required will require the field value to be non-empty string. - */ - required: boolean - /** - * PrimaryKey will mark the field as primary key. - * - * A single collection can have only 1 field marked as primary key. - */ - primaryKey: boolean - } - interface TextField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface TextField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface TextField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface TextField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface TextField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface TextField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface TextField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface TextField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface TextField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface TextField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface TextField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface TextField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface TextField { - /** - * ValidatePlainValue validates the provided string against the field options. - */ - validatePlainValue(value: string): void - } - interface TextField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface TextField { - /** - * Intercept implements the [RecordInterceptor] interface. - */ - intercept(ctx: context.Context, app: App, record: Record, actionName: string, actionFunc: () => void): void - } - interface TextField { - /** - * FindSetter implements the [SetterFinder] interface. - */ - findSetter(key: string): SetterFunc - } - /** - * URLField defines "url" type field for storing a single URL string value. - * - * The respective zero record field value is empty string. - */ - interface URLField { - /** - * Name (required) is the unique name of the field. - */ - name: string - /** - * Id is the unique stable field identifier. - * - * It is automatically generated from the name when adding to a collection FieldsList. - */ - id: string - /** - * System prevents the renaming and removal of the field. - */ - system: boolean - /** - * Hidden hides the field from the API response. - */ - hidden: boolean - /** - * Presentable hints the Dashboard UI to use the underlying - * field record value in the relation preview label. - */ - presentable: boolean - /** - * ExceptDomains will require the URL domain to NOT be included in the listed ones. - * - * This validator can be set only if OnlyDomains is empty. - */ - exceptDomains: Array - /** - * OnlyDomains will require the URL domain to be included in the listed ones. - * - * This validator can be set only if ExceptDomains is empty. - */ - onlyDomains: Array - /** - * Required will require the field value to be non-empty URL string. - */ - required: boolean - } - interface URLField { - /** - * Type implements [Field.Type] interface method. - */ - type(): string - } - interface URLField { - /** - * GetId implements [Field.GetId] interface method. - */ - getId(): string - } - interface URLField { - /** - * SetId implements [Field.SetId] interface method. - */ - setId(id: string): void - } - interface URLField { - /** - * GetName implements [Field.GetName] interface method. - */ - getName(): string - } - interface URLField { - /** - * SetName implements [Field.SetName] interface method. - */ - setName(name: string): void - } - interface URLField { - /** - * GetSystem implements [Field.GetSystem] interface method. - */ - getSystem(): boolean - } - interface URLField { - /** - * SetSystem implements [Field.SetSystem] interface method. - */ - setSystem(system: boolean): void - } - interface URLField { - /** - * GetHidden implements [Field.GetHidden] interface method. - */ - getHidden(): boolean - } - interface URLField { - /** - * SetHidden implements [Field.SetHidden] interface method. - */ - setHidden(hidden: boolean): void - } - interface URLField { - /** - * ColumnType implements [Field.ColumnType] interface method. - */ - columnType(app: App): string - } - interface URLField { - /** - * PrepareValue implements [Field.PrepareValue] interface method. - */ - prepareValue(record: Record, raw: any): any - } - interface URLField { - /** - * ValidateValue implements [Field.ValidateValue] interface method. - */ - validateValue(ctx: context.Context, app: App, record: Record): void - } - interface URLField { - /** - * ValidateSettings implements [Field.ValidateSettings] interface method. - */ - validateSettings(ctx: context.Context, app: App, collection: Collection): void - } - interface newFieldsList { - /** - * NewFieldsList creates a new FieldsList instance with the provided fields. - */ - (...fields: Field[]): FieldsList - } - /** - * FieldsList defines a Collection slice of fields. - */ - interface FieldsList extends Array{} - interface FieldsList { - /** - * Clone creates a deep clone of the current list. - */ - clone(): FieldsList - } - interface FieldsList { - /** - * FieldNames returns a slice with the name of all list fields. - */ - fieldNames(): Array - } - interface FieldsList { - /** - * AsMap returns a map with all registered list field. - * The returned map is indexed with each field name. - */ - asMap(): _TygojaDict - } - interface FieldsList { - /** - * GetById returns a single field by its id. - */ - getById(fieldId: string): Field - } - interface FieldsList { - /** - * GetByName returns a single field by its name. - */ - getByName(fieldName: string): Field - } - interface FieldsList { - /** - * RemoveById removes a single field by its id. - * - * This method does nothing if field with the specified id doesn't exist. - */ - removeById(fieldId: string): void - } - interface FieldsList { - /** - * RemoveByName removes a single field by its name. - * - * This method does nothing if field with the specified name doesn't exist. - */ - removeByName(fieldName: string): void - } - interface FieldsList { - /** - * Add adds one or more fields to the current list. - * - * By default this method will try to REPLACE existing fields with - * the new ones by their id or by their name if the new field doesn't have an explicit id. - * - * If no matching existing field is found, it will APPEND the field to the end of the list. - * - * In all cases, if any of the new fields don't have an explicit id it will auto generate a default one for them - * (the id value doesn't really matter and it is mostly used as a stable identifier in case of a field rename). - */ - add(...fields: Field[]): void - } - interface FieldsList { - /** - * AddAt is the same as Add but insert/move the fields at the specific position. - * - * If pos < 0, then this method acts the same as calling Add. - * - * If pos > FieldsList total items, then the specified fields are inserted/moved at the end of the list. - */ - addAt(pos: number, ...fields: Field[]): void - } - interface FieldsList { - /** - * AddMarshaledJSON parses the provided raw json data and adds the - * found fields into the current list (following the same rule as the Add method). - * - * The rawJSON argument could be one of: - * ``` - * - serialized array of field objects - * - single field object. - * ``` - * - * Example: - * - * ``` - * l.AddMarshaledJSON([]byte{`{"type":"text", name: "test"}`}) - * l.AddMarshaledJSON([]byte{`[{"type":"text", name: "test1"}, {"type":"text", name: "test2"}]`}) - * ``` - */ - addMarshaledJSON(rawJSON: string|Array): void - } - interface FieldsList { - /** - * AddMarshaledJSONAt is the same as AddMarshaledJSON but insert/move the fields at the specific position. - * - * If pos < 0, then this method acts the same as calling AddMarshaledJSON. - * - * If pos > FieldsList total items, then the specified fields are inserted/moved at the end of the list. - */ - addMarshaledJSONAt(pos: number, rawJSON: string|Array): void - } - interface FieldsList { - /** - * String returns the string representation of the current list. - */ - string(): string - } - interface onlyFieldType { - type: string - } - type _swZLBAb = Field - interface fieldWithType extends _swZLBAb { - type: string - } - interface fieldWithType { - unmarshalJSON(data: string|Array): void - } - interface FieldsList { - /** - * UnmarshalJSON implements [json.Unmarshaler] and - * loads the provided json data into the current FieldsList. - */ - unmarshalJSON(data: string|Array): void - } - interface FieldsList { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array - } - interface FieldsList { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - interface FieldsList { - /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current FieldsList instance. - */ - scan(value: any): void - } - type _sphBvpU = BaseModel - interface Log extends _sphBvpU { - created: types.DateTime - data: types.JSONMap - message: string - level: number - } - interface Log { - tableName(): string - } - interface BaseApp { - /** - * LogQuery returns a new Log select query. - */ - logQuery(): (dbx.SelectQuery) - } - interface BaseApp { - /** - * FindLogById finds a single Log entry by its id. - */ - findLogById(id: string): (Log) - } - /** - * LogsStatsItem defines the total number of logs for a specific time period. - */ - interface LogsStatsItem { - date: types.DateTime - total: number - } - interface BaseApp { - /** - * LogsStats returns hourly grouped logs statistics. - */ - logsStats(expr: dbx.Expression): Array<(LogsStatsItem | undefined)> - } - interface BaseApp { - /** - * DeleteOldLogs delete all logs that are created before createdBefore. - * - * For better performance the logs delete is executed as plain SQL statement, - * aka. no delete model hook events will be fired. - */ - deleteOldLogs(createdBefore: time.Time): void - } - /** - * MFA defines a Record proxy for working with the mfas collection. - */ - type _sCBfLbc = Record - interface MFA extends _sCBfLbc { - } - interface newMFA { - /** - * NewMFA instantiates and returns a new blank *MFA model. - * - * Example usage: - * - * ``` - * mfa := core.NewMFA(app) - * mfa.SetRecordRef(user.Id) - * mfa.SetCollectionRef(user.Collection().Id) - * mfa.SetMethod(core.MFAMethodPassword) - * app.Save(mfa) - * ``` - */ - (app: App): (MFA) - } - interface MFA { - /** - * PreValidate implements the [PreValidator] interface and checks - * whether the proxy is properly loaded. - */ - preValidate(ctx: context.Context, app: App): void - } - interface MFA { - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - } - interface MFA { - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - interface MFA { - /** - * CollectionRef returns the "collectionRef" field value. - */ - collectionRef(): string - } - interface MFA { - /** - * SetCollectionRef updates the "collectionRef" record field value. - */ - setCollectionRef(collectionId: string): void - } - interface MFA { - /** - * RecordRef returns the "recordRef" record field value. - */ - recordRef(): string - } - interface MFA { - /** - * SetRecordRef updates the "recordRef" record field value. - */ - setRecordRef(recordId: string): void - } - interface MFA { - /** - * Method returns the "method" record field value. - */ - method(): string - } - interface MFA { - /** - * SetMethod updates the "method" record field value. - */ - setMethod(method: string): void - } - interface MFA { - /** - * Created returns the "created" record field value. - */ - created(): types.DateTime - } - interface MFA { - /** - * Updated returns the "updated" record field value. - */ - updated(): types.DateTime - } - interface MFA { - /** - * HasExpired checks if the mfa is expired, aka. whether it has been - * more than maxElapsed time since its creation. - */ - hasExpired(maxElapsed: time.Duration): boolean - } - interface BaseApp { - /** - * FindAllMFAsByRecord returns all MFA models linked to the provided auth record. - */ - findAllMFAsByRecord(authRecord: Record): Array<(MFA | undefined)> - } - interface BaseApp { - /** - * FindAllMFAsByCollection returns all MFA models linked to the provided collection. - */ - findAllMFAsByCollection(collection: Collection): Array<(MFA | undefined)> - } - interface BaseApp { - /** - * FindMFAById returns a single MFA model by its id. - */ - findMFAById(id: string): (MFA) - } - interface BaseApp { - /** - * DeleteAllMFAsByRecord deletes all MFA models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllMFAsByRecord(authRecord: Record): void - } - interface BaseApp { - /** - * DeleteExpiredMFAs deletes the expired MFAs for all auth collections. - */ - deleteExpiredMFAs(): void - } - interface Migration { - up: (txApp: App) => void - down: (txApp: App) => void - file: string - reapplyCondition: (txApp: App, runner: MigrationsRunner, fileName: string) => boolean - } - /** - * MigrationsList defines a list with migration definitions - */ - interface MigrationsList { - } - interface MigrationsList { - /** - * Item returns a single migration from the list by its index. - */ - item(index: number): (Migration) - } - interface MigrationsList { - /** - * Items returns the internal migrations list slice. - */ - items(): Array<(Migration | undefined)> - } - interface MigrationsList { - /** - * Copy copies all provided list migrations into the current one. - */ - copy(list: MigrationsList): void - } - interface MigrationsList { - /** - * Add adds adds an existing migration definition to the list. - * - * If m.File is not provided, it will try to get the name from its .go file. - * - * The list will be sorted automatically based on the migrations file name. - */ - add(m: Migration): void - } - interface MigrationsList { - /** - * Register adds new migration definition to the list. - * - * If optFilename is not provided, it will try to get the name from its .go file. - * - * The list will be sorted automatically based on the migrations file name. - */ - register(up: (txApp: App) => void, down: (txApp: App) => void, ...optFilename: string[]): void - } - /** - * MigrationsRunner defines a simple struct for managing the execution of db migrations. - */ - interface MigrationsRunner { - } - interface newMigrationsRunner { - /** - * NewMigrationsRunner creates and initializes a new db migrations MigrationsRunner instance. - */ - (app: App, migrationsList: MigrationsList): (MigrationsRunner) - } - interface MigrationsRunner { - /** - * Run interactively executes the current runner with the provided args. - * - * The following commands are supported: - * - up - applies all migrations - * - down [n] - reverts the last n (default 1) applied migrations - * - history-sync - syncs the migrations table with the runner's migrations list - */ - run(...args: string[]): void - } - interface MigrationsRunner { - /** - * Up executes all unapplied migrations for the provided runner. - * - * On success returns list with the applied migrations file names. - */ - up(): Array - } - interface MigrationsRunner { - /** - * Down reverts the last `toRevertCount` applied migrations - * (in the order they were applied). - * - * On success returns list with the reverted migrations file names. - */ - down(toRevertCount: number): Array - } - interface MigrationsRunner { - /** - * RemoveMissingAppliedMigrations removes the db entries of all applied migrations - * that are not listed in the runner's migrations list. - */ - removeMissingAppliedMigrations(): void - } - /** - * OTP defines a Record proxy for working with the otps collection. - */ - type _szherMo = Record - interface OTP extends _szherMo { - } - interface newOTP { - /** - * NewOTP instantiates and returns a new blank *OTP model. - * - * Example usage: - * - * ``` - * otp := core.NewOTP(app) - * otp.SetRecordRef(user.Id) - * otp.SetCollectionRef(user.Collection().Id) - * otp.SetPassword(security.RandomStringWithAlphabet(6, "1234567890")) - * app.Save(otp) - * ``` - */ - (app: App): (OTP) - } - interface OTP { - /** - * PreValidate implements the [PreValidator] interface and checks - * whether the proxy is properly loaded. - */ - preValidate(ctx: context.Context, app: App): void - } - interface OTP { - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - } - interface OTP { - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - interface OTP { - /** - * CollectionRef returns the "collectionRef" field value. - */ - collectionRef(): string - } - interface OTP { - /** - * SetCollectionRef updates the "collectionRef" record field value. - */ - setCollectionRef(collectionId: string): void - } - interface OTP { - /** - * RecordRef returns the "recordRef" record field value. - */ - recordRef(): string - } - interface OTP { - /** - * SetRecordRef updates the "recordRef" record field value. - */ - setRecordRef(recordId: string): void - } - interface OTP { - /** - * SentTo returns the "sentTo" record field value. - * - * It could be any string value (email, phone, message app id, etc.) - * and usually is used as part of the auth flow to update the verified - * user state in case for example the sentTo value matches with the user record email. - */ - sentTo(): string - } - interface OTP { - /** - * SetSentTo updates the "sentTo" record field value. - */ - setSentTo(val: string): void - } - interface OTP { - /** - * Created returns the "created" record field value. - */ - created(): types.DateTime - } - interface OTP { - /** - * Updated returns the "updated" record field value. - */ - updated(): types.DateTime - } - interface OTP { - /** - * HasExpired checks if the otp is expired, aka. whether it has been - * more than maxElapsed time since its creation. - */ - hasExpired(maxElapsed: time.Duration): boolean - } - interface BaseApp { - /** - * FindAllOTPsByRecord returns all OTP models linked to the provided auth record. - */ - findAllOTPsByRecord(authRecord: Record): Array<(OTP | undefined)> - } - interface BaseApp { - /** - * FindAllOTPsByCollection returns all OTP models linked to the provided collection. - */ - findAllOTPsByCollection(collection: Collection): Array<(OTP | undefined)> - } - interface BaseApp { - /** - * FindOTPById returns a single OTP model by its id. - */ - findOTPById(id: string): (OTP) - } - interface BaseApp { - /** - * DeleteAllOTPsByRecord deletes all OTP models associated with the provided record. - * - * Returns a combined error with the failed deletes. - */ - deleteAllOTPsByRecord(authRecord: Record): void - } - interface BaseApp { - /** - * DeleteExpiredOTPs deletes the expired OTPs for all auth collections. - */ - deleteExpiredOTPs(): void - } - /** - * RecordFieldResolver defines a custom search resolver struct for - * managing Record model search fields. - * - * Usually used together with `search.Provider`. - * Example: - * - * ``` - * resolver := resolvers.NewRecordFieldResolver( - * app, - * myCollection, - * &models.RequestInfo{...}, - * true, - * ) - * provider := search.NewProvider(resolver) - * ... - * ``` - */ - interface RecordFieldResolver { - } - interface RecordFieldResolver { - /** - * AllowedFields returns a copy of the resolver's allowed fields. - */ - allowedFields(): Array - } - interface RecordFieldResolver { - /** - * SetAllowedFields replaces the resolver's allowed fields with the new ones. - */ - setAllowedFields(newAllowedFields: Array): void - } - interface RecordFieldResolver { - /** - * AllowHiddenFields returns whether the current resolver allows filtering hidden fields. - */ - allowHiddenFields(): boolean - } - interface RecordFieldResolver { - /** - * SetAllowHiddenFields enables or disables hidden fields filtering. - */ - setAllowHiddenFields(allowHiddenFields: boolean): void - } - interface newRecordFieldResolver { - /** - * NewRecordFieldResolver creates and initializes a new `RecordFieldResolver`. - */ - (app: App, baseCollection: Collection, requestInfo: RequestInfo, allowHiddenFields: boolean): (RecordFieldResolver) - } - interface RecordFieldResolver { - /** - * UpdateQuery implements `search.FieldResolver` interface. - * - * Conditionally updates the provided search query based on the - * resolved fields (eg. dynamically joining relations). - */ - updateQuery(query: dbx.SelectQuery): void - } - interface RecordFieldResolver { - /** - * Resolve implements `search.FieldResolver` interface. - * - * Example of some resolvable fieldName formats: - * - * ``` - * id - * someSelect.each - * project.screen.status - * screen.project_via_prototype.name - * @request.context - * @request.method - * @request.query.filter - * @request.headers.x_token - * @request.auth.someRelation.name - * @request.body.someRelation.name - * @request.body.someField - * @request.body.someSelect:each - * @request.body.someField:isset - * @collection.product.name - * ``` - */ - resolve(fieldName: string): (search.ResolverResult) - } - interface mapExtractor { - [key:string]: any; - asMap(): _TygojaDict - } - /** - * join defines the specification for a single SQL JOIN clause. - */ - interface join { - } - /** - * multiMatchSubquery defines a record multi-match subquery expression. - */ - interface multiMatchSubquery { - } - interface multiMatchSubquery { - /** - * Build converts the expression into a SQL fragment. - * - * Implements [dbx.Expression] interface. - */ - build(db: dbx.DB, params: dbx.Params): string - } - interface runner { - } - type _svnfMnv = BaseModel - interface Record extends _svnfMnv { - } - interface newRecord { - /** - * NewRecord initializes a new empty Record model. - */ - (collection: Collection): (Record) - } - interface Record { - /** - * Collection returns the Collection model associated with the current Record model. - * - * NB! The returned collection is only for read purposes and it shouldn't be modified - * because it could have unintended side-effects on other Record models from the same collection. - */ - collection(): (Collection) - } - interface Record { - /** - * TableName returns the table name associated with the current Record model. - */ - tableName(): string - } - interface Record { - /** - * PostScan implements the [dbx.PostScanner] interface. - * - * It essentially refreshes/updates the current Record original state - * as if the model was fetched from the databases for the first time. - * - * Or in other words, it means that m.Original().FieldsData() will have - * the same values as m.Record().FieldsData(). - */ - postScan(): void - } - interface Record { - /** - * HookTags returns the hook tags associated with the current record. - */ - hookTags(): Array - } - interface Record { - /** - * BaseFilesPath returns the storage dir path used by the record. - */ - baseFilesPath(): string - } - interface Record { - /** - * Original returns a shallow copy of the current record model populated - * with its ORIGINAL db data state (aka. right after PostScan()) - * and everything else reset to the defaults. - * - * If record was created using NewRecord() the original will be always - * a blank record (until PostScan() is invoked). - */ - original(): (Record) - } - interface Record { - /** - * Fresh returns a shallow copy of the current record model populated - * with its LATEST data state and everything else reset to the defaults - * (aka. no expand, no unknown fields and with default visibility flags). - */ - fresh(): (Record) - } - interface Record { - /** - * Clone returns a shallow copy of the current record model with all of - * its collection and unknown fields data, expand and flags copied. - * - * use [Record.Fresh()] instead if you want a copy with only the latest - * collection fields data and everything else reset to the defaults. - */ - clone(): (Record) - } - interface Record { - /** - * Expand returns a shallow copy of the current Record model expand data (if any). - */ - expand(): _TygojaDict - } - interface Record { - /** - * SetExpand replaces the current Record's expand with the provided expand arg data (shallow copied). - */ - setExpand(expand: _TygojaDict): void - } - interface Record { - /** - * MergeExpand merges recursively the provided expand data into - * the current model's expand (if any). - * - * Note that if an expanded prop with the same key is a slice (old or new expand) - * then both old and new records will be merged into a new slice (aka. a :merge: [b,c] => [a,b,c]). - * Otherwise the "old" expanded record will be replace with the "new" one (aka. a :merge: aNew => aNew). - */ - mergeExpand(expand: _TygojaDict): void - } - interface Record { - /** - * FieldsData returns a shallow copy ONLY of the collection's fields record's data. - */ - fieldsData(): _TygojaDict - } - interface Record { - /** - * CustomData returns a shallow copy ONLY of the custom record fields data, - * aka. fields that are neither defined by the collection, nor special system ones. - * - * Note that custom fields prefixed with "@pbInternal" are always skipped. - */ - customData(): _TygojaDict - } - interface Record { - /** - * WithCustomData toggles the export/serialization of custom data fields - * (false by default). - */ - withCustomData(state: boolean): (Record) - } - interface Record { - /** - * IgnoreEmailVisibility toggles the flag to ignore the auth record email visibility check. - */ - ignoreEmailVisibility(state: boolean): (Record) - } - interface Record { - /** - * IgnoreUnchangedFields toggles the flag to ignore the unchanged fields - * from the DB export for the UPDATE SQL query. - * - * This could be used if you want to save only the record fields that you've changed - * without overwrite other untouched fields in case of concurrent update. - * - * Note that the fields change comparison is based on the current fields against m.Original() - * (aka. if you have performed save on the same Record instance multiple times you may have to refetch it, - * so that m.Original() could reflect the last saved change). - */ - ignoreUnchangedFields(state: boolean): (Record) - } - interface Record { - /** - * Set sets the provided key-value data pair into the current Record - * model directly as it is WITHOUT NORMALIZATIONS. - * - * See also [Record.Set]. - */ - setRaw(key: string, value: any): void - } - interface Record { - /** - * SetIfFieldExists sets the provided key-value data pair into the current Record model - * ONLY if key is existing Collection field name/modifier. - * - * This method does nothing if key is not a known Collection field name/modifier. - * - * On success returns the matched Field, otherwise - nil. - * - * To set any key-value, including custom/unknown fields, use the [Record.Set] method. - */ - setIfFieldExists(key: string, value: any): Field - } - interface Record { - /** - * Set sets the provided key-value data pair into the current Record model. - * - * If the record collection has field with name matching the provided "key", - * the value will be further normalized according to the field setter(s). - */ - set(key: string, value: any): void - } - interface Record { - getRaw(key: string): any - } - interface Record { - /** - * Get returns a normalized single record model data value for "key". - */ - get(key: string): any - } - interface Record { - /** - * Load bulk loads the provided data into the current Record model. - */ - load(data: _TygojaDict): void - } - interface Record { - /** - * GetBool returns the data value for "key" as a bool. - */ - getBool(key: string): boolean - } - interface Record { - /** - * GetString returns the data value for "key" as a string. - */ - getString(key: string): string - } - interface Record { - /** - * GetInt returns the data value for "key" as an int. - */ - getInt(key: string): number - } - interface Record { - /** - * GetFloat returns the data value for "key" as a float64. - */ - getFloat(key: string): number - } - interface Record { - /** - * GetDateTime returns the data value for "key" as a DateTime instance. - */ - getDateTime(key: string): types.DateTime - } - interface Record { - /** - * GetGeoPoint returns the data value for "key" as a GeoPoint instance. - */ - getGeoPoint(key: string): types.GeoPoint - } - interface Record { - /** - * GetStringSlice returns the data value for "key" as a slice of non-zero unique strings. - */ - getStringSlice(key: string): Array - } - interface Record { - /** - * GetUnsavedFiles returns the uploaded files for the provided "file" field key, - * (aka. the current [*filesytem.File] values) so that you can apply further - * validations or modifications (including changing the file name or content before persisting). - * - * Example: - * - * ``` - * files := record.GetUnsavedFiles("documents") - * for _, f := range files { - * f.Name = "doc_" + f.Name // add a prefix to each file name - * } - * app.Save(record) // the files are pointers so the applied changes will transparently reflect on the record value - * ``` - */ - getUnsavedFiles(key: string): Array<(filesystem.File | undefined)> - } - interface Record { - /** - * Deprecated: replaced with GetUnsavedFiles. - */ - getUploadedFiles(key: string): Array<(filesystem.File | undefined)> - } - interface Record { - /** - * Retrieves the "key" json field value and unmarshals it into "result". - * - * Example - * - * ``` - * result := struct { - * FirstName string `json:"first_name"` - * }{} - * err := m.UnmarshalJSONField("my_field_name", &result) - * ``` - */ - unmarshalJSONField(key: string, result: any): void - } - interface Record { - /** - * ExpandedOne retrieves a single relation Record from the already - * loaded expand data of the current model. - * - * If the requested expand relation is multiple, this method returns - * only first available Record from the expanded relation. - * - * Returns nil if there is no such expand relation loaded. - */ - expandedOne(relField: string): (Record) - } - interface Record { - /** - * ExpandedAll retrieves a slice of relation Records from the already - * loaded expand data of the current model. - * - * If the requested expand relation is single, this method normalizes - * the return result and will wrap the single model as a slice. - * - * Returns nil slice if there is no such expand relation loaded. - */ - expandedAll(relField: string): Array<(Record | undefined)> - } - interface Record { - /** - * FindFileFieldByFile returns the first file type field for which - * any of the record's data contains the provided filename. - */ - findFileFieldByFile(filename: string): (FileField) - } - interface Record { - /** - * DBExport implements the [DBExporter] interface and returns a key-value - * map with the data to be persisted when saving the Record in the database. - */ - dbExport(app: App): _TygojaDict - } - interface Record { - /** - * Hide hides the specified fields from the public safe serialization of the record. - */ - hide(...fieldNames: string[]): (Record) - } - interface Record { - /** - * Unhide forces to unhide the specified fields from the public safe serialization - * of the record (even when the collection field itself is marked as hidden). - */ - unhide(...fieldNames: string[]): (Record) - } - interface Record { - /** - * PublicExport exports only the record fields that are safe to be public. - * - * To export unknown data fields you need to set record.WithCustomData(true). - * - * For auth records, to force the export of the email field you need to set - * record.IgnoreEmailVisibility(true). - */ - publicExport(): _TygojaDict - } - interface Record { - /** - * MarshalJSON implements the [json.Marshaler] interface. - * - * Only the data exported by `PublicExport()` will be serialized. - */ - marshalJSON(): string|Array - } - interface Record { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - */ - unmarshalJSON(data: string|Array): void - } - interface Record { - /** - * ReplaceModifiers returns a new map with applied modifier - * values based on the current record and the specified data. - * - * The resolved modifier keys will be removed. - * - * Multiple modifiers will be applied one after another, - * while reusing the previous base key value result (ex. 1; -5; +2 => -2). - * - * Note that because Go doesn't guaranteed the iteration order of maps, - * we would explicitly apply shorter keys first for a more consistent and reproducible behavior. - * - * Example usage: - * - * ``` - * newData := record.ReplaceModifiers(data) - * // record: {"field": 10} - * // data: {"field+": 5} - * // result: {"field": 15} - * ``` - */ - replaceModifiers(data: _TygojaDict): _TygojaDict - } - interface Record { - /** - * Email returns the "email" record field value (usually available with Auth collections). - */ - email(): string - } - interface Record { - /** - * SetEmail sets the "email" record field value (usually available with Auth collections). - */ - setEmail(email: string): void - } - interface Record { - /** - * Verified returns the "emailVisibility" record field value (usually available with Auth collections). - */ - emailVisibility(): boolean - } - interface Record { - /** - * SetEmailVisibility sets the "emailVisibility" record field value (usually available with Auth collections). - */ - setEmailVisibility(visible: boolean): void - } - interface Record { - /** - * Verified returns the "verified" record field value (usually available with Auth collections). - */ - verified(): boolean - } - interface Record { - /** - * SetVerified sets the "verified" record field value (usually available with Auth collections). - */ - setVerified(verified: boolean): void - } - interface Record { - /** - * TokenKey returns the "tokenKey" record field value (usually available with Auth collections). - */ - tokenKey(): string - } - interface Record { - /** - * SetTokenKey sets the "tokenKey" record field value (usually available with Auth collections). - */ - setTokenKey(key: string): void - } - interface Record { - /** - * RefreshTokenKey generates and sets a new random auth record "tokenKey". - */ - refreshTokenKey(): void - } - interface Record { - /** - * SetPassword sets the "password" record field value (usually available with Auth collections). - */ - setPassword(password: string): void - } - interface Record { - /** - * SetRandomPassword sets the "password" auth record field to a random autogenerated value. - * - * The autogenerated password is ~30 characters and it is set directly as hash, - * aka. the field plain password value validators (length, pattern, etc.) are ignored - * (this is usually used as part of the auto created OTP or OAuth2 user flows). - */ - setRandomPassword(): string - } - interface Record { - /** - * ValidatePassword validates a plain password against the "password" record field. - * - * Returns false if the password is incorrect. - */ - validatePassword(password: string): boolean - } - interface Record { - /** - * IsSuperuser returns whether the current record is a superuser, aka. - * whether the record is from the _superusers collection. - */ - isSuperuser(): boolean - } - /** - * RecordProxy defines an interface for a Record proxy/project model, - * aka. custom model struct that acts on behalve the proxied Record to - * allow for example typed getter/setters for the Record fields. - * - * To implement the interface it is usually enough to embed the [BaseRecordProxy] struct. - */ - interface RecordProxy { - [key:string]: any; - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - /** - * BaseRecordProxy implements the [RecordProxy] interface and it is intended - * to be used as embed to custom user provided Record proxy structs. - */ - type _sUpBOaT = Record - interface BaseRecordProxy extends _sUpBOaT { - } - interface BaseRecordProxy { - /** - * ProxyRecord returns the proxied Record model. - */ - proxyRecord(): (Record) - } - interface BaseRecordProxy { - /** - * SetProxyRecord loads the specified record model into the current proxy. - */ - setProxyRecord(record: Record): void - } - interface BaseApp { - /** - * RecordQuery returns a new Record select query from a collection model, id or name. - * - * In case a collection id or name is provided and that collection doesn't - * actually exists, the generated query will be created with a cancelled context - * and will fail once an executor (Row(), One(), All(), etc.) is called. - */ - recordQuery(collectionModelOrIdentifier: any): (dbx.SelectQuery) - } - interface BaseApp { - /** - * FindRecordById finds the Record model by its id. - */ - findRecordById(collectionModelOrIdentifier: any, recordId: string, ...optFilters: ((q: dbx.SelectQuery) => void)[]): (Record) - } - interface BaseApp { - /** - * FindRecordsByIds finds all records by the specified ids. - * If no records are found, returns an empty slice. - */ - findRecordsByIds(collectionModelOrIdentifier: any, recordIds: Array, ...optFilters: ((q: dbx.SelectQuery) => void)[]): Array<(Record | undefined)> - } - interface BaseApp { - /** - * FindAllRecords finds all records matching specified db expressions. - * - * Returns all collection records if no expression is provided. - * - * Returns an empty slice if no records are found. - * - * Example: - * - * ``` - * // no extra expressions - * app.FindAllRecords("example") - * - * // with extra expressions - * expr1 := dbx.HashExp{"email": "test@example.com"} - * expr2 := dbx.NewExp("LOWER(username) = {:username}", dbx.Params{"username": "test"}) - * app.FindAllRecords("example", expr1, expr2) - * ``` - */ - findAllRecords(collectionModelOrIdentifier: any, ...exprs: dbx.Expression[]): Array<(Record | undefined)> - } - interface BaseApp { - /** - * FindFirstRecordByData returns the first found record matching - * the provided key-value pair. - */ - findFirstRecordByData(collectionModelOrIdentifier: any, key: string, value: any): (Record) - } - interface BaseApp { - /** - * FindRecordsByFilter returns limit number of records matching the - * provided string filter. - * - * NB! Use the last "params" argument to bind untrusted user variables! - * - * The filter argument is optional and can be empty string to target - * all available records. - * - * The sort argument is optional and can be empty string OR the same format - * used in the web APIs, ex. "-created,title". - * - * If the limit argument is <= 0, no limit is applied to the query and - * all matching records are returned. - * - * Returns an empty slice if no records are found. - * - * Example: - * - * ``` - * app.FindRecordsByFilter( - * "posts", - * "title ~ {:title} && visible = {:visible}", - * "-created", - * 10, - * 0, - * dbx.Params{"title": "lorem ipsum", "visible": true} - * ) - * ``` - */ - findRecordsByFilter(collectionModelOrIdentifier: any, filter: string, sort: string, limit: number, offset: number, ...params: dbx.Params[]): Array<(Record | undefined)> - } - interface BaseApp { - /** - * FindFirstRecordByFilter returns the first available record matching the provided filter (if any). - * - * NB! Use the last params argument to bind untrusted user variables! - * - * Returns sql.ErrNoRows if no record is found. - * - * Example: - * - * ``` - * app.FindFirstRecordByFilter("posts", "") - * app.FindFirstRecordByFilter("posts", "slug={:slug} && status='public'", dbx.Params{"slug": "test"}) - * ``` - */ - findFirstRecordByFilter(collectionModelOrIdentifier: any, filter: string, ...params: dbx.Params[]): (Record) - } - interface BaseApp { - /** - * CountRecords returns the total number of records in a collection. - */ - countRecords(collectionModelOrIdentifier: any, ...exprs: dbx.Expression[]): number - } - interface BaseApp { - /** - * FindAuthRecordByToken finds the auth record associated with the provided JWT - * (auth, file, verifyEmail, changeEmail, passwordReset types). - * - * Optionally specify a list of validTypes to check tokens only from those types. - * - * Returns an error if the JWT is invalid, expired or not associated to an auth collection record. - */ - findAuthRecordByToken(token: string, ...validTypes: string[]): (Record) - } - interface BaseApp { - /** - * FindAuthRecordByEmail finds the auth record associated with the provided email. - * - * The email check would be case-insensitive if the related collection - * email unique index has COLLATE NOCASE specified for the email column. - * - * Returns an error if it is not an auth collection or the record is not found. - */ - findAuthRecordByEmail(collectionModelOrIdentifier: any, email: string): (Record) - } - interface BaseApp { - /** - * CanAccessRecord checks if a record is allowed to be accessed by the - * specified requestInfo and accessRule. - * - * Rule and db checks are ignored in case requestInfo.Auth is a superuser. - * - * The returned error indicate that something unexpected happened during - * the check (eg. invalid rule or db query error). - * - * The method always return false on invalid rule or db query error. - * - * Example: - * - * ``` - * requestInfo, _ := e.RequestInfo() - * record, _ := app.FindRecordById("example", "RECORD_ID") - * rule := types.Pointer("@request.auth.id != '' || status = 'public'") - * // ... or use one of the record collection's rule, eg. record.Collection().ViewRule - * - * if ok, _ := app.CanAccessRecord(record, requestInfo, rule); ok { ... } - * ``` - */ - canAccessRecord(record: Record, requestInfo: RequestInfo, accessRule: string): boolean - } - /** - * ExpandFetchFunc defines the function that is used to fetch the expanded relation records. - */ - interface ExpandFetchFunc {(relCollection: Collection, relIds: Array): Array<(Record | undefined)> } - interface BaseApp { - /** - * ExpandRecord expands the relations of a single Record model. - * - * If optFetchFunc is not set, then a default function will be used - * that returns all relation records. - * - * Returns a map with the failed expand parameters and their errors. - */ - expandRecord(record: Record, expands: Array, optFetchFunc: ExpandFetchFunc): _TygojaDict - } - interface BaseApp { - /** - * ExpandRecords expands the relations of the provided Record models list. - * - * If optFetchFunc is not set, then a default function will be used - * that returns all relation records. - * - * Returns a map with the failed expand parameters and their errors. - */ - expandRecords(records: Array<(Record | undefined)>, expands: Array, optFetchFunc: ExpandFetchFunc): _TygojaDict - } - interface Record { - /** - * NewStaticAuthToken generates and returns a new static record authentication token. - * - * Static auth tokens are similar to the regular auth tokens, but are - * non-refreshable and support custom duration. - * - * Zero or negative duration will fallback to the duration from the auth collection settings. - */ - newStaticAuthToken(duration: time.Duration): string - } - interface Record { - /** - * NewAuthToken generates and returns a new record authentication token. - */ - newAuthToken(): string - } - interface Record { - /** - * NewVerificationToken generates and returns a new record verification token. - */ - newVerificationToken(): string - } - interface Record { - /** - * NewPasswordResetToken generates and returns a new auth record password reset request token. - */ - newPasswordResetToken(): string - } - interface Record { - /** - * NewEmailChangeToken generates and returns a new auth record change email request token. - */ - newEmailChangeToken(newEmail: string): string - } - interface Record { - /** - * NewFileToken generates and returns a new record private file access token. - */ - newFileToken(): string - } - interface settings { - smtp: SMTPConfig - backups: BackupsConfig - s3: S3Config - meta: MetaConfig - rateLimits: RateLimitsConfig - trustedProxy: TrustedProxyConfig - batch: BatchConfig - logs: LogsConfig - } - /** - * Settings defines the PocketBase app settings. - */ - type _sKtHOEb = settings - interface Settings extends _sKtHOEb { - } - interface Settings { - /** - * TableName implements [Model.TableName] interface method. - */ - tableName(): string - } - interface Settings { - /** - * PK implements [Model.LastSavedPK] interface method. - */ - lastSavedPK(): any - } - interface Settings { - /** - * PK implements [Model.PK] interface method. - */ - pk(): any - } - interface Settings { - /** - * IsNew implements [Model.IsNew] interface method. - */ - isNew(): boolean - } - interface Settings { - /** - * MarkAsNew implements [Model.MarkAsNew] interface method. - */ - markAsNew(): void - } - interface Settings { - /** - * MarkAsNew implements [Model.MarkAsNotNew] interface method. - */ - markAsNotNew(): void - } - interface Settings { - /** - * PostScan implements [Model.PostScan] interface method. - */ - postScan(): void - } - interface Settings { - /** - * String returns a serialized string representation of the current settings. - */ - string(): string - } - interface Settings { - /** - * DBExport prepares and exports the current settings for db persistence. - */ - dbExport(app: App): _TygojaDict - } - interface Settings { - /** - * PostValidate implements the [PostValidator] interface and defines - * the Settings model validations. - */ - postValidate(ctx: context.Context, app: App): void - } - interface Settings { - /** - * Merge merges the "other" settings into the current one. - */ - merge(other: Settings): void - } - interface Settings { - /** - * Clone creates a new deep copy of the current settings. - */ - clone(): (Settings) - } - interface Settings { - /** - * MarshalJSON implements the [json.Marshaler] interface. - * - * Note that sensitive fields (S3 secret, SMTP password, etc.) are excluded. - */ - marshalJSON(): string|Array - } - interface SMTPConfig { - enabled: boolean - port: number - host: string - username: string - password: string - /** - * SMTP AUTH - PLAIN (default) or LOGIN - */ - authMethod: string - /** - * Whether to enforce TLS encryption for the mail server connection. - * - * When set to false StartTLS command is send, leaving the server - * to decide whether to upgrade the connection or not. - */ - tls: boolean - /** - * LocalName is optional domain name or IP address used for the - * EHLO/HELO exchange (if not explicitly set, defaults to "localhost"). - * - * This is required only by some SMTP servers, such as Gmail SMTP-relay. - */ - localName: string - } - interface SMTPConfig { - /** - * Validate makes SMTPConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface S3Config { - enabled: boolean - bucket: string - region: string - endpoint: string - accessKey: string - secret: string - forcePathStyle: boolean - } - interface S3Config { - /** - * Validate makes S3Config validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface BatchConfig { - enabled: boolean - /** - * MaxRequests is the maximum allowed batch request to execute. - */ - maxRequests: number - /** - * Timeout is the the max duration in seconds to wait before cancelling the batch transaction. - */ - timeout: number - /** - * MaxBodySize is the maximum allowed batch request body size in bytes. - * - * If not set, fallbacks to max ~128MB. - */ - maxBodySize: number - } - interface BatchConfig { - /** - * Validate makes BatchConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface BackupsConfig { - /** - * Cron is a cron expression to schedule auto backups, eg. "* * * * *". - * - * Leave it empty to disable the auto backups functionality. - */ - cron: string - /** - * CronMaxKeep is the the max number of cron generated backups to - * keep before removing older entries. - * - * This field works only when the cron config has valid cron expression. - */ - cronMaxKeep: number - /** - * S3 is an optional S3 storage config specifying where to store the app backups. - */ - s3: S3Config - } - interface BackupsConfig { - /** - * Validate makes BackupsConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface MetaConfig { - appName: string - appURL: string - senderName: string - senderAddress: string - hideControls: boolean - } - interface MetaConfig { - /** - * Validate makes MetaConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface LogsConfig { - maxDays: number - minLevel: number - logIP: boolean - logAuthId: boolean - } - interface LogsConfig { - /** - * Validate makes LogsConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface TrustedProxyConfig { - /** - * Headers is a list of explicit trusted header(s) to check. - */ - headers: Array - /** - * UseLeftmostIP specifies to use the left-mostish IP from the trusted headers. - * - * Note that this could be insecure when used with X-Forwarded-For header - * because some proxies like AWS ELB allow users to prepend their own header value - * before appending the trusted ones. - */ - useLeftmostIP: boolean - } - interface TrustedProxyConfig { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array - } - interface TrustedProxyConfig { - /** - * Validate makes RateLimitRule validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface RateLimitsConfig { - rules: Array - enabled: boolean - } - interface RateLimitsConfig { - /** - * FindRateLimitRule returns the first matching rule based on the provided labels. - * - * Optionally you can further specify a list of valid RateLimitRule.Audience values to further filter the matching rule - * (aka. the rule Audience will have to exist in one of the specified options). - */ - findRateLimitRule(searchLabels: Array, ...optOnlyAudience: string[]): [RateLimitRule, boolean] - } - interface RateLimitsConfig { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array - } - interface RateLimitsConfig { - /** - * Validate makes RateLimitsConfig validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface RateLimitRule { - /** - * Label is the identifier of the current rule. - * - * It could be a tag, complete path or path prerefix (when ends with `/`). - * - * Example supported labels: - * ``` - * - test_a (plain text "tag") - * - users:create - * - *:create - * - / - * - /api - * - POST /api/collections/ - * ``` - */ - label: string - /** - * Audience specifies the auth group the rule should apply for: - * ``` - * - "" - both guests and authenticated users (default) - * - "guest" - only for guests - * - "auth" - only for authenticated users - * ``` - */ - audience: string - /** - * Duration specifies the interval (in seconds) per which to reset - * the counted/accumulated rate limiter tokens. - */ - duration: number - /** - * MaxRequests is the max allowed number of requests per Duration. - */ - maxRequests: number - } - interface RateLimitRule { - /** - * Validate makes RateLimitRule validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface RateLimitRule { - /** - * DurationTime returns the tag's Duration as [time.Duration]. - */ - durationTime(): time.Duration - } - interface RateLimitRule { - /** - * String returns a string representation of the rule. - */ - string(): string - } - type _sUaqFVw = BaseModel - interface Param extends _sUaqFVw { - created: types.DateTime - updated: types.DateTime - value: types.JSONRaw - } - interface Param { - tableName(): string - } - interface BaseApp { - /** - * ReloadSettings initializes and reloads the stored application settings. - * - * If no settings were stored it will persist the current app ones. - */ - reloadSettings(): void - } - interface BaseApp { - /** - * DeleteView drops the specified view name. - * - * This method is a no-op if a view with the provided name doesn't exist. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "name" argument must come only from trusted input! - */ - deleteView(name: string): void - } - interface BaseApp { - /** - * SaveView creates (or updates already existing) persistent SQL view. - * - * NB! Be aware that this method is vulnerable to SQL injection and the - * "selectQuery" argument must come only from trusted input! - */ - saveView(name: string, selectQuery: string): void - } - interface BaseApp { - /** - * CreateViewFields creates a new FieldsList from the provided select query. - * - * There are some caveats: - * - The select query must have an "id" column. - * - Wildcard ("*") columns are not supported to avoid accidentally leaking sensitive data. - */ - createViewFields(selectQuery: string): FieldsList - } - interface BaseApp { - /** - * FindRecordByViewFile returns the original Record of the provided view collection file. - */ - findRecordByViewFile(viewCollectionModelOrIdentifier: any, fileFieldName: string, filename: string): (Record) - } - interface queryField { - } - interface identifier { - } - interface identifiersParser { - } -} - -/** - * Package mails implements various helper methods for sending common - * emails like forgotten password, verification, etc. - */ -namespace mails { - interface sendRecordAuthAlert { - /** - * SendRecordAuthAlert sends a new device login alert to the specified auth record. - */ - (app: CoreApp, authRecord: core.Record): void - } - interface sendRecordOTP { - /** - * SendRecordOTP sends OTP email to the specified auth record. - * - * This method will also update the "sentTo" field of the related OTP record to the mail sent To address (if the OTP exists and not already assigned). - */ - (app: CoreApp, authRecord: core.Record, otpId: string, pass: string): void - } - interface sendRecordPasswordReset { - /** - * SendRecordPasswordReset sends a password reset request email to the specified auth record. - */ - (app: CoreApp, authRecord: core.Record): void - } - interface sendRecordVerification { - /** - * SendRecordVerification sends a verification request email to the specified auth record. - */ - (app: CoreApp, authRecord: core.Record): void - } - interface sendRecordChangeEmail { - /** - * SendRecordChangeEmail sends a change email confirmation email to the specified auth record. - */ - (app: CoreApp, authRecord: core.Record, newEmail: string): void - } -} - -namespace forms { - // @ts-ignore - import validation = ozzo_validation - /** - * AppleClientSecretCreate is a form struct to generate a new Apple Client Secret. - * - * Reference: https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens - */ - interface AppleClientSecretCreate { - /** - * ClientId is the identifier of your app (aka. Service ID). - */ - clientId: string - /** - * TeamId is a 10-character string associated with your developer account - * (usually could be found next to your name in the Apple Developer site). - */ - teamId: string - /** - * KeyId is a 10-character key identifier generated for the "Sign in with Apple" - * private key associated with your developer account. - */ - keyId: string - /** - * PrivateKey is the private key associated to your app. - * Usually wrapped within -----BEGIN PRIVATE KEY----- X -----END PRIVATE KEY-----. - */ - privateKey: string - /** - * Duration specifies how long the generated JWT should be considered valid. - * The specified value must be in seconds and max 15777000 (~6months). - */ - duration: number - } - interface newAppleClientSecretCreate { - /** - * NewAppleClientSecretCreate creates a new [AppleClientSecretCreate] form with initializer - * config created from the provided [CoreApp] instances. - */ - (app: CoreApp): (AppleClientSecretCreate) - } - interface AppleClientSecretCreate { - /** - * Validate makes the form validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface AppleClientSecretCreate { - /** - * Submit validates the form and returns a new Apple Client Secret JWT. - */ - submit(): string - } - interface RecordUpsert { - } - interface newRecordUpsert { - /** - * NewRecordUpsert creates a new [RecordUpsert] form from the provided [CoreApp] and [core.Record] instances - * (for create you could pass a pointer to an empty Record - core.NewRecord(collection)). - */ - (app: CoreApp, record: core.Record): (RecordUpsert) - } - interface RecordUpsert { - /** - * SetContext assigns ctx as context of the current form. - */ - setContext(ctx: context.Context): void - } - interface RecordUpsert { - /** - * SetApp replaces the current form app instance. - * - * This could be used for example if you want to change at later stage - * before submission to change from regular -> transactional app instance. - */ - setApp(app: CoreApp): void - } - interface RecordUpsert { - /** - * SetRecord replaces the current form record instance. - */ - setRecord(record: core.Record): void - } - interface RecordUpsert { - /** - * ResetAccess resets the form access level to the accessLevelDefault. - */ - resetAccess(): void - } - interface RecordUpsert { - /** - * GrantManagerAccess updates the form access level to "manager" allowing - * directly changing some system record fields (often used with auth collection records). - */ - grantManagerAccess(): void - } - interface RecordUpsert { - /** - * GrantSuperuserAccess updates the form access level to "superuser" allowing - * directly changing all system record fields, including those marked as "Hidden". - */ - grantSuperuserAccess(): void - } - interface RecordUpsert { - /** - * HasManageAccess reports whether the form has "manager" or "superuser" level access. - */ - hasManageAccess(): boolean - } - interface RecordUpsert { - /** - * Load loads the provided data into the form and the related record. - */ - load(data: _TygojaDict): void - } - interface RecordUpsert { - /** - * Deprecated: It was previously used as part of the record create action but it is not needed anymore and will be removed in the future. - * - * DrySubmit performs a temp form submit within a transaction and reverts it at the end. - * For actual record persistence, check the [RecordUpsert.Submit()] method. - * - * This method doesn't perform validations, handle file uploads/deletes or trigger app save events! - */ - drySubmit(callback: (txApp: CoreApp, drySavedRecord: core.Record) => void): void - } - interface RecordUpsert { - /** - * Submit validates the form specific validations and attempts to save the form record. - */ - submit(): void - } - /** - * TestEmailSend is a email template test request form. - */ - interface TestEmailSend { - email: string - template: string - collection: string // optional, fallbacks to _superusers - } - interface newTestEmailSend { - /** - * NewTestEmailSend creates and initializes new TestEmailSend form. - */ - (app: CoreApp): (TestEmailSend) - } - interface TestEmailSend { - /** - * Validate makes the form validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface TestEmailSend { - /** - * Submit validates and sends a test email to the form.Email address. - */ - submit(): void - } - /** - * TestS3Filesystem defines a S3 filesystem connection test. - */ - interface TestS3Filesystem { - /** - * The name of the filesystem - storage or backups - */ - filesystem: string - } - interface newTestS3Filesystem { - /** - * NewTestS3Filesystem creates and initializes new TestS3Filesystem form. - */ - (app: CoreApp): (TestS3Filesystem) - } - interface TestS3Filesystem { - /** - * Validate makes the form validatable by implementing [validation.Validatable] interface. - */ - validate(): void - } - interface TestS3Filesystem { - /** - * Submit validates and performs a S3 filesystem connection test. - */ - submit(): void - } -} - -namespace apis { - interface toApiError { - /** - * ToApiError wraps err into ApiError instance (if not already). - */ - (err: Error): (router.ApiError) - } - interface newApiError { - /** - * NewApiError is an alias for [router.NewApiError]. - */ - (status: number, message: string, errData: any): (router.ApiError) - } - interface newBadRequestError { - /** - * NewBadRequestError is an alias for [router.NewBadRequestError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface newNotFoundError { - /** - * NewNotFoundError is an alias for [router.NewNotFoundError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface newForbiddenError { - /** - * NewForbiddenError is an alias for [router.NewForbiddenError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface newUnauthorizedError { - /** - * NewUnauthorizedError is an alias for [router.NewUnauthorizedError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface newTooManyRequestsError { - /** - * NewTooManyRequestsError is an alias for [router.NewTooManyRequestsError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface newInternalServerError { - /** - * NewInternalServerError is an alias for [router.NewInternalServerError]. - */ - (message: string, errData: any): (router.ApiError) - } - interface backupFileInfo { - modified: types.DateTime - key: string - size: number - } - // @ts-ignore - import validation = ozzo_validation - interface backupCreateForm { - name: string - } - interface backupUploadForm { - file?: filesystem.File - } - interface newRouter { - /** - * NewRouter returns a new router instance loaded with the default app middlewares and api routes. - */ - (app: CoreApp): (router.Router) - } - interface wrapStdHandler { - /** - * WrapStdHandler wraps Go [http.Handler] into a PocketBase handler func. - */ - (h: http.Handler): (_arg0: core.RequestEvent) => void - } - interface wrapStdMiddleware { - /** - * WrapStdMiddleware wraps Go [func(http.Handler) http.Handle] into a PocketBase middleware func. - */ - (m: (_arg0: http.Handler) => http.Handler): (_arg0: core.RequestEvent) => void - } - interface mustSubFS { - /** - * MustSubFS returns an [fs.FS] corresponding to the subtree rooted at fsys's dir. - * - * This is similar to [fs.Sub] but panics on failure. - */ - (fsys: fs.FS, dir: string): fs.FS - } - interface _static { - /** - * Static is a handler function to serve static directory content from fsys. - * - * If a file resource is missing and indexFallback is set, the request - * will be forwarded to the base index.html (useful for SPA with pretty urls). - * - * NB! Expects the route to have a "{path...}" wildcard parameter. - * - * Special redirects: - * ``` - * - if "path" is a file that ends in index.html, it is redirected to its non-index.html version (eg. /test/index.html -> /test/) - * - if "path" is a directory that has index.html, the index.html file is rendered, - * otherwise if missing - returns 404 or fallback to the root index.html if indexFallback is set - * ``` - * - * Example: - * - * ``` - * fsys := os.DirFS("./pb_public") - * router.GET("/files/{path...}", apis.Static(fsys, false)) - * ``` - */ - (fsys: fs.FS, indexFallback: boolean): (_arg0: core.RequestEvent) => void - } - interface HandleFunc {(e: core.RequestEvent): void } - interface BatchActionHandlerFunc {(app: CoreApp, ir: core.InternalRequest, params: _TygojaDict, next: (data: any) => void): HandleFunc } - interface BatchRequestResult { - body: any - status: number - } - interface batchRequestsForm { - requests: Array<(core.InternalRequest | undefined)> - } - interface batchProcessor { - } - interface batchProcessor { - process(batch: Array<(core.InternalRequest | undefined)>, timeout: time.Duration): void - } - interface BatchResponseError { - } - interface BatchResponseError { - error(): string - } - interface BatchResponseError { - code(): string - } - interface BatchResponseError { - resolve(errData: _TygojaDict): any - } - interface BatchResponseError { - marshalJSON(): string|Array - } - interface collectionsImportForm { - collections: Array<_TygojaDict> - deleteMissing: boolean - } - interface fileApi { - } - interface defaultInstallerFunc { - /** - * DefaultInstallerFunc is the default PocketBase installer function. - * - * It will attempt to open a link in the browser (with a short-lived auth - * token for the systemSuperuser) to the installer UI so that users can - * create their own custom superuser record. - * - * See https://github.com/pocketbase/pocketbase/discussions/5814. - */ - (app: CoreApp, systemSuperuser: core.Record, baseURL: string): void - } - interface requireGuestOnly { - /** - * RequireGuestOnly middleware requires a request to NOT have a valid - * Authorization header. - * - * This middleware is the opposite of [apis.RequireAuth()]. - */ - (): (hook.Handler) - } - interface requireAuth { - /** - * RequireAuth middleware requires a request to have a valid record Authorization header. - * - * The auth record could be from any collection. - * You can further filter the allowed record auth collections by specifying their names. - * - * Example: - * - * ``` - * apis.RequireAuth() // any auth collection - * apis.RequireAuth("_superusers", "users") // only the listed auth collections - * ``` - */ - (...optCollectionNames: string[]): (hook.Handler) - } - interface requireSuperuserAuth { - /** - * RequireSuperuserAuth middleware requires a request to have - * a valid superuser Authorization header. - */ - (): (hook.Handler) - } - interface requireSuperuserOrOwnerAuth { - /** - * RequireSuperuserOrOwnerAuth middleware requires a request to have - * a valid superuser or regular record owner Authorization header set. - * - * This middleware is similar to [apis.RequireAuth()] but - * for the auth record token expects to have the same id as the path - * parameter ownerIdPathParam (default to "id" if empty). - */ - (ownerIdPathParam: string): (hook.Handler) - } - interface requireSameCollectionContextAuth { - /** - * RequireSameCollectionContextAuth middleware requires a request to have - * a valid record Authorization header and the auth record's collection to - * match the one from the route path parameter (default to "collection" if collectionParam is empty). - */ - (collectionPathParam: string): (hook.Handler) - } - interface skipSuccessActivityLog { - /** - * SkipSuccessActivityLog is a helper middleware that instructs the global - * activity logger to log only requests that have failed/returned an error. - */ - (): (hook.Handler) - } - interface bodyLimit { - /** - * BodyLimit returns a middleware handler that changes the default request body size limit. - * - * If limitBytes <= 0, no limit is applied. - * - * Otherwise, if the request body size exceeds the configured limitBytes, - * it sends 413 error response. - */ - (limitBytes: number): (hook.Handler) - } - type _spXrWSL = io.ReadCloser - interface limitedReader extends _spXrWSL { - } - interface limitedReader { - read(b: string|Array): number - } - interface limitedReader { - reread(): void - } - /** - * CORSConfig defines the config for CORS middleware. - */ - interface CORSConfig { - /** - * AllowOrigins determines the value of the Access-Control-Allow-Origin - * response header. This header defines a list of origins that may access the - * resource. The wildcard characters '*' and '?' are supported and are - * converted to regex fragments '.*' and '.' accordingly. - * - * Security: use extreme caution when handling the origin, and carefully - * validate any logic. Remember that attackers may register hostile domain names. - * See https://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html - * - * Optional. Default value []string{"*"}. - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin - */ - allowOrigins: Array - /** - * AllowOriginFunc is a custom function to validate the origin. It takes the - * origin as an argument and returns true if allowed or false otherwise. If - * an error is returned, it is returned by the handler. If this option is - * set, AllowOrigins is ignored. - * - * Security: use extreme caution when handling the origin, and carefully - * validate any logic. Remember that attackers may register hostile domain names. - * See https://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html - * - * Optional. - */ - allowOriginFunc: (origin: string) => boolean - /** - * AllowMethods determines the value of the Access-Control-Allow-Methods - * response header. This header specified the list of methods allowed when - * accessing the resource. This is used in response to a preflight request. - * - * Optional. Default value DefaultCORSConfig.AllowMethods. - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods - */ - allowMethods: Array - /** - * AllowHeaders determines the value of the Access-Control-Allow-Headers - * response header. This header is used in response to a preflight request to - * indicate which HTTP headers can be used when making the actual request. - * - * Optional. Default value []string{}. - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers - */ - allowHeaders: Array - /** - * AllowCredentials determines the value of the - * Access-Control-Allow-Credentials response header. This header indicates - * whether or not the response to the request can be exposed when the - * credentials mode (Request.credentials) is true. When used as part of a - * response to a preflight request, this indicates whether or not the actual - * request can be made using credentials. See also - * [MDN: Access-Control-Allow-Credentials]. - * - * Optional. Default value false, in which case the header is not set. - * - * Security: avoid using `AllowCredentials = true` with `AllowOrigins = *`. - * See "Exploiting CORS misconfigurations for Bitcoins and bounties", - * https://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials - */ - allowCredentials: boolean - /** - * UnsafeWildcardOriginWithAllowCredentials UNSAFE/INSECURE: allows wildcard '*' origin to be used with AllowCredentials - * flag. In that case we consider any origin allowed and send it back to the client with `Access-Control-Allow-Origin` header. - * - * This is INSECURE and potentially leads to [cross-origin](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties) - * attacks. See: https://github.com/labstack/echo/issues/2400 for discussion on the subject. - * - * Optional. Default value is false. - */ - unsafeWildcardOriginWithAllowCredentials: boolean - /** - * ExposeHeaders determines the value of Access-Control-Expose-Headers, which - * defines a list of headers that clients are allowed to access. - * - * Optional. Default value []string{}, in which case the header is not set. - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Header - */ - exposeHeaders: Array - /** - * MaxAge determines the value of the Access-Control-Max-Age response header. - * This header indicates how long (in seconds) the results of a preflight - * request can be cached. - * The header is set only if MaxAge != 0, negative value sends "0" which instructs browsers not to cache that response. - * - * Optional. Default value 0 - meaning header is not sent. - * - * See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age - */ - maxAge: number - } - interface cors { - /** - * CORS returns a CORS middleware. - */ - (config: CORSConfig): (hook.Handler) - } - /** - * GzipConfig defines the config for Gzip middleware. - */ - interface GzipConfig { - /** - * Gzip compression level. - * Optional. Default value -1. - */ - level: number - /** - * Length threshold before gzip compression is applied. - * Optional. Default value 0. - * - * Most of the time you will not need to change the default. Compressing - * a short response might increase the transmitted data because of the - * gzip format overhead. Compressing the response will also consume CPU - * and time on the server and the client (for decompressing). Depending on - * your use case such a threshold might be useful. - * - * See also: - * https://webmasters.stackexchange.com/questions/31750/what-is-recommended-minimum-object-size-for-gzip-performance-benefits - */ - minLength: number - } - interface gzip { - /** - * Gzip returns a middleware which compresses HTTP response using Gzip compression scheme. - */ - (): (hook.Handler) - } - interface gzipWithConfig { - /** - * GzipWithConfig returns a middleware which compresses HTTP response using gzip compression scheme. - */ - (config: GzipConfig): (hook.Handler) - } - type _sPsHNXs = http.ResponseWriter&io.Writer - interface gzipResponseWriter extends _sPsHNXs { - } - interface gzipResponseWriter { - writeHeader(code: number): void - } - interface gzipResponseWriter { - write(b: string|Array): number - } - interface gzipResponseWriter { - flush(): void - } - interface gzipResponseWriter { - hijack(): [net.Conn, (bufio.ReadWriter)] - } - interface gzipResponseWriter { - push(target: string, opts: http.PushOptions): void - } - interface gzipResponseWriter { - unwrap(): http.ResponseWriter - } - type _svOFjDw = sync.RWMutex - interface rateLimiter extends _svOFjDw { - } - type _sOTuHjq = sync.Mutex - interface fixedWindow extends _sOTuHjq { - } - interface realtimeSubscribeForm { - clientId: string - subscriptions: Array - } - /** - * recordData represents the broadcasted record subscrition message data. - */ - interface recordData { - record: any // map or core.Record - action: string - } - interface EmailChangeConfirmForm { - token: string - password: string - } - interface emailChangeRequestForm { - newEmail: string - } - interface impersonateForm { - /** - * Duration is the optional custom token duration in seconds. - */ - duration: number - } - interface otpResponse { - enabled: boolean - duration: number // in seconds - } - interface mfaResponse { - enabled: boolean - duration: number // in seconds - } - interface passwordResponse { - identityFields: Array - enabled: boolean - } - interface oauth2Response { - providers: Array - enabled: boolean - } - interface providerInfo { - name: string - displayName: string - state: string - authURL: string - /** - * @todo - * deprecated: use AuthURL instead - * AuthUrl will be removed after dropping v0.22 support - */ - authUrl: string - /** - * technically could be omitted if the provider doesn't support PKCE, - * but to avoid breaking existing typed clients we'll return them as empty string - */ - codeVerifier: string - codeChallenge: string - codeChallengeMethod: string - } - interface authMethodsResponse { - password: passwordResponse - oauth2: oauth2Response - mfa: mfaResponse - otp: otpResponse - /** - * legacy fields - * @todo remove after dropping v0.22 support - */ - authProviders: Array - usernamePassword: boolean - emailPassword: boolean - } - interface createOTPForm { - email: string - } - interface recordConfirmPasswordResetForm { - token: string - password: string - passwordConfirm: string - } - interface recordRequestPasswordResetForm { - email: string - } - interface recordConfirmVerificationForm { - token: string - } - interface recordRequestVerificationForm { - email: string - } - interface recordOAuth2LoginForm { - /** - * Additional data that will be used for creating a new auth record - * if an existing OAuth2 account doesn't exist. - */ - createData: _TygojaDict - /** - * The name of the OAuth2 client provider (eg. "google") - */ - provider: string - /** - * The authorization code returned from the initial request. - */ - code: string - /** - * The optional PKCE code verifier as part of the code_challenge sent with the initial request. - */ - codeVerifier: string - /** - * The redirect url sent with the initial request. - */ - redirectURL: string - /** - * @todo - * deprecated: use RedirectURL instead - * RedirectUrl will be removed after dropping v0.22 support - */ - redirectUrl: string - } - interface oauth2RedirectData { - state: string - code: string - error: string - } - interface authWithOTPForm { - otpId: string - password: string - } - interface authWithPasswordForm { - identity: string - password: string - /** - * IdentityField specifies the field to use to search for the identity - * (leave it empty for "auto" detection). - */ - identityField: string - } - // @ts-ignore - import cryptoRand = rand - interface recordAuthResponse { - /** - * RecordAuthResponse writes standardized json record auth response - * into the specified request context. - * - * The authMethod argument specify the name of the current authentication method (eg. password, oauth2, etc.) - * that it is used primarily as an auth identifier during MFA and for login alerts. - * - * Set authMethod to empty string if you want to ignore the MFA checks and the login alerts - * (can be also adjusted additionally via the OnRecordAuthRequest hook). - */ - (e: core.RequestEvent, authRecord: core.Record, authMethod: string, meta: any): void - } - interface enrichRecord { - /** - * EnrichRecord parses the request context and enrich the provided record: - * ``` - * - expands relations (if defaultExpands and/or ?expand query param is set) - * - ensures that the emails of the auth record and its expanded auth relations - * are visible only for the current logged superuser, record owner or record with manage access - * ``` - */ - (e: core.RequestEvent, record: core.Record, ...defaultExpands: string[]): void - } - interface enrichRecords { - /** - * EnrichRecords parses the request context and enriches the provided records: - * ``` - * - expands relations (if defaultExpands and/or ?expand query param is set) - * - ensures that the emails of the auth records and their expanded auth relations - * are visible only for the current logged superuser, record owner or record with manage access - * ``` - * - * Note: Expects all records to be from the same collection! - */ - (e: core.RequestEvent, records: Array<(core.Record | undefined)>, ...defaultExpands: string[]): void - } - interface iterator { - } - /** - * ServeConfig defines a configuration struct for apis.Serve(). - */ - interface ServeConfig { - /** - * ShowStartBanner indicates whether to show or hide the server start console message. - */ - showStartBanner: boolean - /** - * HttpAddr is the TCP address to listen for the HTTP server (eg. "127.0.0.1:80"). - */ - httpAddr: string - /** - * HttpsAddr is the TCP address to listen for the HTTPS server (eg. "127.0.0.1:443"). - */ - httpsAddr: string - /** - * Optional domains list to use when issuing the TLS certificate. - * - * If not set, the host from the bound server address will be used. - * - * For convenience, for each "non-www" domain a "www" entry and - * redirect will be automatically added. - */ - certificateDomains: Array - /** - * AllowedOrigins is an optional list of CORS origins (default to "*"). - */ - allowedOrigins: Array - } - interface serve { - /** - * Serve starts a new app web server. - * - * NB! The app should be bootstrapped before starting the web server. - * - * Example: - * - * ``` - * app.Bootstrap() - * apis.Serve(app, apis.ServeConfig{ - * HttpAddr: "127.0.0.1:8080", - * ShowStartBanner: false, - * }) - * ``` - */ - (app: CoreApp, config: ServeConfig): void - } - interface serverErrorLogWriter { - } - interface serverErrorLogWriter { - write(p: string|Array): number - } -} - -namespace pocketbase { - /** - * PocketBase defines a PocketBase app launcher. - * - * It implements [CoreApp] via embedding and all of the app interface methods - * could be accessed directly through the instance (eg. PocketBase.DataDir()). - */ - type _sEJLutg = CoreApp - interface PocketBase extends _sEJLutg { - /** - * RootCmd is the main console command - */ - rootCmd?: cobra.Command - } - /** - * Config is the PocketBase initialization config struct. - */ - interface Config { - /** - * hide the default console server info on app startup - */ - hideStartBanner: boolean - /** - * optional default values for the console flags - */ - defaultDev: boolean - defaultDataDir: string // if not set, it will fallback to "./pb_data" - defaultEncryptionEnv: string - defaultQueryTimeout: time.Duration // default to core.DefaultQueryTimeout (in seconds) - /** - * optional DB configurations - */ - dataMaxOpenConns: number // default to core.DefaultDataMaxOpenConns - dataMaxIdleConns: number // default to core.DefaultDataMaxIdleConns - auxMaxOpenConns: number // default to core.DefaultAuxMaxOpenConns - auxMaxIdleConns: number // default to core.DefaultAuxMaxIdleConns - dbConnect: core.DBConnectFunc // default to core.dbConnect - } - interface _new { - /** - * New creates a new PocketBase instance with the default configuration. - * Use [NewWithConfig] if you want to provide a custom configuration. - * - * Note that the application will not be initialized/bootstrapped yet, - * aka. DB connections, migrations, app settings, etc. will not be accessible. - * Everything will be initialized when [PocketBase.Start] is executed. - * If you want to initialize the application before calling [PocketBase.Start], - * then you'll have to manually call [PocketBase.Bootstrap]. - */ - (): (PocketBase) - } - interface newWithConfig { - /** - * NewWithConfig creates a new PocketBase instance with the provided config. - * - * Note that the application will not be initialized/bootstrapped yet, - * aka. DB connections, migrations, app settings, etc. will not be accessible. - * Everything will be initialized when [PocketBase.Start] is executed. - * If you want to initialize the application before calling [PocketBase.Start], - * then you'll have to manually call [PocketBase.Bootstrap]. - */ - (config: Config): (PocketBase) - } - interface PocketBase { - /** - * Start starts the application, aka. registers the default system - * commands (serve, superuser, version) and executes pb.RootCmd. - */ - start(): void - } - interface PocketBase { - /** - * Execute initializes the application (if not already) and executes - * the pb.RootCmd with graceful shutdown support. - * - * This method differs from pb.Start() by not registering the default - * system commands! - */ - execute(): void - } - /** - * coloredWriter is a small wrapper struct to construct a [color.Color] writter. - */ - interface coloredWriter { - } - interface coloredWriter { - /** - * Write writes the p bytes using the colored writer. - */ - write(p: string|Array): number - } -} - -/** - * Package sync provides basic synchronization primitives such as mutual - * exclusion locks. Other than the [Once] and [WaitGroup] types, most are intended - * for use by low-level library routines. Higher-level synchronization is - * better done via channels and communication. - * - * Values containing the types defined in this package should not be copied. - */ -namespace sync { - /** - * A Mutex is a mutual exclusion lock. - * The zero value for a Mutex is an unlocked mutex. - * - * A Mutex must not be copied after first use. - * - * In the terminology of [the Go memory model], - * the n'th call to [Mutex.Unlock] “synchronizes before” the m'th call to [Mutex.Lock] - * for any n < m. - * A successful call to [Mutex.TryLock] is equivalent to a call to Lock. - * A failed call to TryLock does not establish any “synchronizes before” - * relation at all. - * - * [the Go memory model]: https://go.dev/ref/mem - */ - interface Mutex { - } - interface Mutex { - /** - * Lock locks m. - * If the lock is already in use, the calling goroutine - * blocks until the mutex is available. - */ - lock(): void - } - interface Mutex { - /** - * TryLock tries to lock m and reports whether it succeeded. - * - * Note that while correct uses of TryLock do exist, they are rare, - * and use of TryLock is often a sign of a deeper problem - * in a particular use of mutexes. - */ - tryLock(): boolean - } - interface Mutex { - /** - * Unlock unlocks m. - * It is a run-time error if m is not locked on entry to Unlock. - * - * A locked [Mutex] is not associated with a particular goroutine. - * It is allowed for one goroutine to lock a Mutex and then - * arrange for another goroutine to unlock it. - */ - unlock(): void - } - /** - * A RWMutex is a reader/writer mutual exclusion lock. - * The lock can be held by an arbitrary number of readers or a single writer. - * The zero value for a RWMutex is an unlocked mutex. - * - * A RWMutex must not be copied after first use. - * - * If any goroutine calls [RWMutex.Lock] while the lock is already held by - * one or more readers, concurrent calls to [RWMutex.RLock] will block until - * the writer has acquired (and released) the lock, to ensure that - * the lock eventually becomes available to the writer. - * Note that this prohibits recursive read-locking. - * - * In the terminology of [the Go memory model], - * the n'th call to [RWMutex.Unlock] “synchronizes before” the m'th call to Lock - * for any n < m, just as for [Mutex]. - * For any call to RLock, there exists an n such that - * the n'th call to Unlock “synchronizes before” that call to RLock, - * and the corresponding call to [RWMutex.RUnlock] “synchronizes before” - * the n+1'th call to Lock. - * - * [the Go memory model]: https://go.dev/ref/mem - */ - interface RWMutex { - } - interface RWMutex { - /** - * RLock locks rw for reading. - * - * It should not be used for recursive read locking; a blocked Lock - * call excludes new readers from acquiring the lock. See the - * documentation on the [RWMutex] type. - */ - rLock(): void - } - interface RWMutex { - /** - * TryRLock tries to lock rw for reading and reports whether it succeeded. - * - * Note that while correct uses of TryRLock do exist, they are rare, - * and use of TryRLock is often a sign of a deeper problem - * in a particular use of mutexes. - */ - tryRLock(): boolean - } - interface RWMutex { - /** - * RUnlock undoes a single [RWMutex.RLock] call; - * it does not affect other simultaneous readers. - * It is a run-time error if rw is not locked for reading - * on entry to RUnlock. - */ - rUnlock(): void - } - interface RWMutex { - /** - * Lock locks rw for writing. - * If the lock is already locked for reading or writing, - * Lock blocks until the lock is available. - */ - lock(): void - } - interface RWMutex { - /** - * TryLock tries to lock rw for writing and reports whether it succeeded. - * - * Note that while correct uses of TryLock do exist, they are rare, - * and use of TryLock is often a sign of a deeper problem - * in a particular use of mutexes. - */ - tryLock(): boolean - } - interface RWMutex { - /** - * Unlock unlocks rw for writing. It is a run-time error if rw is - * not locked for writing on entry to Unlock. - * - * As with Mutexes, a locked [RWMutex] is not associated with a particular - * goroutine. One goroutine may [RWMutex.RLock] ([RWMutex.Lock]) a RWMutex and then - * arrange for another goroutine to [RWMutex.RUnlock] ([RWMutex.Unlock]) it. - */ - unlock(): void - } - interface RWMutex { - /** - * RLocker returns a [Locker] interface that implements - * the [Locker.Lock] and [Locker.Unlock] methods by calling rw.RLock and rw.RUnlock. - */ - rLocker(): Locker - } -} - -/** - * Package io provides basic interfaces to I/O primitives. - * Its primary job is to wrap existing implementations of such primitives, - * such as those in package os, into shared public interfaces that - * abstract the functionality, plus some other related primitives. - * - * Because these interfaces and primitives wrap lower-level operations with - * various implementations, unless otherwise informed clients should not - * assume they are safe for parallel execution. - */ -namespace io { - /** - * Reader is the interface that wraps the basic Read method. - * - * Read reads up to len(p) bytes into p. It returns the number of bytes - * read (0 <= n <= len(p)) and any error encountered. Even if Read - * returns n < len(p), it may use all of p as scratch space during the call. - * If some data is available but not len(p) bytes, Read conventionally - * returns what is available instead of waiting for more. - * - * When Read encounters an error or end-of-file condition after - * successfully reading n > 0 bytes, it returns the number of - * bytes read. It may return the (non-nil) error from the same call - * or return the error (and n == 0) from a subsequent call. - * An instance of this general case is that a Reader returning - * a non-zero number of bytes at the end of the input stream may - * return either err == EOF or err == nil. The next Read should - * return 0, EOF. - * - * Callers should always process the n > 0 bytes returned before - * considering the error err. Doing so correctly handles I/O errors - * that happen after reading some bytes and also both of the - * allowed EOF behaviors. - * - * If len(p) == 0, Read should always return n == 0. It may return a - * non-nil error if some error condition is known, such as EOF. - * - * Implementations of Read are discouraged from returning a - * zero byte count with a nil error, except when len(p) == 0. - * Callers should treat a return of 0 and nil as indicating that - * nothing happened; in particular it does not indicate EOF. - * - * Implementations must not retain p. - */ - interface Reader { - [key:string]: any; - read(p: string|Array): number - } - /** - * Writer is the interface that wraps the basic Write method. - * - * Write writes len(p) bytes from p to the underlying data stream. - * It returns the number of bytes written from p (0 <= n <= len(p)) - * and any error encountered that caused the write to stop early. - * Write must return a non-nil error if it returns n < len(p). - * Write must not modify the slice data, even temporarily. - * - * Implementations must not retain p. - */ - interface Writer { - [key:string]: any; - write(p: string|Array): number - } - /** - * ReadCloser is the interface that groups the basic Read and Close methods. - */ - interface ReadCloser { - [key:string]: any; - } - /** - * ReadSeekCloser is the interface that groups the basic Read, Seek and Close - * methods. - */ - interface ReadSeekCloser { - [key:string]: any; - } -} - -/** - * Package bytes implements functions for the manipulation of byte slices. - * It is analogous to the facilities of the [strings] package. - */ -namespace bytes { - /** - * A Reader implements the [io.Reader], [io.ReaderAt], [io.WriterTo], [io.Seeker], - * [io.ByteScanner], and [io.RuneScanner] interfaces by reading from - * a byte slice. - * Unlike a [Buffer], a Reader is read-only and supports seeking. - * The zero value for Reader operates like a Reader of an empty slice. - */ - interface Reader { - } - interface Reader { - /** - * Len returns the number of bytes of the unread portion of the - * slice. - */ - len(): number - } - interface Reader { - /** - * Size returns the original length of the underlying byte slice. - * Size is the number of bytes available for reading via [Reader.ReadAt]. - * The result is unaffected by any method calls except [Reader.Reset]. - */ - size(): number - } - interface Reader { - /** - * Read implements the [io.Reader] interface. - */ - read(b: string|Array): number - } - interface Reader { - /** - * ReadAt implements the [io.ReaderAt] interface. - */ - readAt(b: string|Array, off: number): number - } - interface Reader { - /** - * ReadByte implements the [io.ByteReader] interface. - */ - readByte(): number - } - interface Reader { - /** - * UnreadByte complements [Reader.ReadByte] in implementing the [io.ByteScanner] interface. - */ - unreadByte(): void - } - interface Reader { - /** - * ReadRune implements the [io.RuneReader] interface. - */ - readRune(): [number, number] - } - interface Reader { - /** - * UnreadRune complements [Reader.ReadRune] in implementing the [io.RuneScanner] interface. - */ - unreadRune(): void - } - interface Reader { - /** - * Seek implements the [io.Seeker] interface. - */ - seek(offset: number, whence: number): number - } - interface Reader { - /** - * WriteTo implements the [io.WriterTo] interface. - */ - writeTo(w: io.Writer): number - } - interface Reader { - /** - * Reset resets the [Reader] to be reading from b. - */ - reset(b: string|Array): void - } -} - -/** - * Package syscall contains an interface to the low-level operating system - * primitives. The details vary depending on the underlying system, and - * by default, godoc will display the syscall documentation for the current - * system. If you want godoc to display syscall documentation for another - * system, set $GOOS and $GOARCH to the desired system. For example, if - * you want to view documentation for freebsd/arm on linux/amd64, set $GOOS - * to freebsd and $GOARCH to arm. - * The primary use of syscall is inside other packages that provide a more - * portable interface to the system, such as "os", "time" and "net". Use - * those packages rather than this one if you can. - * For details of the functions and data types in this package consult - * the manuals for the appropriate operating system. - * These calls return err == nil to indicate success; otherwise - * err is an operating system error describing the failure. - * On most systems, that error has type [Errno]. - * - * NOTE: Most of the functions, types, and constants defined in - * this package are also available in the [golang.org/x/sys] package. - * That package has more system call support than this one, - * and most new code should prefer that package where possible. - * See https://golang.org/s/go1.4-syscall for more information. - */ -namespace syscall { - interface SysProcAttr { - chroot: string // Chroot. - credential?: Credential // Credential. - /** - * Ptrace tells the child to call ptrace(PTRACE_TRACEME). - * Call runtime.LockOSThread before starting a process with this set, - * and don't call UnlockOSThread until done with PtraceSyscall calls. - */ - ptrace: boolean - setsid: boolean // Create session. - /** - * Setpgid sets the process group ID of the child to Pgid, - * or, if Pgid == 0, to the new child's process ID. - */ - setpgid: boolean - /** - * Setctty sets the controlling terminal of the child to - * file descriptor Ctty. Ctty must be a descriptor number - * in the child process: an index into ProcAttr.Files. - * This is only meaningful if Setsid is true. - */ - setctty: boolean - noctty: boolean // Detach fd 0 from controlling terminal. - ctty: number // Controlling TTY fd. - /** - * Foreground places the child process group in the foreground. - * This implies Setpgid. The Ctty field must be set to - * the descriptor of the controlling TTY. - * Unlike Setctty, in this case Ctty must be a descriptor - * number in the parent process. - */ - foreground: boolean - pgid: number // Child's process group ID if Setpgid. - /** - * Pdeathsig, if non-zero, is a signal that the kernel will send to - * the child process when the creating thread dies. Note that the signal - * is sent on thread termination, which may happen before process termination. - * There are more details at https://go.dev/issue/27505. - */ - pdeathsig: Signal - cloneflags: number // Flags for clone calls. - unshareflags: number // Flags for unshare calls. - uidMappings: Array // User ID mappings for user namespaces. - gidMappings: Array // Group ID mappings for user namespaces. - /** - * GidMappingsEnableSetgroups enabling setgroups syscall. - * If false, then setgroups syscall will be disabled for the child process. - * This parameter is no-op if GidMappings == nil. Otherwise for unprivileged - * users this should be set to false for mappings work. - */ - gidMappingsEnableSetgroups: boolean - ambientCaps: Array // Ambient capabilities. - useCgroupFD: boolean // Whether to make use of the CgroupFD field. - cgroupFD: number // File descriptor of a cgroup to put the new process into. - /** - * PidFD, if not nil, is used to store the pidfd of a child, if the - * functionality is supported by the kernel, or -1. Note *PidFD is - * changed only if the process starts successfully. - */ - pidFD?: number - } - // @ts-ignore - import errorspkg = errors - /** - * A RawConn is a raw network connection. - */ - interface RawConn { - [key:string]: any; - /** - * Control invokes f on the underlying connection's file - * descriptor or handle. - * The file descriptor fd is guaranteed to remain valid while - * f executes but not after f returns. - */ - control(f: (fd: number) => void): void - /** - * Read invokes f on the underlying connection's file - * descriptor or handle; f is expected to try to read from the - * file descriptor. - * If f returns true, Read returns. Otherwise Read blocks - * waiting for the connection to be ready for reading and - * tries again repeatedly. - * The file descriptor is guaranteed to remain valid while f - * executes but not after f returns. - */ - read(f: (fd: number) => boolean): void - /** - * Write is like Read but for writing. - */ - write(f: (fd: number) => boolean): void - } - // @ts-ignore - import runtimesyscall = syscall - /** - * An Errno is an unsigned number describing an error condition. - * It implements the error interface. The zero Errno is by convention - * a non-error, so code to convert from Errno to error should use: - * - * ``` - * err = nil - * if errno != 0 { - * err = errno - * } - * ``` - * - * Errno values can be tested against error values using [errors.Is]. - * For example: - * - * ``` - * _, _, err := syscall.Syscall(...) - * if errors.Is(err, fs.ErrNotExist) ... - * ``` - */ - interface Errno extends Number{} - interface Errno { - error(): string - } - interface Errno { - is(target: Error): boolean - } - interface Errno { - temporary(): boolean - } - interface Errno { - timeout(): boolean - } -} - -/** - * Package time provides functionality for measuring and displaying time. - * - * The calendrical calculations always assume a Gregorian calendar, with - * no leap seconds. - * - * # Monotonic Clocks - * - * Operating systems provide both a “wall clock,” which is subject to - * changes for clock synchronization, and a “monotonic clock,” which is - * not. The general rule is that the wall clock is for telling time and - * the monotonic clock is for measuring time. Rather than split the API, - * in this package the Time returned by [time.Now] contains both a wall - * clock reading and a monotonic clock reading; later time-telling - * operations use the wall clock reading, but later time-measuring - * operations, specifically comparisons and subtractions, use the - * monotonic clock reading. - * - * For example, this code always computes a positive elapsed time of - * approximately 20 milliseconds, even if the wall clock is changed during - * the operation being timed: - * - * ``` - * start := time.Now() - * ... operation that takes 20 milliseconds ... - * t := time.Now() - * elapsed := t.Sub(start) - * ``` - * - * Other idioms, such as [time.Since](start), [time.Until](deadline), and - * time.Now().Before(deadline), are similarly robust against wall clock - * resets. - * - * The rest of this section gives the precise details of how operations - * use monotonic clocks, but understanding those details is not required - * to use this package. - * - * The Time returned by time.Now contains a monotonic clock reading. - * If Time t has a monotonic clock reading, t.Add adds the same duration to - * both the wall clock and monotonic clock readings to compute the result. - * Because t.AddDate(y, m, d), t.Round(d), and t.Truncate(d) are wall time - * computations, they always strip any monotonic clock reading from their results. - * Because t.In, t.Local, and t.UTC are used for their effect on the interpretation - * of the wall time, they also strip any monotonic clock reading from their results. - * The canonical way to strip a monotonic clock reading is to use t = t.Round(0). - * - * If Times t and u both contain monotonic clock readings, the operations - * t.After(u), t.Before(u), t.Equal(u), t.Compare(u), and t.Sub(u) are carried out - * using the monotonic clock readings alone, ignoring the wall clock - * readings. If either t or u contains no monotonic clock reading, these - * operations fall back to using the wall clock readings. - * - * On some systems the monotonic clock will stop if the computer goes to sleep. - * On such a system, t.Sub(u) may not accurately reflect the actual - * time that passed between t and u. The same applies to other functions and - * methods that subtract times, such as [Since], [Until], [Before], [After], - * [Add], [Sub], [Equal] and [Compare]. In some cases, you may need to strip - * the monotonic clock to get accurate results. - * - * Because the monotonic clock reading has no meaning outside - * the current process, the serialized forms generated by t.GobEncode, - * t.MarshalBinary, t.MarshalJSON, and t.MarshalText omit the monotonic - * clock reading, and t.Format provides no format for it. Similarly, the - * constructors [time.Date], [time.Parse], [time.ParseInLocation], and [time.Unix], - * as well as the unmarshalers t.GobDecode, t.UnmarshalBinary. - * t.UnmarshalJSON, and t.UnmarshalText always create times with - * no monotonic clock reading. - * - * The monotonic clock reading exists only in [Time] values. It is not - * a part of [Duration] values or the Unix times returned by t.Unix and - * friends. - * - * Note that the Go == operator compares not just the time instant but - * also the [Location] and the monotonic clock reading. See the - * documentation for the Time type for a discussion of equality - * testing for Time values. - * - * For debugging, the result of t.String does include the monotonic - * clock reading if present. If t != u because of different monotonic clock readings, - * that difference will be visible when printing t.String() and u.String(). - * - * # Timer Resolution - * - * [Timer] resolution varies depending on the Go runtime, the operating system - * and the underlying hardware. - * On Unix, the resolution is ~1ms. - * On Windows version 1803 and newer, the resolution is ~0.5ms. - * On older Windows versions, the default resolution is ~16ms, but - * a higher resolution may be requested using [golang.org/x/sys/windows.TimeBeginPeriod]. - */ -namespace time { - interface Time { - /** - * String returns the time formatted using the format string - * - * ``` - * "2006-01-02 15:04:05.999999999 -0700 MST" - * ``` - * - * If the time has a monotonic clock reading, the returned string - * includes a final field "m=±", where value is the monotonic - * clock reading formatted as a decimal number of seconds. - * - * The returned string is meant for debugging; for a stable serialized - * representation, use t.MarshalText, t.MarshalBinary, or t.Format - * with an explicit format string. - */ - string(): string - } - interface Time { - /** - * GoString implements [fmt.GoStringer] and formats t to be printed in Go source - * code. - */ - goString(): string - } - interface Time { - /** - * Format returns a textual representation of the time value formatted according - * to the layout defined by the argument. See the documentation for the - * constant called [Layout] to see how to represent the layout format. - * - * The executable example for [Time.Format] demonstrates the working - * of the layout string in detail and is a good reference. - */ - format(layout: string): string - } - interface Time { - /** - * AppendFormat is like [Time.Format] but appends the textual - * representation to b and returns the extended buffer. - */ - appendFormat(b: string|Array, layout: string): string|Array - } - /** - * A Time represents an instant in time with nanosecond precision. - * - * Programs using times should typically store and pass them as values, - * not pointers. That is, time variables and struct fields should be of - * type [time.Time], not *time.Time. - * - * A Time value can be used by multiple goroutines simultaneously except - * that the methods [Time.GobDecode], [Time.UnmarshalBinary], [Time.UnmarshalJSON] and - * [Time.UnmarshalText] are not concurrency-safe. - * - * Time instants can be compared using the [Time.Before], [Time.After], and [Time.Equal] methods. - * The [Time.Sub] method subtracts two instants, producing a [Duration]. - * The [Time.Add] method adds a Time and a Duration, producing a Time. - * - * The zero value of type Time is January 1, year 1, 00:00:00.000000000 UTC. - * As this time is unlikely to come up in practice, the [Time.IsZero] method gives - * a simple way of detecting a time that has not been initialized explicitly. - * - * Each time has an associated [Location]. The methods [Time.Local], [Time.UTC], and Time.In return a - * Time with a specific Location. Changing the Location of a Time value with - * these methods does not change the actual instant it represents, only the time - * zone in which to interpret it. - * - * Representations of a Time value saved by the [Time.GobEncode], [Time.MarshalBinary], - * [Time.MarshalJSON], and [Time.MarshalText] methods store the [Time.Location]'s offset, but not - * the location name. They therefore lose information about Daylight Saving Time. - * - * In addition to the required “wall clock” reading, a Time may contain an optional - * reading of the current process's monotonic clock, to provide additional precision - * for comparison or subtraction. - * See the “Monotonic Clocks” section in the package documentation for details. - * - * Note that the Go == operator compares not just the time instant but also the - * Location and the monotonic clock reading. Therefore, Time values should not - * be used as map or database keys without first guaranteeing that the - * identical Location has been set for all values, which can be achieved - * through use of the UTC or Local method, and that the monotonic clock reading - * has been stripped by setting t = t.Round(0). In general, prefer t.Equal(u) - * to t == u, since t.Equal uses the most accurate comparison available and - * correctly handles the case when only one of its arguments has a monotonic - * clock reading. - */ - interface Time { - } - interface Time { - /** - * After reports whether the time instant t is after u. - */ - after(u: Time): boolean - } - interface Time { - /** - * Before reports whether the time instant t is before u. - */ - before(u: Time): boolean - } - interface Time { - /** - * Compare compares the time instant t with u. If t is before u, it returns -1; - * if t is after u, it returns +1; if they're the same, it returns 0. - */ - compare(u: Time): number - } - interface Time { - /** - * Equal reports whether t and u represent the same time instant. - * Two times can be equal even if they are in different locations. - * For example, 6:00 +0200 and 4:00 UTC are Equal. - * See the documentation on the Time type for the pitfalls of using == with - * Time values; most code should use Equal instead. - */ - equal(u: Time): boolean - } - interface Time { - /** - * IsZero reports whether t represents the zero time instant, - * January 1, year 1, 00:00:00 UTC. - */ - isZero(): boolean - } - interface Time { - /** - * Date returns the year, month, and day in which t occurs. - */ - date(): [number, Month, number] - } - interface Time { - /** - * Year returns the year in which t occurs. - */ - year(): number - } - interface Time { - /** - * Month returns the month of the year specified by t. - */ - month(): Month - } - interface Time { - /** - * Day returns the day of the month specified by t. - */ - day(): number - } - interface Time { - /** - * Weekday returns the day of the week specified by t. - */ - weekday(): Weekday - } - interface Time { - /** - * ISOWeek returns the ISO 8601 year and week number in which t occurs. - * Week ranges from 1 to 53. Jan 01 to Jan 03 of year n might belong to - * week 52 or 53 of year n-1, and Dec 29 to Dec 31 might belong to week 1 - * of year n+1. - */ - isoWeek(): [number, number] - } - interface Time { - /** - * Clock returns the hour, minute, and second within the day specified by t. - */ - clock(): [number, number, number] - } - interface Time { - /** - * Hour returns the hour within the day specified by t, in the range [0, 23]. - */ - hour(): number - } - interface Time { - /** - * Minute returns the minute offset within the hour specified by t, in the range [0, 59]. - */ - minute(): number - } - interface Time { - /** - * Second returns the second offset within the minute specified by t, in the range [0, 59]. - */ - second(): number - } - interface Time { - /** - * Nanosecond returns the nanosecond offset within the second specified by t, - * in the range [0, 999999999]. - */ - nanosecond(): number - } - interface Time { - /** - * YearDay returns the day of the year specified by t, in the range [1,365] for non-leap years, - * and [1,366] in leap years. - */ - yearDay(): number - } - /** - * A Duration represents the elapsed time between two instants - * as an int64 nanosecond count. The representation limits the - * largest representable duration to approximately 290 years. - */ - interface Duration extends Number{} - interface Duration { - /** - * String returns a string representing the duration in the form "72h3m0.5s". - * Leading zero units are omitted. As a special case, durations less than one - * second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure - * that the leading digit is non-zero. The zero duration formats as 0s. - */ - string(): string - } - interface Duration { - /** - * Nanoseconds returns the duration as an integer nanosecond count. - */ - nanoseconds(): number - } - interface Duration { - /** - * Microseconds returns the duration as an integer microsecond count. - */ - microseconds(): number - } - interface Duration { - /** - * Milliseconds returns the duration as an integer millisecond count. - */ - milliseconds(): number - } - interface Duration { - /** - * Seconds returns the duration as a floating point number of seconds. - */ - seconds(): number - } - interface Duration { - /** - * Minutes returns the duration as a floating point number of minutes. - */ - minutes(): number - } - interface Duration { - /** - * Hours returns the duration as a floating point number of hours. - */ - hours(): number - } - interface Duration { - /** - * Truncate returns the result of rounding d toward zero to a multiple of m. - * If m <= 0, Truncate returns d unchanged. - */ - truncate(m: Duration): Duration - } - interface Duration { - /** - * Round returns the result of rounding d to the nearest multiple of m. - * The rounding behavior for halfway values is to round away from zero. - * If the result exceeds the maximum (or minimum) - * value that can be stored in a [Duration], - * Round returns the maximum (or minimum) duration. - * If m <= 0, Round returns d unchanged. - */ - round(m: Duration): Duration - } - interface Duration { - /** - * Abs returns the absolute value of d. - * As a special case, [math.MinInt64] is converted to [math.MaxInt64]. - */ - abs(): Duration - } - interface Time { - /** - * Add returns the time t+d. - */ - add(d: Duration): Time - } - interface Time { - /** - * Sub returns the duration t-u. If the result exceeds the maximum (or minimum) - * value that can be stored in a [Duration], the maximum (or minimum) duration - * will be returned. - * To compute t-d for a duration d, use t.Add(-d). - */ - sub(u: Time): Duration - } - interface Time { - /** - * AddDate returns the time corresponding to adding the - * given number of years, months, and days to t. - * For example, AddDate(-1, 2, 3) applied to January 1, 2011 - * returns March 4, 2010. - * - * Note that dates are fundamentally coupled to timezones, and calendrical - * periods like days don't have fixed durations. AddDate uses the Location of - * the Time value to determine these durations. That means that the same - * AddDate arguments can produce a different shift in absolute time depending on - * the base Time value and its Location. For example, AddDate(0, 0, 1) applied - * to 12:00 on March 27 always returns 12:00 on March 28. At some locations and - * in some years this is a 24 hour shift. In others it's a 23 hour shift due to - * daylight savings time transitions. - * - * AddDate normalizes its result in the same way that Date does, - * so, for example, adding one month to October 31 yields - * December 1, the normalized form for November 31. - */ - addDate(years: number, months: number, days: number): Time - } - interface Time { - /** - * UTC returns t with the location set to UTC. - */ - utc(): Time - } - interface Time { - /** - * Local returns t with the location set to local time. - */ - local(): Time - } - interface Time { - /** - * In returns a copy of t representing the same time instant, but - * with the copy's location information set to loc for display - * purposes. - * - * In panics if loc is nil. - */ - in(loc: Location): Time - } - interface Time { - /** - * Location returns the time zone information associated with t. - */ - location(): (Location) - } - interface Time { - /** - * Zone computes the time zone in effect at time t, returning the abbreviated - * name of the zone (such as "CET") and its offset in seconds east of UTC. - */ - zone(): [string, number] - } - interface Time { - /** - * ZoneBounds returns the bounds of the time zone in effect at time t. - * The zone begins at start and the next zone begins at end. - * If the zone begins at the beginning of time, start will be returned as a zero Time. - * If the zone goes on forever, end will be returned as a zero Time. - * The Location of the returned times will be the same as t. - */ - zoneBounds(): [Time, Time] - } - interface Time { - /** - * Unix returns t as a Unix time, the number of seconds elapsed - * since January 1, 1970 UTC. The result does not depend on the - * location associated with t. - * Unix-like operating systems often record time as a 32-bit - * count of seconds, but since the method here returns a 64-bit - * value it is valid for billions of years into the past or future. - */ - unix(): number - } - interface Time { - /** - * UnixMilli returns t as a Unix time, the number of milliseconds elapsed since - * January 1, 1970 UTC. The result is undefined if the Unix time in - * milliseconds cannot be represented by an int64 (a date more than 292 million - * years before or after 1970). The result does not depend on the - * location associated with t. - */ - unixMilli(): number - } - interface Time { - /** - * UnixMicro returns t as a Unix time, the number of microseconds elapsed since - * January 1, 1970 UTC. The result is undefined if the Unix time in - * microseconds cannot be represented by an int64 (a date before year -290307 or - * after year 294246). The result does not depend on the location associated - * with t. - */ - unixMicro(): number - } - interface Time { - /** - * UnixNano returns t as a Unix time, the number of nanoseconds elapsed - * since January 1, 1970 UTC. The result is undefined if the Unix time - * in nanoseconds cannot be represented by an int64 (a date before the year - * 1678 or after 2262). Note that this means the result of calling UnixNano - * on the zero Time is undefined. The result does not depend on the - * location associated with t. - */ - unixNano(): number - } - interface Time { - /** - * MarshalBinary implements the encoding.BinaryMarshaler interface. - */ - marshalBinary(): string|Array - } - interface Time { - /** - * UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. - */ - unmarshalBinary(data: string|Array): void - } - interface Time { - /** - * GobEncode implements the gob.GobEncoder interface. - */ - gobEncode(): string|Array - } - interface Time { - /** - * GobDecode implements the gob.GobDecoder interface. - */ - gobDecode(data: string|Array): void - } - interface Time { - /** - * MarshalJSON implements the [json.Marshaler] interface. - * The time is a quoted string in the RFC 3339 format with sub-second precision. - * If the timestamp cannot be represented as valid RFC 3339 - * (e.g., the year is out of range), then an error is reported. - */ - marshalJSON(): string|Array - } - interface Time { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - * The time must be a quoted string in the RFC 3339 format. - */ - unmarshalJSON(data: string|Array): void - } - interface Time { - /** - * MarshalText implements the [encoding.TextMarshaler] interface. - * The time is formatted in RFC 3339 format with sub-second precision. - * If the timestamp cannot be represented as valid RFC 3339 - * (e.g., the year is out of range), then an error is reported. - */ - marshalText(): string|Array - } - interface Time { - /** - * UnmarshalText implements the [encoding.TextUnmarshaler] interface. - * The time must be in the RFC 3339 format. - */ - unmarshalText(data: string|Array): void - } - interface Time { - /** - * IsDST reports whether the time in the configured location is in Daylight Savings Time. - */ - isDST(): boolean - } - interface Time { - /** - * Truncate returns the result of rounding t down to a multiple of d (since the zero time). - * If d <= 0, Truncate returns t stripped of any monotonic clock reading but otherwise unchanged. - * - * Truncate operates on the time as an absolute duration since the - * zero time; it does not operate on the presentation form of the - * time. Thus, Truncate(Hour) may return a time with a non-zero - * minute, depending on the time's Location. - */ - truncate(d: Duration): Time - } - interface Time { - /** - * Round returns the result of rounding t to the nearest multiple of d (since the zero time). - * The rounding behavior for halfway values is to round up. - * If d <= 0, Round returns t stripped of any monotonic clock reading but otherwise unchanged. - * - * Round operates on the time as an absolute duration since the - * zero time; it does not operate on the presentation form of the - * time. Thus, Round(Hour) may return a time with a non-zero - * minute, depending on the time's Location. - */ - round(d: Duration): Time - } -} - -/** - * Package fs defines basic interfaces to a file system. - * A file system can be provided by the host operating system - * but also by other packages. - * - * See the [testing/fstest] package for support with testing - * implementations of file systems. - */ -namespace fs { - /** - * An FS provides access to a hierarchical file system. - * - * The FS interface is the minimum implementation required of the file system. - * A file system may implement additional interfaces, - * such as [ReadFileFS], to provide additional or optimized functionality. - * - * [testing/fstest.TestFS] may be used to test implementations of an FS for - * correctness. - */ - interface FS { - [key:string]: any; - /** - * Open opens the named file. - * - * When Open returns an error, it should be of type *PathError - * with the Op field set to "open", the Path field set to name, - * and the Err field describing the problem. - * - * Open should reject attempts to open names that do not satisfy - * ValidPath(name), returning a *PathError with Err set to - * ErrInvalid or ErrNotExist. - */ - open(name: string): File - } - /** - * A File provides access to a single file. - * The File interface is the minimum implementation required of the file. - * Directory files should also implement [ReadDirFile]. - * A file may implement [io.ReaderAt] or [io.Seeker] as optimizations. - */ - interface File { - [key:string]: any; - stat(): FileInfo - read(_arg0: string|Array): number - close(): void - } - /** - * A DirEntry is an entry read from a directory - * (using the [ReadDir] function or a [ReadDirFile]'s ReadDir method). - */ - interface DirEntry { - [key:string]: any; - /** - * Name returns the name of the file (or subdirectory) described by the entry. - * This name is only the final element of the path (the base name), not the entire path. - * For example, Name would return "hello.go" not "home/gopher/hello.go". - */ - name(): string - /** - * IsDir reports whether the entry describes a directory. - */ - isDir(): boolean - /** - * Type returns the type bits for the entry. - * The type bits are a subset of the usual FileMode bits, those returned by the FileMode.Type method. - */ - type(): FileMode - /** - * Info returns the FileInfo for the file or subdirectory described by the entry. - * The returned FileInfo may be from the time of the original directory read - * or from the time of the call to Info. If the file has been removed or renamed - * since the directory read, Info may return an error satisfying errors.Is(err, ErrNotExist). - * If the entry denotes a symbolic link, Info reports the information about the link itself, - * not the link's target. - */ - info(): FileInfo - } - /** - * A FileInfo describes a file and is returned by [Stat]. - */ - interface FileInfo { - [key:string]: any; - name(): string // base name of the file - size(): number // length in bytes for regular files; system-dependent for others - mode(): FileMode // file mode bits - modTime(): time.Time // modification time - isDir(): boolean // abbreviation for Mode().IsDir() - sys(): any // underlying data source (can return nil) - } - /** - * A FileMode represents a file's mode and permission bits. - * The bits have the same definition on all systems, so that - * information about files can be moved from one system - * to another portably. Not all bits apply to all systems. - * The only required bit is [ModeDir] for directories. - */ - interface FileMode extends Number{} - interface FileMode { - string(): string - } - interface FileMode { - /** - * IsDir reports whether m describes a directory. - * That is, it tests for the [ModeDir] bit being set in m. - */ - isDir(): boolean - } - interface FileMode { - /** - * IsRegular reports whether m describes a regular file. - * That is, it tests that no mode type bits are set. - */ - isRegular(): boolean - } - interface FileMode { - /** - * Perm returns the Unix permission bits in m (m & [ModePerm]). - */ - perm(): FileMode - } - interface FileMode { - /** - * Type returns type bits in m (m & [ModeType]). - */ - type(): FileMode - } - /** - * PathError records an error and the operation and file path that caused it. - */ - interface PathError { - op: string - path: string - err: Error - } - interface PathError { - error(): string - } - interface PathError { - unwrap(): void - } - interface PathError { - /** - * Timeout reports whether this error represents a timeout. - */ - timeout(): boolean - } - /** - * WalkDirFunc is the type of the function called by [WalkDir] to visit - * each file or directory. - * - * The path argument contains the argument to [WalkDir] as a prefix. - * That is, if WalkDir is called with root argument "dir" and finds a file - * named "a" in that directory, the walk function will be called with - * argument "dir/a". - * - * The d argument is the [DirEntry] for the named path. - * - * The error result returned by the function controls how [WalkDir] - * continues. If the function returns the special value [SkipDir], WalkDir - * skips the current directory (path if d.IsDir() is true, otherwise - * path's parent directory). If the function returns the special value - * [SkipAll], WalkDir skips all remaining files and directories. Otherwise, - * if the function returns a non-nil error, WalkDir stops entirely and - * returns that error. - * - * The err argument reports an error related to path, signaling that - * [WalkDir] will not walk into that directory. The function can decide how - * to handle that error; as described earlier, returning the error will - * cause WalkDir to stop walking the entire tree. - * - * [WalkDir] calls the function with a non-nil err argument in two cases. - * - * First, if the initial [Stat] on the root directory fails, WalkDir - * calls the function with path set to root, d set to nil, and err set to - * the error from [fs.Stat]. - * - * Second, if a directory's ReadDir method (see [ReadDirFile]) fails, WalkDir calls the - * function with path set to the directory's path, d set to an - * [DirEntry] describing the directory, and err set to the error from - * ReadDir. In this second case, the function is called twice with the - * path of the directory: the first call is before the directory read is - * attempted and has err set to nil, giving the function a chance to - * return [SkipDir] or [SkipAll] and avoid the ReadDir entirely. The second call - * is after a failed ReadDir and reports the error from ReadDir. - * (If ReadDir succeeds, there is no second call.) - * - * The differences between WalkDirFunc compared to [path/filepath.WalkFunc] are: - * - * ``` - * - The second argument has type [DirEntry] instead of [FileInfo]. - * - The function is called before reading a directory, to allow [SkipDir] - * or [SkipAll] to bypass the directory read entirely or skip all remaining - * files and directories respectively. - * - If a directory read fails, the function is called a second time - * for that directory to report the error. - * ``` - */ - interface WalkDirFunc {(path: string, d: DirEntry, err: Error): void } -} - -/** - * Package context defines the Context type, which carries deadlines, - * cancellation signals, and other request-scoped values across API boundaries - * and between processes. - * - * Incoming requests to a server should create a [Context], and outgoing - * calls to servers should accept a Context. The chain of function - * calls between them must propagate the Context, optionally replacing - * it with a derived Context created using [WithCancel], [WithDeadline], - * [WithTimeout], or [WithValue]. When a Context is canceled, all - * Contexts derived from it are also canceled. - * - * The [WithCancel], [WithDeadline], and [WithTimeout] functions take a - * Context (the parent) and return a derived Context (the child) and a - * [CancelFunc]. Calling the CancelFunc cancels the child and its - * children, removes the parent's reference to the child, and stops - * any associated timers. Failing to call the CancelFunc leaks the - * child and its children until the parent is canceled or the timer - * fires. The go vet tool checks that CancelFuncs are used on all - * control-flow paths. - * - * The [WithCancelCause] function returns a [CancelCauseFunc], which - * takes an error and records it as the cancellation cause. Calling - * [Cause] on the canceled context or any of its children retrieves - * the cause. If no cause is specified, Cause(ctx) returns the same - * value as ctx.Err(). - * - * Programs that use Contexts should follow these rules to keep interfaces - * consistent across packages and enable static analysis tools to check context - * propagation: - * - * Do not store Contexts inside a struct type; instead, pass a Context - * explicitly to each function that needs it. The Context should be the first - * parameter, typically named ctx: - * - * ``` - * func DoSomething(ctx context.Context, arg Arg) error { - * // ... use ctx ... - * } - * ``` - * - * Do not pass a nil [Context], even if a function permits it. Pass [context.TODO] - * if you are unsure about which Context to use. - * - * Use context Values only for request-scoped data that transits processes and - * APIs, not for passing optional parameters to functions. - * - * The same Context may be passed to functions running in different goroutines; - * Contexts are safe for simultaneous use by multiple goroutines. - * - * See https://blog.golang.org/context for example code for a server that uses - * Contexts. - */ -namespace context { - /** - * A Context carries a deadline, a cancellation signal, and other values across - * API boundaries. - * - * Context's methods may be called by multiple goroutines simultaneously. - */ - interface Context { - [key:string]: any; - /** - * Deadline returns the time when work done on behalf of this context - * should be canceled. Deadline returns ok==false when no deadline is - * set. Successive calls to Deadline return the same results. - */ - deadline(): [time.Time, boolean] - /** - * Done returns a channel that's closed when work done on behalf of this - * context should be canceled. Done may return nil if this context can - * never be canceled. Successive calls to Done return the same value. - * The close of the Done channel may happen asynchronously, - * after the cancel function returns. - * - * WithCancel arranges for Done to be closed when cancel is called; - * WithDeadline arranges for Done to be closed when the deadline - * expires; WithTimeout arranges for Done to be closed when the timeout - * elapses. - * - * Done is provided for use in select statements: - * - * // Stream generates values with DoSomething and sends them to out - * // until DoSomething returns an error or ctx.Done is closed. - * func Stream(ctx context.Context, out chan<- Value) error { - * for { - * v, err := DoSomething(ctx) - * if err != nil { - * return err - * } - * select { - * case <-ctx.Done(): - * return ctx.Err() - * case out <- v: - * } - * } - * } - * - * See https://blog.golang.org/pipelines for more examples of how to use - * a Done channel for cancellation. - */ - done(): undefined - /** - * If Done is not yet closed, Err returns nil. - * If Done is closed, Err returns a non-nil error explaining why: - * Canceled if the context was canceled - * or DeadlineExceeded if the context's deadline passed. - * After Err returns a non-nil error, successive calls to Err return the same error. - */ - err(): void - /** - * Value returns the value associated with this context for key, or nil - * if no value is associated with key. Successive calls to Value with - * the same key returns the same result. - * - * Use context values only for request-scoped data that transits - * processes and API boundaries, not for passing optional parameters to - * functions. - * - * A key identifies a specific value in a Context. Functions that wish - * to store values in Context typically allocate a key in a global - * variable then use that key as the argument to context.WithValue and - * Context.Value. A key can be any type that supports equality; - * packages should define keys as an unexported type to avoid - * collisions. - * - * Packages that define a Context key should provide type-safe accessors - * for the values stored using that key: - * - * ``` - * // Package user defines a User type that's stored in Contexts. - * package user - * - * import "context" - * - * // User is the type of value stored in the Contexts. - * type User struct {...} - * - * // key is an unexported type for keys defined in this package. - * // This prevents collisions with keys defined in other packages. - * type key int - * - * // userKey is the key for user.User values in Contexts. It is - * // unexported; clients use user.NewContext and user.FromContext - * // instead of using this key directly. - * var userKey key - * - * // NewContext returns a new Context that carries value u. - * func NewContext(ctx context.Context, u *User) context.Context { - * return context.WithValue(ctx, userKey, u) - * } - * - * // FromContext returns the User value stored in ctx, if any. - * func FromContext(ctx context.Context) (*User, bool) { - * u, ok := ctx.Value(userKey).(*User) - * return u, ok - * } - * ``` - */ - value(key: any): any - } -} - -/** - * Package net provides a portable interface for network I/O, including - * TCP/IP, UDP, domain name resolution, and Unix domain sockets. - * - * Although the package provides access to low-level networking - * primitives, most clients will need only the basic interface provided - * by the [Dial], [Listen], and Accept functions and the associated - * [Conn] and [Listener] interfaces. The crypto/tls package uses - * the same interfaces and similar Dial and Listen functions. - * - * The Dial function connects to a server: - * - * ``` - * conn, err := net.Dial("tcp", "golang.org:80") - * if err != nil { - * // handle error - * } - * fmt.Fprintf(conn, "GET / HTTP/1.0\r\n\r\n") - * status, err := bufio.NewReader(conn).ReadString('\n') - * // ... - * ``` - * - * The Listen function creates servers: - * - * ``` - * ln, err := net.Listen("tcp", ":8080") - * if err != nil { - * // handle error - * } - * for { - * conn, err := ln.Accept() - * if err != nil { - * // handle error - * } - * go handleConnection(conn) - * } - * ``` - * - * # Name Resolution - * - * The method for resolving domain names, whether indirectly with functions like Dial - * or directly with functions like [LookupHost] and [LookupAddr], varies by operating system. - * - * On Unix systems, the resolver has two options for resolving names. - * It can use a pure Go resolver that sends DNS requests directly to the servers - * listed in /etc/resolv.conf, or it can use a cgo-based resolver that calls C - * library routines such as getaddrinfo and getnameinfo. - * - * On Unix the pure Go resolver is preferred over the cgo resolver, because a blocked DNS - * request consumes only a goroutine, while a blocked C call consumes an operating system thread. - * When cgo is available, the cgo-based resolver is used instead under a variety of - * conditions: on systems that do not let programs make direct DNS requests (OS X), - * when the LOCALDOMAIN environment variable is present (even if empty), - * when the RES_OPTIONS or HOSTALIASES environment variable is non-empty, - * when the ASR_CONFIG environment variable is non-empty (OpenBSD only), - * when /etc/resolv.conf or /etc/nsswitch.conf specify the use of features that the - * Go resolver does not implement. - * - * On all systems (except Plan 9), when the cgo resolver is being used - * this package applies a concurrent cgo lookup limit to prevent the system - * from running out of system threads. Currently, it is limited to 500 concurrent lookups. - * - * The resolver decision can be overridden by setting the netdns value of the - * GODEBUG environment variable (see package runtime) to go or cgo, as in: - * - * ``` - * export GODEBUG=netdns=go # force pure Go resolver - * export GODEBUG=netdns=cgo # force native resolver (cgo, win32) - * ``` - * - * The decision can also be forced while building the Go source tree - * by setting the netgo or netcgo build tag. - * - * A numeric netdns setting, as in GODEBUG=netdns=1, causes the resolver - * to print debugging information about its decisions. - * To force a particular resolver while also printing debugging information, - * join the two settings by a plus sign, as in GODEBUG=netdns=go+1. - * - * The Go resolver will send an EDNS0 additional header with a DNS request, - * to signal a willingness to accept a larger DNS packet size. - * This can reportedly cause sporadic failures with the DNS server run - * by some modems and routers. Setting GODEBUG=netedns0=0 will disable - * sending the additional header. - * - * On macOS, if Go code that uses the net package is built with - * -buildmode=c-archive, linking the resulting archive into a C program - * requires passing -lresolv when linking the C code. - * - * On Plan 9, the resolver always accesses /net/cs and /net/dns. - * - * On Windows, in Go 1.18.x and earlier, the resolver always used C - * library functions, such as GetAddrInfo and DnsQuery. - */ -namespace net { - /** - * Conn is a generic stream-oriented network connection. - * - * Multiple goroutines may invoke methods on a Conn simultaneously. - */ - interface Conn { - [key:string]: any; - /** - * Read reads data from the connection. - * Read can be made to time out and return an error after a fixed - * time limit; see SetDeadline and SetReadDeadline. - */ - read(b: string|Array): number - /** - * Write writes data to the connection. - * Write can be made to time out and return an error after a fixed - * time limit; see SetDeadline and SetWriteDeadline. - */ - write(b: string|Array): number - /** - * Close closes the connection. - * Any blocked Read or Write operations will be unblocked and return errors. - */ - close(): void - /** - * LocalAddr returns the local network address, if known. - */ - localAddr(): Addr - /** - * RemoteAddr returns the remote network address, if known. - */ - remoteAddr(): Addr - /** - * SetDeadline sets the read and write deadlines associated - * with the connection. It is equivalent to calling both - * SetReadDeadline and SetWriteDeadline. - * - * A deadline is an absolute time after which I/O operations - * fail instead of blocking. The deadline applies to all future - * and pending I/O, not just the immediately following call to - * Read or Write. After a deadline has been exceeded, the - * connection can be refreshed by setting a deadline in the future. - * - * If the deadline is exceeded a call to Read or Write or to other - * I/O methods will return an error that wraps os.ErrDeadlineExceeded. - * This can be tested using errors.Is(err, os.ErrDeadlineExceeded). - * The error's Timeout method will return true, but note that there - * are other possible errors for which the Timeout method will - * return true even if the deadline has not been exceeded. - * - * An idle timeout can be implemented by repeatedly extending - * the deadline after successful Read or Write calls. - * - * A zero value for t means I/O operations will not time out. - */ - setDeadline(t: time.Time): void - /** - * SetReadDeadline sets the deadline for future Read calls - * and any currently-blocked Read call. - * A zero value for t means Read will not time out. - */ - setReadDeadline(t: time.Time): void - /** - * SetWriteDeadline sets the deadline for future Write calls - * and any currently-blocked Write call. - * Even if write times out, it may return n > 0, indicating that - * some of the data was successfully written. - * A zero value for t means Write will not time out. - */ - setWriteDeadline(t: time.Time): void - } - /** - * A Listener is a generic network listener for stream-oriented protocols. - * - * Multiple goroutines may invoke methods on a Listener simultaneously. - */ - interface Listener { - [key:string]: any; - /** - * Accept waits for and returns the next connection to the listener. - */ - accept(): Conn - /** - * Close closes the listener. - * Any blocked Accept operations will be unblocked and return errors. - */ - close(): void - /** - * Addr returns the listener's network address. - */ - addr(): Addr - } -} - -/** - * Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html - * - * See README.md for more info. - */ -namespace jwt { - /** - * MapClaims is a claims type that uses the map[string]any for JSON - * decoding. This is the default claims type if you don't supply one - */ - interface MapClaims extends _TygojaDict{} - interface MapClaims { - /** - * GetExpirationTime implements the Claims interface. - */ - getExpirationTime(): (NumericDate) - } - interface MapClaims { - /** - * GetNotBefore implements the Claims interface. - */ - getNotBefore(): (NumericDate) - } - interface MapClaims { - /** - * GetIssuedAt implements the Claims interface. - */ - getIssuedAt(): (NumericDate) - } - interface MapClaims { - /** - * GetAudience implements the Claims interface. - */ - getAudience(): ClaimStrings - } - interface MapClaims { - /** - * GetIssuer implements the Claims interface. - */ - getIssuer(): string - } - interface MapClaims { - /** - * GetSubject implements the Claims interface. - */ - getSubject(): string - } -} - -/** - * Package sql provides a generic interface around SQL (or SQL-like) - * databases. - * - * The sql package must be used in conjunction with a database driver. - * See https://golang.org/s/sqldrivers for a list of drivers. - * - * Drivers that do not support context cancellation will not return until - * after the query is completed. - * - * For usage examples, see the wiki page at - * https://golang.org/s/sqlwiki. - */ -namespace sql { - /** - * TxOptions holds the transaction options to be used in [DB.BeginTx]. - */ - interface TxOptions { - /** - * Isolation is the transaction isolation level. - * If zero, the driver or database's default level is used. - */ - isolation: IsolationLevel - readOnly: boolean - } - /** - * NullString represents a string that may be null. - * NullString implements the [Scanner] interface so - * it can be used as a scan destination: - * - * ``` - * var s NullString - * err := db.QueryRow("SELECT name FROM foo WHERE id=?", id).Scan(&s) - * ... - * if s.Valid { - * // use s.String - * } else { - * // NULL value - * } - * ``` - */ - interface NullString { - string: string - valid: boolean // Valid is true if String is not NULL - } - interface NullString { - /** - * Scan implements the [Scanner] interface. - */ - scan(value: any): void - } - interface NullString { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - /** - * DB is a database handle representing a pool of zero or more - * underlying connections. It's safe for concurrent use by multiple - * goroutines. - * - * The sql package creates and frees connections automatically; it - * also maintains a free pool of idle connections. If the database has - * a concept of per-connection state, such state can be reliably observed - * within a transaction ([Tx]) or connection ([Conn]). Once [DB.Begin] is called, the - * returned [Tx] is bound to a single connection. Once [Tx.Commit] or - * [Tx.Rollback] is called on the transaction, that transaction's - * connection is returned to [DB]'s idle connection pool. The pool size - * can be controlled with [DB.SetMaxIdleConns]. - */ - interface DB { - } - interface DB { - /** - * PingContext verifies a connection to the database is still alive, - * establishing a connection if necessary. - */ - pingContext(ctx: context.Context): void - } - interface DB { - /** - * Ping verifies a connection to the database is still alive, - * establishing a connection if necessary. - * - * Ping uses [context.Background] internally; to specify the context, use - * [DB.PingContext]. - */ - ping(): void - } - interface DB { - /** - * Close closes the database and prevents new queries from starting. - * Close then waits for all queries that have started processing on the server - * to finish. - * - * It is rare to Close a [DB], as the [DB] handle is meant to be - * long-lived and shared between many goroutines. - */ - close(): void - } - interface DB { - /** - * SetMaxIdleConns sets the maximum number of connections in the idle - * connection pool. - * - * If MaxOpenConns is greater than 0 but less than the new MaxIdleConns, - * then the new MaxIdleConns will be reduced to match the MaxOpenConns limit. - * - * If n <= 0, no idle connections are retained. - * - * The default max idle connections is currently 2. This may change in - * a future release. - */ - setMaxIdleConns(n: number): void - } - interface DB { - /** - * SetMaxOpenConns sets the maximum number of open connections to the database. - * - * If MaxIdleConns is greater than 0 and the new MaxOpenConns is less than - * MaxIdleConns, then MaxIdleConns will be reduced to match the new - * MaxOpenConns limit. - * - * If n <= 0, then there is no limit on the number of open connections. - * The default is 0 (unlimited). - */ - setMaxOpenConns(n: number): void - } - interface DB { - /** - * SetConnMaxLifetime sets the maximum amount of time a connection may be reused. - * - * Expired connections may be closed lazily before reuse. - * - * If d <= 0, connections are not closed due to a connection's age. - */ - setConnMaxLifetime(d: time.Duration): void - } - interface DB { - /** - * SetConnMaxIdleTime sets the maximum amount of time a connection may be idle. - * - * Expired connections may be closed lazily before reuse. - * - * If d <= 0, connections are not closed due to a connection's idle time. - */ - setConnMaxIdleTime(d: time.Duration): void - } - interface DB { - /** - * Stats returns database statistics. - */ - stats(): DBStats - } - interface DB { - /** - * PrepareContext creates a prepared statement for later queries or executions. - * Multiple queries or executions may be run concurrently from the - * returned statement. - * The caller must call the statement's [*Stmt.Close] method - * when the statement is no longer needed. - * - * The provided context is used for the preparation of the statement, not for the - * execution of the statement. - */ - prepareContext(ctx: context.Context, query: string): (Stmt) - } - interface DB { - /** - * Prepare creates a prepared statement for later queries or executions. - * Multiple queries or executions may be run concurrently from the - * returned statement. - * The caller must call the statement's [*Stmt.Close] method - * when the statement is no longer needed. - * - * Prepare uses [context.Background] internally; to specify the context, use - * [DB.PrepareContext]. - */ - prepare(query: string): (Stmt) - } - interface DB { - /** - * ExecContext executes a query without returning any rows. - * The args are for any placeholder parameters in the query. - */ - execContext(ctx: context.Context, query: string, ...args: any[]): Result - } - interface DB { - /** - * Exec executes a query without returning any rows. - * The args are for any placeholder parameters in the query. - * - * Exec uses [context.Background] internally; to specify the context, use - * [DB.ExecContext]. - */ - exec(query: string, ...args: any[]): Result - } - interface DB { - /** - * QueryContext executes a query that returns rows, typically a SELECT. - * The args are for any placeholder parameters in the query. - */ - queryContext(ctx: context.Context, query: string, ...args: any[]): (Rows) - } - interface DB { - /** - * Query executes a query that returns rows, typically a SELECT. - * The args are for any placeholder parameters in the query. - * - * Query uses [context.Background] internally; to specify the context, use - * [DB.QueryContext]. - */ - query(query: string, ...args: any[]): (Rows) - } - interface DB { - /** - * QueryRowContext executes a query that is expected to return at most one row. - * QueryRowContext always returns a non-nil value. Errors are deferred until - * [Row]'s Scan method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, [*Row.Scan] scans the first selected row and discards - * the rest. - */ - queryRowContext(ctx: context.Context, query: string, ...args: any[]): (Row) - } - interface DB { - /** - * QueryRow executes a query that is expected to return at most one row. - * QueryRow always returns a non-nil value. Errors are deferred until - * [Row]'s Scan method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, [*Row.Scan] scans the first selected row and discards - * the rest. - * - * QueryRow uses [context.Background] internally; to specify the context, use - * [DB.QueryRowContext]. - */ - queryRow(query: string, ...args: any[]): (Row) - } - interface DB { - /** - * BeginTx starts a transaction. - * - * The provided context is used until the transaction is committed or rolled back. - * If the context is canceled, the sql package will roll back - * the transaction. [Tx.Commit] will return an error if the context provided to - * BeginTx is canceled. - * - * The provided [TxOptions] is optional and may be nil if defaults should be used. - * If a non-default isolation level is used that the driver doesn't support, - * an error will be returned. - */ - beginTx(ctx: context.Context, opts: TxOptions): (Tx) - } - interface DB { - /** - * Begin starts a transaction. The default isolation level is dependent on - * the driver. - * - * Begin uses [context.Background] internally; to specify the context, use - * [DB.BeginTx]. - */ - begin(): (Tx) - } - interface DB { - /** - * Driver returns the database's underlying driver. - */ - driver(): any - } - interface DB { - /** - * Conn returns a single connection by either opening a new connection - * or returning an existing connection from the connection pool. Conn will - * block until either a connection is returned or ctx is canceled. - * Queries run on the same Conn will be run in the same database session. - * - * Every Conn must be returned to the database pool after use by - * calling [Conn.Close]. - */ - conn(ctx: context.Context): (Conn) - } - /** - * Tx is an in-progress database transaction. - * - * A transaction must end with a call to [Tx.Commit] or [Tx.Rollback]. - * - * After a call to [Tx.Commit] or [Tx.Rollback], all operations on the - * transaction fail with [ErrTxDone]. - * - * The statements prepared for a transaction by calling - * the transaction's [Tx.Prepare] or [Tx.Stmt] methods are closed - * by the call to [Tx.Commit] or [Tx.Rollback]. - */ - interface Tx { - } - interface Tx { - /** - * Commit commits the transaction. - */ - commit(): void - } - interface Tx { - /** - * Rollback aborts the transaction. - */ - rollback(): void - } - interface Tx { - /** - * PrepareContext creates a prepared statement for use within a transaction. - * - * The returned statement operates within the transaction and will be closed - * when the transaction has been committed or rolled back. - * - * To use an existing prepared statement on this transaction, see [Tx.Stmt]. - * - * The provided context will be used for the preparation of the context, not - * for the execution of the returned statement. The returned statement - * will run in the transaction context. - */ - prepareContext(ctx: context.Context, query: string): (Stmt) - } - interface Tx { - /** - * Prepare creates a prepared statement for use within a transaction. - * - * The returned statement operates within the transaction and will be closed - * when the transaction has been committed or rolled back. - * - * To use an existing prepared statement on this transaction, see [Tx.Stmt]. - * - * Prepare uses [context.Background] internally; to specify the context, use - * [Tx.PrepareContext]. - */ - prepare(query: string): (Stmt) - } - interface Tx { - /** - * StmtContext returns a transaction-specific prepared statement from - * an existing statement. - * - * Example: - * - * ``` - * updateMoney, err := db.Prepare("UPDATE balance SET money=money+? WHERE id=?") - * ... - * tx, err := db.Begin() - * ... - * res, err := tx.StmtContext(ctx, updateMoney).Exec(123.45, 98293203) - * ``` - * - * The provided context is used for the preparation of the statement, not for the - * execution of the statement. - * - * The returned statement operates within the transaction and will be closed - * when the transaction has been committed or rolled back. - */ - stmtContext(ctx: context.Context, stmt: Stmt): (Stmt) - } - interface Tx { - /** - * Stmt returns a transaction-specific prepared statement from - * an existing statement. - * - * Example: - * - * ``` - * updateMoney, err := db.Prepare("UPDATE balance SET money=money+? WHERE id=?") - * ... - * tx, err := db.Begin() - * ... - * res, err := tx.Stmt(updateMoney).Exec(123.45, 98293203) - * ``` - * - * The returned statement operates within the transaction and will be closed - * when the transaction has been committed or rolled back. - * - * Stmt uses [context.Background] internally; to specify the context, use - * [Tx.StmtContext]. - */ - stmt(stmt: Stmt): (Stmt) - } - interface Tx { - /** - * ExecContext executes a query that doesn't return rows. - * For example: an INSERT and UPDATE. - */ - execContext(ctx: context.Context, query: string, ...args: any[]): Result - } - interface Tx { - /** - * Exec executes a query that doesn't return rows. - * For example: an INSERT and UPDATE. - * - * Exec uses [context.Background] internally; to specify the context, use - * [Tx.ExecContext]. - */ - exec(query: string, ...args: any[]): Result - } - interface Tx { - /** - * QueryContext executes a query that returns rows, typically a SELECT. - */ - queryContext(ctx: context.Context, query: string, ...args: any[]): (Rows) - } - interface Tx { - /** - * Query executes a query that returns rows, typically a SELECT. - * - * Query uses [context.Background] internally; to specify the context, use - * [Tx.QueryContext]. - */ - query(query: string, ...args: any[]): (Rows) - } - interface Tx { - /** - * QueryRowContext executes a query that is expected to return at most one row. - * QueryRowContext always returns a non-nil value. Errors are deferred until - * [Row]'s Scan method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - */ - queryRowContext(ctx: context.Context, query: string, ...args: any[]): (Row) - } - interface Tx { - /** - * QueryRow executes a query that is expected to return at most one row. - * QueryRow always returns a non-nil value. Errors are deferred until - * [Row]'s Scan method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - * - * QueryRow uses [context.Background] internally; to specify the context, use - * [Tx.QueryRowContext]. - */ - queryRow(query: string, ...args: any[]): (Row) - } - /** - * Stmt is a prepared statement. - * A Stmt is safe for concurrent use by multiple goroutines. - * - * If a Stmt is prepared on a [Tx] or [Conn], it will be bound to a single - * underlying connection forever. If the [Tx] or [Conn] closes, the Stmt will - * become unusable and all operations will return an error. - * If a Stmt is prepared on a [DB], it will remain usable for the lifetime of the - * [DB]. When the Stmt needs to execute on a new underlying connection, it will - * prepare itself on the new connection automatically. - */ - interface Stmt { - } - interface Stmt { - /** - * ExecContext executes a prepared statement with the given arguments and - * returns a [Result] summarizing the effect of the statement. - */ - execContext(ctx: context.Context, ...args: any[]): Result - } - interface Stmt { - /** - * Exec executes a prepared statement with the given arguments and - * returns a [Result] summarizing the effect of the statement. - * - * Exec uses [context.Background] internally; to specify the context, use - * [Stmt.ExecContext]. - */ - exec(...args: any[]): Result - } - interface Stmt { - /** - * QueryContext executes a prepared query statement with the given arguments - * and returns the query results as a [*Rows]. - */ - queryContext(ctx: context.Context, ...args: any[]): (Rows) - } - interface Stmt { - /** - * Query executes a prepared query statement with the given arguments - * and returns the query results as a *Rows. - * - * Query uses [context.Background] internally; to specify the context, use - * [Stmt.QueryContext]. - */ - query(...args: any[]): (Rows) - } - interface Stmt { - /** - * QueryRowContext executes a prepared query statement with the given arguments. - * If an error occurs during the execution of the statement, that error will - * be returned by a call to Scan on the returned [*Row], which is always non-nil. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - */ - queryRowContext(ctx: context.Context, ...args: any[]): (Row) - } - interface Stmt { - /** - * QueryRow executes a prepared query statement with the given arguments. - * If an error occurs during the execution of the statement, that error will - * be returned by a call to Scan on the returned [*Row], which is always non-nil. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - * - * Example usage: - * - * ``` - * var name string - * err := nameByUseridStmt.QueryRow(id).Scan(&name) - * ``` - * - * QueryRow uses [context.Background] internally; to specify the context, use - * [Stmt.QueryRowContext]. - */ - queryRow(...args: any[]): (Row) - } - interface Stmt { - /** - * Close closes the statement. - */ - close(): void - } - /** - * Rows is the result of a query. Its cursor starts before the first row - * of the result set. Use [Rows.Next] to advance from row to row. - */ - interface Rows { - } - interface Rows { - /** - * Next prepares the next result row for reading with the [Rows.Scan] method. It - * returns true on success, or false if there is no next result row or an error - * happened while preparing it. [Rows.Err] should be consulted to distinguish between - * the two cases. - * - * Every call to [Rows.Scan], even the first one, must be preceded by a call to [Rows.Next]. - */ - next(): boolean - } - interface Rows { - /** - * NextResultSet prepares the next result set for reading. It reports whether - * there is further result sets, or false if there is no further result set - * or if there is an error advancing to it. The [Rows.Err] method should be consulted - * to distinguish between the two cases. - * - * After calling NextResultSet, the [Rows.Next] method should always be called before - * scanning. If there are further result sets they may not have rows in the result - * set. - */ - nextResultSet(): boolean - } - interface Rows { - /** - * Err returns the error, if any, that was encountered during iteration. - * Err may be called after an explicit or implicit [Rows.Close]. - */ - err(): void - } - interface Rows { - /** - * Columns returns the column names. - * Columns returns an error if the rows are closed. - */ - columns(): Array - } - interface Rows { - /** - * ColumnTypes returns column information such as column type, length, - * and nullable. Some information may not be available from some drivers. - */ - columnTypes(): Array<(ColumnType | undefined)> - } - interface Rows { - /** - * Scan copies the columns in the current row into the values pointed - * at by dest. The number of values in dest must be the same as the - * number of columns in [Rows]. - * - * Scan converts columns read from the database into the following - * common Go types and special types provided by the sql package: - * - * ``` - * *string - * *[]byte - * *int, *int8, *int16, *int32, *int64 - * *uint, *uint8, *uint16, *uint32, *uint64 - * *bool - * *float32, *float64 - * *interface{} - * *RawBytes - * *Rows (cursor value) - * any type implementing Scanner (see Scanner docs) - * ``` - * - * In the most simple case, if the type of the value from the source - * column is an integer, bool or string type T and dest is of type *T, - * Scan simply assigns the value through the pointer. - * - * Scan also converts between string and numeric types, as long as no - * information would be lost. While Scan stringifies all numbers - * scanned from numeric database columns into *string, scans into - * numeric types are checked for overflow. For example, a float64 with - * value 300 or a string with value "300" can scan into a uint16, but - * not into a uint8, though float64(255) or "255" can scan into a - * uint8. One exception is that scans of some float64 numbers to - * strings may lose information when stringifying. In general, scan - * floating point columns into *float64. - * - * If a dest argument has type *[]byte, Scan saves in that argument a - * copy of the corresponding data. The copy is owned by the caller and - * can be modified and held indefinitely. The copy can be avoided by - * using an argument of type [*RawBytes] instead; see the documentation - * for [RawBytes] for restrictions on its use. - * - * If an argument has type *interface{}, Scan copies the value - * provided by the underlying driver without conversion. When scanning - * from a source value of type []byte to *interface{}, a copy of the - * slice is made and the caller owns the result. - * - * Source values of type [time.Time] may be scanned into values of type - * *time.Time, *interface{}, *string, or *[]byte. When converting to - * the latter two, [time.RFC3339Nano] is used. - * - * Source values of type bool may be scanned into types *bool, - * *interface{}, *string, *[]byte, or [*RawBytes]. - * - * For scanning into *bool, the source may be true, false, 1, 0, or - * string inputs parseable by [strconv.ParseBool]. - * - * Scan can also convert a cursor returned from a query, such as - * "select cursor(select * from my_table) from dual", into a - * [*Rows] value that can itself be scanned from. The parent - * select query will close any cursor [*Rows] if the parent [*Rows] is closed. - * - * If any of the first arguments implementing [Scanner] returns an error, - * that error will be wrapped in the returned error. - */ - scan(...dest: any[]): void - } - interface Rows { - /** - * Close closes the [Rows], preventing further enumeration. If [Rows.Next] is called - * and returns false and there are no further result sets, - * the [Rows] are closed automatically and it will suffice to check the - * result of [Rows.Err]. Close is idempotent and does not affect the result of [Rows.Err]. - */ - close(): void - } - /** - * A Result summarizes an executed SQL command. - */ - interface Result { - [key:string]: any; - /** - * LastInsertId returns the integer generated by the database - * in response to a command. Typically this will be from an - * "auto increment" column when inserting a new row. Not all - * databases support this feature, and the syntax of such - * statements varies. - */ - lastInsertId(): number - /** - * RowsAffected returns the number of rows affected by an - * update, insert, or delete. Not every database or database - * driver may support this. - */ - rowsAffected(): number - } -} - -/** - * Package syntax parses regular expressions into parse trees and compiles - * parse trees into programs. Most clients of regular expressions will use the - * facilities of package [regexp] (such as [regexp.Compile] and [regexp.Match]) instead of this package. - * - * # Syntax - * - * The regular expression syntax understood by this package when parsing with the [Perl] flag is as follows. - * Parts of the syntax can be disabled by passing alternate flags to [Parse]. - * - * Single characters: - * - * ``` - * . any character, possibly including newline (flag s=true) - * [xyz] character class - * [^xyz] negated character class - * \d Perl character class - * \D negated Perl character class - * [[:alpha:]] ASCII character class - * [[:^alpha:]] negated ASCII character class - * \pN Unicode character class (one-letter name) - * \p{Greek} Unicode character class - * \PN negated Unicode character class (one-letter name) - * \P{Greek} negated Unicode character class - * ``` - * - * Composites: - * - * ``` - * xy x followed by y - * x|y x or y (prefer x) - * ``` - * - * Repetitions: - * - * ``` - * x* zero or more x, prefer more - * x+ one or more x, prefer more - * x? zero or one x, prefer one - * x{n,m} n or n+1 or ... or m x, prefer more - * x{n,} n or more x, prefer more - * x{n} exactly n x - * x*? zero or more x, prefer fewer - * x+? one or more x, prefer fewer - * x?? zero or one x, prefer zero - * x{n,m}? n or n+1 or ... or m x, prefer fewer - * x{n,}? n or more x, prefer fewer - * x{n}? exactly n x - * ``` - * - * Implementation restriction: The counting forms x{n,m}, x{n,}, and x{n} - * reject forms that create a minimum or maximum repetition count above 1000. - * Unlimited repetitions are not subject to this restriction. - * - * Grouping: - * - * ``` - * (re) numbered capturing group (submatch) - * (?Pre) named & numbered capturing group (submatch) - * (?re) named & numbered capturing group (submatch) - * (?:re) non-capturing group - * (?flags) set flags within current group; non-capturing - * (?flags:re) set flags during re; non-capturing - * - * Flag syntax is xyz (set) or -xyz (clear) or xy-z (set xy, clear z). The flags are: - * - * i case-insensitive (default false) - * m multi-line mode: ^ and $ match begin/end line in addition to begin/end text (default false) - * s let . match \n (default false) - * U ungreedy: swap meaning of x* and x*?, x+ and x+?, etc (default false) - * ``` - * - * Empty strings: - * - * ``` - * ^ at beginning of text or line (flag m=true) - * $ at end of text (like \z not \Z) or line (flag m=true) - * \A at beginning of text - * \b at ASCII word boundary (\w on one side and \W, \A, or \z on the other) - * \B not at ASCII word boundary - * \z at end of text - * ``` - * - * Escape sequences: - * - * ``` - * \a bell (== \007) - * \f form feed (== \014) - * \t horizontal tab (== \011) - * \n newline (== \012) - * \r carriage return (== \015) - * \v vertical tab character (== \013) - * \* literal *, for any punctuation character * - * \123 octal character code (up to three digits) - * \x7F hex character code (exactly two digits) - * \x{10FFFF} hex character code - * \Q...\E literal text ... even if ... has punctuation - * ``` - * - * Character class elements: - * - * ``` - * x single character - * A-Z character range (inclusive) - * \d Perl character class - * [:foo:] ASCII character class foo - * \p{Foo} Unicode character class Foo - * \pF Unicode character class F (one-letter name) - * ``` - * - * Named character classes as character class elements: - * - * ``` - * [\d] digits (== \d) - * [^\d] not digits (== \D) - * [\D] not digits (== \D) - * [^\D] not not digits (== \d) - * [[:name:]] named ASCII class inside character class (== [:name:]) - * [^[:name:]] named ASCII class inside negated character class (== [:^name:]) - * [\p{Name}] named Unicode property inside character class (== \p{Name}) - * [^\p{Name}] named Unicode property inside negated character class (== \P{Name}) - * ``` - * - * Perl character classes (all ASCII-only): - * - * ``` - * \d digits (== [0-9]) - * \D not digits (== [^0-9]) - * \s whitespace (== [\t\n\f\r ]) - * \S not whitespace (== [^\t\n\f\r ]) - * \w word characters (== [0-9A-Za-z_]) - * \W not word characters (== [^0-9A-Za-z_]) - * ``` - * - * ASCII character classes: - * - * ``` - * [[:alnum:]] alphanumeric (== [0-9A-Za-z]) - * [[:alpha:]] alphabetic (== [A-Za-z]) - * [[:ascii:]] ASCII (== [\x00-\x7F]) - * [[:blank:]] blank (== [\t ]) - * [[:cntrl:]] control (== [\x00-\x1F\x7F]) - * [[:digit:]] digits (== [0-9]) - * [[:graph:]] graphical (== [!-~] == [A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]) - * [[:lower:]] lower case (== [a-z]) - * [[:print:]] printable (== [ -~] == [ [:graph:]]) - * [[:punct:]] punctuation (== [!-/:-@[-`{-~]) - * [[:space:]] whitespace (== [\t\n\v\f\r ]) - * [[:upper:]] upper case (== [A-Z]) - * [[:word:]] word characters (== [0-9A-Za-z_]) - * [[:xdigit:]] hex digit (== [0-9A-Fa-f]) - * ``` - * - * Unicode character classes are those in [unicode.Categories] and [unicode.Scripts]. - */ -namespace syntax { - /** - * Flags control the behavior of the parser and record information about regexp context. - */ - interface Flags extends Number{} -} - -/** - * Package types implements some commonly used db serializable types - * like datetime, json, etc. - */ -namespace types { - /** - * DateTime represents a [time.Time] instance in UTC that is wrapped - * and serialized using the app default date layout. - */ - interface DateTime { - } - interface DateTime { - /** - * Time returns the internal [time.Time] instance. - */ - time(): time.Time - } - interface DateTime { - /** - * Add returns a new DateTime based on the current DateTime + the specified duration. - */ - add(duration: time.Duration): DateTime - } - interface DateTime { - /** - * Sub returns a [time.Duration] by subtracting the specified DateTime from the current one. - * - * If the result exceeds the maximum (or minimum) value that can be stored in a [time.Duration], - * the maximum (or minimum) duration will be returned. - */ - sub(u: DateTime): time.Duration - } - interface DateTime { - /** - * AddDate returns a new DateTime based on the current one + duration. - * - * It follows the same rules as [time.AddDate]. - */ - addDate(years: number, months: number, days: number): DateTime - } - interface DateTime { - /** - * After reports whether the current DateTime instance is after u. - */ - after(u: DateTime): boolean - } - interface DateTime { - /** - * Before reports whether the current DateTime instance is before u. - */ - before(u: DateTime): boolean - } - interface DateTime { - /** - * Compare compares the current DateTime instance with u. - * If the current instance is before u, it returns -1. - * If the current instance is after u, it returns +1. - * If they're the same, it returns 0. - */ - compare(u: DateTime): number - } - interface DateTime { - /** - * Equal reports whether the current DateTime and u represent the same time instant. - * Two DateTime can be equal even if they are in different locations. - * For example, 6:00 +0200 and 4:00 UTC are Equal. - */ - equal(u: DateTime): boolean - } - interface DateTime { - /** - * Unix returns the current DateTime as a Unix time, aka. - * the number of seconds elapsed since January 1, 1970 UTC. - */ - unix(): number - } - interface DateTime { - /** - * IsZero checks whether the current DateTime instance has zero time value. - */ - isZero(): boolean - } - interface DateTime { - /** - * String serializes the current DateTime instance into a formatted - * UTC date string. - * - * The zero value is serialized to an empty string. - */ - string(): string - } - interface DateTime { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array - } - interface DateTime { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - */ - unmarshalJSON(b: string|Array): void - } - interface DateTime { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - interface DateTime { - /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current DateTime instance. - */ - scan(value: any): void - } - /** - * GeoPoint defines a struct for storing geo coordinates as serialized json object - * (e.g. {lon:0,lat:0}). - * - * Note: using object notation and not a plain array to avoid the confusion - * as there doesn't seem to be a fixed standard for the coordinates order. - */ - interface GeoPoint { - lon: number - lat: number - } - interface GeoPoint { - /** - * String returns the string representation of the current GeoPoint instance. - */ - string(): string - } - interface GeoPoint { - /** - * AsMap implements [core.mapExtractor] and returns a value suitable - * to be used in an API rule expression. - */ - asMap(): _TygojaDict - } - interface GeoPoint { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - interface GeoPoint { - /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current GeoPoint instance. - * - * The value argument could be nil (no-op), another GeoPoint instance, - * map or serialized json object with lat-lon props. - */ - scan(value: any): void - } - /** - * JSONArray defines a slice that is safe for json and db read/write. - */ - interface JSONArray extends Array{} - /** - * JSONMap defines a map that is safe for json and db read/write. - */ - interface JSONMap extends _TygojaDict{} - /** - * JSONRaw defines a json value type that is safe for db read/write. - */ - interface JSONRaw extends Array{} - interface JSONRaw { - /** - * String returns the current JSONRaw instance as a json encoded string. - */ - string(): string - } - interface JSONRaw { - /** - * MarshalJSON implements the [json.Marshaler] interface. - */ - marshalJSON(): string|Array - } - interface JSONRaw { - /** - * UnmarshalJSON implements the [json.Unmarshaler] interface. - */ - unmarshalJSON(b: string|Array): void - } - interface JSONRaw { - /** - * Value implements the [driver.Valuer] interface. - */ - value(): any - } - interface JSONRaw { - /** - * Scan implements [sql.Scanner] interface to scan the provided value - * into the current JSONRaw instance. - */ - scan(value: any): void - } -} - -/** - * Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer - * object, creating another object (Reader or Writer) that also implements - * the interface but provides buffering and some help for textual I/O. - */ -namespace bufio { - /** - * ReadWriter stores pointers to a [Reader] and a [Writer]. - * It implements [io.ReadWriter]. - */ - type _spGRHvr = Reader&Writer - interface ReadWriter extends _spGRHvr { - } -} - -/** - * Package multipart implements MIME multipart parsing, as defined in RFC - * 2046. - * - * The implementation is sufficient for HTTP (RFC 2388) and the multipart - * bodies generated by popular browsers. - * - * # Limits - * - * To protect against malicious inputs, this package sets limits on the size - * of the MIME data it processes. - * - * [Reader.NextPart] and [Reader.NextRawPart] limit the number of headers in a - * part to 10000 and [Reader.ReadForm] limits the total number of headers in all - * FileHeaders to 10000. - * These limits may be adjusted with the GODEBUG=multipartmaxheaders= - * setting. - * - * Reader.ReadForm further limits the number of parts in a form to 1000. - * This limit may be adjusted with the GODEBUG=multipartmaxparts= - * setting. - */ -namespace multipart { - /** - * A FileHeader describes a file part of a multipart request. - */ - interface FileHeader { - filename: string - header: textproto.MIMEHeader - size: number - } - interface FileHeader { - /** - * Open opens and returns the [FileHeader]'s associated File. - */ - open(): File - } -} - -/** - * Package http provides HTTP client and server implementations. - * - * [Get], [Head], [Post], and [PostForm] make HTTP (or HTTPS) requests: - * - * ``` - * resp, err := http.Get("http://example.com/") - * ... - * resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) - * ... - * resp, err := http.PostForm("http://example.com/form", - * url.Values{"key": {"Value"}, "id": {"123"}}) - * ``` - * - * The caller must close the response body when finished with it: - * - * ``` - * resp, err := http.Get("http://example.com/") - * if err != nil { - * // handle error - * } - * defer resp.Body.Close() - * body, err := io.ReadAll(resp.Body) - * // ... - * ``` - * - * # Clients and Transports - * - * For control over HTTP client headers, redirect policy, and other - * settings, create a [Client]: - * - * ``` - * client := &http.Client{ - * CheckRedirect: redirectPolicyFunc, - * } - * - * resp, err := client.Get("http://example.com") - * // ... - * - * req, err := http.NewRequest("GET", "http://example.com", nil) - * // ... - * req.Header.Add("If-None-Match", `W/"wyzzy"`) - * resp, err := client.Do(req) - * // ... - * ``` - * - * For control over proxies, TLS configuration, keep-alives, - * compression, and other settings, create a [Transport]: - * - * ``` - * tr := &http.Transport{ - * MaxIdleConns: 10, - * IdleConnTimeout: 30 * time.Second, - * DisableCompression: true, - * } - * client := &http.Client{Transport: tr} - * resp, err := client.Get("https://example.com") - * ``` - * - * Clients and Transports are safe for concurrent use by multiple - * goroutines and for efficiency should only be created once and re-used. - * - * # Servers - * - * ListenAndServe starts an HTTP server with a given address and handler. - * The handler is usually nil, which means to use [DefaultServeMux]. - * [Handle] and [HandleFunc] add handlers to [DefaultServeMux]: - * - * ``` - * http.Handle("/foo", fooHandler) - * - * http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { - * fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) - * }) - * - * log.Fatal(http.ListenAndServe(":8080", nil)) - * ``` - * - * More control over the server's behavior is available by creating a - * custom Server: - * - * ``` - * s := &http.Server{ - * Addr: ":8080", - * Handler: myHandler, - * ReadTimeout: 10 * time.Second, - * WriteTimeout: 10 * time.Second, - * MaxHeaderBytes: 1 << 20, - * } - * log.Fatal(s.ListenAndServe()) - * ``` - * - * # HTTP/2 - * - * Starting with Go 1.6, the http package has transparent support for the - * HTTP/2 protocol when using HTTPS. Programs that must disable HTTP/2 - * can do so by setting [Transport.TLSNextProto] (for clients) or - * [Server.TLSNextProto] (for servers) to a non-nil, empty - * map. Alternatively, the following GODEBUG settings are - * currently supported: - * - * ``` - * GODEBUG=http2client=0 # disable HTTP/2 client support - * GODEBUG=http2server=0 # disable HTTP/2 server support - * GODEBUG=http2debug=1 # enable verbose HTTP/2 debug logs - * GODEBUG=http2debug=2 # ... even more verbose, with frame dumps - * ``` - * - * Please report any issues before disabling HTTP/2 support: https://golang.org/s/http2bug - * - * The http package's [Transport] and [Server] both automatically enable - * HTTP/2 support for simple configurations. To enable HTTP/2 for more - * complex configurations, to use lower-level HTTP/2 features, or to use - * a newer version of Go's http2 package, import "golang.org/x/net/http2" - * directly and use its ConfigureTransport and/or ConfigureServer - * functions. Manually configuring HTTP/2 via the golang.org/x/net/http2 - * package takes precedence over the net/http package's built-in HTTP/2 - * support. - */ -namespace http { - // @ts-ignore - import mathrand = rand - /** - * PushOptions describes options for [Pusher.Push]. - */ - interface PushOptions { - /** - * Method specifies the HTTP method for the promised request. - * If set, it must be "GET" or "HEAD". Empty means "GET". - */ - method: string - /** - * Header specifies additional promised request headers. This cannot - * include HTTP/2 pseudo header fields like ":path" and ":scheme", - * which will be added automatically. - */ - header: Header - } - // @ts-ignore - import urlpkg = url - /** - * A Request represents an HTTP request received by a server - * or to be sent by a client. - * - * The field semantics differ slightly between client and server - * usage. In addition to the notes on the fields below, see the - * documentation for [Request.Write] and [RoundTripper]. - */ - interface Request { - /** - * Method specifies the HTTP method (GET, POST, PUT, etc.). - * For client requests, an empty string means GET. - */ - method: string - /** - * URL specifies either the URI being requested (for server - * requests) or the URL to access (for client requests). - * - * For server requests, the URL is parsed from the URI - * supplied on the Request-Line as stored in RequestURI. For - * most requests, fields other than Path and RawQuery will be - * empty. (See RFC 7230, Section 5.3) - * - * For client requests, the URL's Host specifies the server to - * connect to, while the Request's Host field optionally - * specifies the Host header value to send in the HTTP - * request. - */ - url?: url.URL - /** - * The protocol version for incoming server requests. - * - * For client requests, these fields are ignored. The HTTP - * client code always uses either HTTP/1.1 or HTTP/2. - * See the docs on Transport for details. - */ - proto: string // "HTTP/1.0" - protoMajor: number // 1 - protoMinor: number // 0 - /** - * Header contains the request header fields either received - * by the server or to be sent by the client. - * - * If a server received a request with header lines, - * - * ``` - * Host: example.com - * accept-encoding: gzip, deflate - * Accept-Language: en-us - * fOO: Bar - * foo: two - * ``` - * - * then - * - * ``` - * Header = map[string][]string{ - * "Accept-Encoding": {"gzip, deflate"}, - * "Accept-Language": {"en-us"}, - * "Foo": {"Bar", "two"}, - * } - * ``` - * - * For incoming requests, the Host header is promoted to the - * Request.Host field and removed from the Header map. - * - * HTTP defines that header names are case-insensitive. The - * request parser implements this by using CanonicalHeaderKey, - * making the first character and any characters following a - * hyphen uppercase and the rest lowercase. - * - * For client requests, certain headers such as Content-Length - * and Connection are automatically written when needed and - * values in Header may be ignored. See the documentation - * for the Request.Write method. - */ - header: Header - /** - * Body is the request's body. - * - * For client requests, a nil body means the request has no - * body, such as a GET request. The HTTP Client's Transport - * is responsible for calling the Close method. - * - * For server requests, the Request Body is always non-nil - * but will return EOF immediately when no body is present. - * The Server will close the request body. The ServeHTTP - * Handler does not need to. - * - * Body must allow Read to be called concurrently with Close. - * In particular, calling Close should unblock a Read waiting - * for input. - */ - body: io.ReadCloser - /** - * GetBody defines an optional func to return a new copy of - * Body. It is used for client requests when a redirect requires - * reading the body more than once. Use of GetBody still - * requires setting Body. - * - * For server requests, it is unused. - */ - getBody: () => io.ReadCloser - /** - * ContentLength records the length of the associated content. - * The value -1 indicates that the length is unknown. - * Values >= 0 indicate that the given number of bytes may - * be read from Body. - * - * For client requests, a value of 0 with a non-nil Body is - * also treated as unknown. - */ - contentLength: number - /** - * TransferEncoding lists the transfer encodings from outermost to - * innermost. An empty list denotes the "identity" encoding. - * TransferEncoding can usually be ignored; chunked encoding is - * automatically added and removed as necessary when sending and - * receiving requests. - */ - transferEncoding: Array - /** - * Close indicates whether to close the connection after - * replying to this request (for servers) or after sending this - * request and reading its response (for clients). - * - * For server requests, the HTTP server handles this automatically - * and this field is not needed by Handlers. - * - * For client requests, setting this field prevents re-use of - * TCP connections between requests to the same hosts, as if - * Transport.DisableKeepAlives were set. - */ - close: boolean - /** - * For server requests, Host specifies the host on which the - * URL is sought. For HTTP/1 (per RFC 7230, section 5.4), this - * is either the value of the "Host" header or the host name - * given in the URL itself. For HTTP/2, it is the value of the - * ":authority" pseudo-header field. - * It may be of the form "host:port". For international domain - * names, Host may be in Punycode or Unicode form. Use - * golang.org/x/net/idna to convert it to either format if - * needed. - * To prevent DNS rebinding attacks, server Handlers should - * validate that the Host header has a value for which the - * Handler considers itself authoritative. The included - * ServeMux supports patterns registered to particular host - * names and thus protects its registered Handlers. - * - * For client requests, Host optionally overrides the Host - * header to send. If empty, the Request.Write method uses - * the value of URL.Host. Host may contain an international - * domain name. - */ - host: string - /** - * Form contains the parsed form data, including both the URL - * field's query parameters and the PATCH, POST, or PUT form data. - * This field is only available after ParseForm is called. - * The HTTP client ignores Form and uses Body instead. - */ - form: url.Values - /** - * PostForm contains the parsed form data from PATCH, POST - * or PUT body parameters. - * - * This field is only available after ParseForm is called. - * The HTTP client ignores PostForm and uses Body instead. - */ - postForm: url.Values - /** - * MultipartForm is the parsed multipart form, including file uploads. - * This field is only available after ParseMultipartForm is called. - * The HTTP client ignores MultipartForm and uses Body instead. - */ - multipartForm?: multipart.Form - /** - * Trailer specifies additional headers that are sent after the request - * body. - * - * For server requests, the Trailer map initially contains only the - * trailer keys, with nil values. (The client declares which trailers it - * will later send.) While the handler is reading from Body, it must - * not reference Trailer. After reading from Body returns EOF, Trailer - * can be read again and will contain non-nil values, if they were sent - * by the client. - * - * For client requests, Trailer must be initialized to a map containing - * the trailer keys to later send. The values may be nil or their final - * values. The ContentLength must be 0 or -1, to send a chunked request. - * After the HTTP request is sent the map values can be updated while - * the request body is read. Once the body returns EOF, the caller must - * not mutate Trailer. - * - * Few HTTP clients, servers, or proxies support HTTP trailers. - */ - trailer: Header - /** - * RemoteAddr allows HTTP servers and other software to record - * the network address that sent the request, usually for - * logging. This field is not filled in by ReadRequest and - * has no defined format. The HTTP server in this package - * sets RemoteAddr to an "IP:port" address before invoking a - * handler. - * This field is ignored by the HTTP client. - */ - remoteAddr: string - /** - * RequestURI is the unmodified request-target of the - * Request-Line (RFC 7230, Section 3.1.1) as sent by the client - * to a server. Usually the URL field should be used instead. - * It is an error to set this field in an HTTP client request. - */ - requestURI: string - /** - * TLS allows HTTP servers and other software to record - * information about the TLS connection on which the request - * was received. This field is not filled in by ReadRequest. - * The HTTP server in this package sets the field for - * TLS-enabled connections before invoking a handler; - * otherwise it leaves the field nil. - * This field is ignored by the HTTP client. - */ - tls?: any - /** - * Cancel is an optional channel whose closure indicates that the client - * request should be regarded as canceled. Not all implementations of - * RoundTripper may support Cancel. - * - * For server requests, this field is not applicable. - * - * Deprecated: Set the Request's context with NewRequestWithContext - * instead. If a Request's Cancel field and context are both - * set, it is undefined whether Cancel is respected. - */ - cancel: undefined - /** - * Response is the redirect response which caused this request - * to be created. This field is only populated during client - * redirects. - */ - response?: Response - /** - * Pattern is the [ServeMux] pattern that matched the request. - * It is empty if the request was not matched against a pattern. - */ - pattern: string - } - interface Request { - /** - * Context returns the request's context. To change the context, use - * [Request.Clone] or [Request.WithContext]. - * - * The returned context is always non-nil; it defaults to the - * background context. - * - * For outgoing client requests, the context controls cancellation. - * - * For incoming server requests, the context is canceled when the - * client's connection closes, the request is canceled (with HTTP/2), - * or when the ServeHTTP method returns. - */ - context(): context.Context - } - interface Request { - /** - * WithContext returns a shallow copy of r with its context changed - * to ctx. The provided ctx must be non-nil. - * - * For outgoing client request, the context controls the entire - * lifetime of a request and its response: obtaining a connection, - * sending the request, and reading the response headers and body. - * - * To create a new request with a context, use [NewRequestWithContext]. - * To make a deep copy of a request with a new context, use [Request.Clone]. - */ - withContext(ctx: context.Context): (Request) - } - interface Request { - /** - * Clone returns a deep copy of r with its context changed to ctx. - * The provided ctx must be non-nil. - * - * Clone only makes a shallow copy of the Body field. - * - * For an outgoing client request, the context controls the entire - * lifetime of a request and its response: obtaining a connection, - * sending the request, and reading the response headers and body. - */ - clone(ctx: context.Context): (Request) - } - interface Request { - /** - * ProtoAtLeast reports whether the HTTP protocol used - * in the request is at least major.minor. - */ - protoAtLeast(major: number, minor: number): boolean - } - interface Request { - /** - * UserAgent returns the client's User-Agent, if sent in the request. - */ - userAgent(): string - } - interface Request { - /** - * Cookies parses and returns the HTTP cookies sent with the request. - */ - cookies(): Array<(Cookie | undefined)> - } - interface Request { - /** - * CookiesNamed parses and returns the named HTTP cookies sent with the request - * or an empty slice if none matched. - */ - cookiesNamed(name: string): Array<(Cookie | undefined)> - } - interface Request { - /** - * Cookie returns the named cookie provided in the request or - * [ErrNoCookie] if not found. - * If multiple cookies match the given name, only one cookie will - * be returned. - */ - cookie(name: string): (Cookie) - } - interface Request { - /** - * AddCookie adds a cookie to the request. Per RFC 6265 section 5.4, - * AddCookie does not attach more than one [Cookie] header field. That - * means all cookies, if any, are written into the same line, - * separated by semicolon. - * AddCookie only sanitizes c's name and value, and does not sanitize - * a Cookie header already present in the request. - */ - addCookie(c: Cookie): void - } - interface Request { - /** - * Referer returns the referring URL, if sent in the request. - * - * Referer is misspelled as in the request itself, a mistake from the - * earliest days of HTTP. This value can also be fetched from the - * [Header] map as Header["Referer"]; the benefit of making it available - * as a method is that the compiler can diagnose programs that use the - * alternate (correct English) spelling req.Referrer() but cannot - * diagnose programs that use Header["Referrer"]. - */ - referer(): string - } - interface Request { - /** - * MultipartReader returns a MIME multipart reader if this is a - * multipart/form-data or a multipart/mixed POST request, else returns nil and an error. - * Use this function instead of [Request.ParseMultipartForm] to - * process the request body as a stream. - */ - multipartReader(): (multipart.Reader) - } - interface Request { - /** - * Write writes an HTTP/1.1 request, which is the header and body, in wire format. - * This method consults the following fields of the request: - * - * ``` - * Host - * URL - * Method (defaults to "GET") - * Header - * ContentLength - * TransferEncoding - * Body - * ``` - * - * If Body is present, Content-Length is <= 0 and [Request.TransferEncoding] - * hasn't been set to "identity", Write adds "Transfer-Encoding: - * chunked" to the header. Body is closed after it is sent. - */ - write(w: io.Writer): void - } - interface Request { - /** - * WriteProxy is like [Request.Write] but writes the request in the form - * expected by an HTTP proxy. In particular, [Request.WriteProxy] writes the - * initial Request-URI line of the request with an absolute URI, per - * section 5.3 of RFC 7230, including the scheme and host. - * In either case, WriteProxy also writes a Host header, using - * either r.Host or r.URL.Host. - */ - writeProxy(w: io.Writer): void - } - interface Request { - /** - * BasicAuth returns the username and password provided in the request's - * Authorization header, if the request uses HTTP Basic Authentication. - * See RFC 2617, Section 2. - */ - basicAuth(): [string, string, boolean] - } - interface Request { - /** - * SetBasicAuth sets the request's Authorization header to use HTTP - * Basic Authentication with the provided username and password. - * - * With HTTP Basic Authentication the provided username and password - * are not encrypted. It should generally only be used in an HTTPS - * request. - * - * The username may not contain a colon. Some protocols may impose - * additional requirements on pre-escaping the username and - * password. For instance, when used with OAuth2, both arguments must - * be URL encoded first with [url.QueryEscape]. - */ - setBasicAuth(username: string, password: string): void - } - interface Request { - /** - * ParseForm populates r.Form and r.PostForm. - * - * For all requests, ParseForm parses the raw query from the URL and updates - * r.Form. - * - * For POST, PUT, and PATCH requests, it also reads the request body, parses it - * as a form and puts the results into both r.PostForm and r.Form. Request body - * parameters take precedence over URL query string values in r.Form. - * - * If the request Body's size has not already been limited by [MaxBytesReader], - * the size is capped at 10MB. - * - * For other HTTP methods, or when the Content-Type is not - * application/x-www-form-urlencoded, the request Body is not read, and - * r.PostForm is initialized to a non-nil, empty value. - * - * [Request.ParseMultipartForm] calls ParseForm automatically. - * ParseForm is idempotent. - */ - parseForm(): void - } - interface Request { - /** - * ParseMultipartForm parses a request body as multipart/form-data. - * The whole request body is parsed and up to a total of maxMemory bytes of - * its file parts are stored in memory, with the remainder stored on - * disk in temporary files. - * ParseMultipartForm calls [Request.ParseForm] if necessary. - * If ParseForm returns an error, ParseMultipartForm returns it but also - * continues parsing the request body. - * After one call to ParseMultipartForm, subsequent calls have no effect. - */ - parseMultipartForm(maxMemory: number): void - } - interface Request { - /** - * FormValue returns the first value for the named component of the query. - * The precedence order: - * 1. application/x-www-form-urlencoded form body (POST, PUT, PATCH only) - * 2. query parameters (always) - * 3. multipart/form-data form body (always) - * - * FormValue calls [Request.ParseMultipartForm] and [Request.ParseForm] - * if necessary and ignores any errors returned by these functions. - * If key is not present, FormValue returns the empty string. - * To access multiple values of the same key, call ParseForm and - * then inspect [Request.Form] directly. - */ - formValue(key: string): string - } - interface Request { - /** - * PostFormValue returns the first value for the named component of the POST, - * PUT, or PATCH request body. URL query parameters are ignored. - * PostFormValue calls [Request.ParseMultipartForm] and [Request.ParseForm] if necessary and ignores - * any errors returned by these functions. - * If key is not present, PostFormValue returns the empty string. - */ - postFormValue(key: string): string - } - interface Request { - /** - * FormFile returns the first file for the provided form key. - * FormFile calls [Request.ParseMultipartForm] and [Request.ParseForm] if necessary. - */ - formFile(key: string): [multipart.File, (multipart.FileHeader)] - } - interface Request { - /** - * PathValue returns the value for the named path wildcard in the [ServeMux] pattern - * that matched the request. - * It returns the empty string if the request was not matched against a pattern - * or there is no such wildcard in the pattern. - */ - pathValue(name: string): string - } - interface Request { - /** - * SetPathValue sets name to value, so that subsequent calls to r.PathValue(name) - * return value. - */ - setPathValue(name: string, value: string): void - } - /** - * A Handler responds to an HTTP request. - * - * [Handler.ServeHTTP] should write reply headers and data to the [ResponseWriter] - * and then return. Returning signals that the request is finished; it - * is not valid to use the [ResponseWriter] or read from the - * [Request.Body] after or concurrently with the completion of the - * ServeHTTP call. - * - * Depending on the HTTP client software, HTTP protocol version, and - * any intermediaries between the client and the Go server, it may not - * be possible to read from the [Request.Body] after writing to the - * [ResponseWriter]. Cautious handlers should read the [Request.Body] - * first, and then reply. - * - * Except for reading the body, handlers should not modify the - * provided Request. - * - * If ServeHTTP panics, the server (the caller of ServeHTTP) assumes - * that the effect of the panic was isolated to the active request. - * It recovers the panic, logs a stack trace to the server error log, - * and either closes the network connection or sends an HTTP/2 - * RST_STREAM, depending on the HTTP protocol. To abort a handler so - * the client sees an interrupted response but the server doesn't log - * an error, panic with the value [ErrAbortHandler]. - */ - interface Handler { - [key:string]: any; - serveHTTP(_arg0: ResponseWriter, _arg1: Request): void - } - /** - * A ResponseWriter interface is used by an HTTP handler to - * construct an HTTP response. - * - * A ResponseWriter may not be used after [Handler.ServeHTTP] has returned. - */ - interface ResponseWriter { - [key:string]: any; - /** - * Header returns the header map that will be sent by - * [ResponseWriter.WriteHeader]. The [Header] map also is the mechanism with which - * [Handler] implementations can set HTTP trailers. - * - * Changing the header map after a call to [ResponseWriter.WriteHeader] (or - * [ResponseWriter.Write]) has no effect unless the HTTP status code was of the - * 1xx class or the modified headers are trailers. - * - * There are two ways to set Trailers. The preferred way is to - * predeclare in the headers which trailers you will later - * send by setting the "Trailer" header to the names of the - * trailer keys which will come later. In this case, those - * keys of the Header map are treated as if they were - * trailers. See the example. The second way, for trailer - * keys not known to the [Handler] until after the first [ResponseWriter.Write], - * is to prefix the [Header] map keys with the [TrailerPrefix] - * constant value. - * - * To suppress automatic response headers (such as "Date"), set - * their value to nil. - */ - header(): Header - /** - * Write writes the data to the connection as part of an HTTP reply. - * - * If [ResponseWriter.WriteHeader] has not yet been called, Write calls - * WriteHeader(http.StatusOK) before writing the data. If the Header - * does not contain a Content-Type line, Write adds a Content-Type set - * to the result of passing the initial 512 bytes of written data to - * [DetectContentType]. Additionally, if the total size of all written - * data is under a few KB and there are no Flush calls, the - * Content-Length header is added automatically. - * - * Depending on the HTTP protocol version and the client, calling - * Write or WriteHeader may prevent future reads on the - * Request.Body. For HTTP/1.x requests, handlers should read any - * needed request body data before writing the response. Once the - * headers have been flushed (due to either an explicit Flusher.Flush - * call or writing enough data to trigger a flush), the request body - * may be unavailable. For HTTP/2 requests, the Go HTTP server permits - * handlers to continue to read the request body while concurrently - * writing the response. However, such behavior may not be supported - * by all HTTP/2 clients. Handlers should read before writing if - * possible to maximize compatibility. - */ - write(_arg0: string|Array): number - /** - * WriteHeader sends an HTTP response header with the provided - * status code. - * - * If WriteHeader is not called explicitly, the first call to Write - * will trigger an implicit WriteHeader(http.StatusOK). - * Thus explicit calls to WriteHeader are mainly used to - * send error codes or 1xx informational responses. - * - * The provided code must be a valid HTTP 1xx-5xx status code. - * Any number of 1xx headers may be written, followed by at most - * one 2xx-5xx header. 1xx headers are sent immediately, but 2xx-5xx - * headers may be buffered. Use the Flusher interface to send - * buffered data. The header map is cleared when 2xx-5xx headers are - * sent, but not with 1xx headers. - * - * The server will automatically send a 100 (Continue) header - * on the first read from the request body if the request has - * an "Expect: 100-continue" header. - */ - writeHeader(statusCode: number): void - } - /** - * A Server defines parameters for running an HTTP server. - * The zero value for Server is a valid configuration. - */ - interface Server { - /** - * Addr optionally specifies the TCP address for the server to listen on, - * in the form "host:port". If empty, ":http" (port 80) is used. - * The service names are defined in RFC 6335 and assigned by IANA. - * See net.Dial for details of the address format. - */ - addr: string - handler: Handler // handler to invoke, http.DefaultServeMux if nil - /** - * DisableGeneralOptionsHandler, if true, passes "OPTIONS *" requests to the Handler, - * otherwise responds with 200 OK and Content-Length: 0. - */ - disableGeneralOptionsHandler: boolean - /** - * TLSConfig optionally provides a TLS configuration for use - * by ServeTLS and ListenAndServeTLS. Note that this value is - * cloned by ServeTLS and ListenAndServeTLS, so it's not - * possible to modify the configuration with methods like - * tls.Config.SetSessionTicketKeys. To use - * SetSessionTicketKeys, use Server.Serve with a TLS Listener - * instead. - */ - tlsConfig?: any - /** - * ReadTimeout is the maximum duration for reading the entire - * request, including the body. A zero or negative value means - * there will be no timeout. - * - * Because ReadTimeout does not let Handlers make per-request - * decisions on each request body's acceptable deadline or - * upload rate, most users will prefer to use - * ReadHeaderTimeout. It is valid to use them both. - */ - readTimeout: time.Duration - /** - * ReadHeaderTimeout is the amount of time allowed to read - * request headers. The connection's read deadline is reset - * after reading the headers and the Handler can decide what - * is considered too slow for the body. If zero, the value of - * ReadTimeout is used. If negative, or if zero and ReadTimeout - * is zero or negative, there is no timeout. - */ - readHeaderTimeout: time.Duration - /** - * WriteTimeout is the maximum duration before timing out - * writes of the response. It is reset whenever a new - * request's header is read. Like ReadTimeout, it does not - * let Handlers make decisions on a per-request basis. - * A zero or negative value means there will be no timeout. - */ - writeTimeout: time.Duration - /** - * IdleTimeout is the maximum amount of time to wait for the - * next request when keep-alives are enabled. If zero, the value - * of ReadTimeout is used. If negative, or if zero and ReadTimeout - * is zero or negative, there is no timeout. - */ - idleTimeout: time.Duration - /** - * MaxHeaderBytes controls the maximum number of bytes the - * server will read parsing the request header's keys and - * values, including the request line. It does not limit the - * size of the request body. - * If zero, DefaultMaxHeaderBytes is used. - */ - maxHeaderBytes: number - /** - * TLSNextProto optionally specifies a function to take over - * ownership of the provided TLS connection when an ALPN - * protocol upgrade has occurred. The map key is the protocol - * name negotiated. The Handler argument should be used to - * handle HTTP requests and will initialize the Request's TLS - * and RemoteAddr if not already set. The connection is - * automatically closed when the function returns. - * If TLSNextProto is not nil, HTTP/2 support is not enabled - * automatically. - */ - tlsNextProto: _TygojaDict - /** - * ConnState specifies an optional callback function that is - * called when a client connection changes state. See the - * ConnState type and associated constants for details. - */ - connState: (_arg0: net.Conn, _arg1: ConnState) => void - /** - * ErrorLog specifies an optional logger for errors accepting - * connections, unexpected behavior from handlers, and - * underlying FileSystem errors. - * If nil, logging is done via the log package's standard logger. - */ - errorLog?: any - /** - * BaseContext optionally specifies a function that returns - * the base context for incoming requests on this server. - * The provided Listener is the specific Listener that's - * about to start accepting requests. - * If BaseContext is nil, the default is context.Background(). - * If non-nil, it must return a non-nil context. - */ - baseContext: (_arg0: net.Listener) => context.Context - /** - * ConnContext optionally specifies a function that modifies - * the context used for a new connection c. The provided ctx - * is derived from the base context and has a ServerContextKey - * value. - */ - connContext: (ctx: context.Context, c: net.Conn) => context.Context - } - interface Server { - /** - * Close immediately closes all active net.Listeners and any - * connections in state [StateNew], [StateActive], or [StateIdle]. For a - * graceful shutdown, use [Server.Shutdown]. - * - * Close does not attempt to close (and does not even know about) - * any hijacked connections, such as WebSockets. - * - * Close returns any error returned from closing the [Server]'s - * underlying Listener(s). - */ - close(): void - } - interface Server { - /** - * Shutdown gracefully shuts down the server without interrupting any - * active connections. Shutdown works by first closing all open - * listeners, then closing all idle connections, and then waiting - * indefinitely for connections to return to idle and then shut down. - * If the provided context expires before the shutdown is complete, - * Shutdown returns the context's error, otherwise it returns any - * error returned from closing the [Server]'s underlying Listener(s). - * - * When Shutdown is called, [Serve], [ListenAndServe], and - * [ListenAndServeTLS] immediately return [ErrServerClosed]. Make sure the - * program doesn't exit and waits instead for Shutdown to return. - * - * Shutdown does not attempt to close nor wait for hijacked - * connections such as WebSockets. The caller of Shutdown should - * separately notify such long-lived connections of shutdown and wait - * for them to close, if desired. See [Server.RegisterOnShutdown] for a way to - * register shutdown notification functions. - * - * Once Shutdown has been called on a server, it may not be reused; - * future calls to methods such as Serve will return ErrServerClosed. - */ - shutdown(ctx: context.Context): void - } - interface Server { - /** - * RegisterOnShutdown registers a function to call on [Server.Shutdown]. - * This can be used to gracefully shutdown connections that have - * undergone ALPN protocol upgrade or that have been hijacked. - * This function should start protocol-specific graceful shutdown, - * but should not wait for shutdown to complete. - */ - registerOnShutdown(f: () => void): void - } - interface Server { - /** - * ListenAndServe listens on the TCP network address srv.Addr and then - * calls [Serve] to handle requests on incoming connections. - * Accepted connections are configured to enable TCP keep-alives. - * - * If srv.Addr is blank, ":http" is used. - * - * ListenAndServe always returns a non-nil error. After [Server.Shutdown] or [Server.Close], - * the returned error is [ErrServerClosed]. - */ - listenAndServe(): void - } - interface Server { - /** - * Serve accepts incoming connections on the Listener l, creating a - * new service goroutine for each. The service goroutines read requests and - * then call srv.Handler to reply to them. - * - * HTTP/2 support is only enabled if the Listener returns [*tls.Conn] - * connections and they were configured with "h2" in the TLS - * Config.NextProtos. - * - * Serve always returns a non-nil error and closes l. - * After [Server.Shutdown] or [Server.Close], the returned error is [ErrServerClosed]. - */ - serve(l: net.Listener): void - } - interface Server { - /** - * ServeTLS accepts incoming connections on the Listener l, creating a - * new service goroutine for each. The service goroutines perform TLS - * setup and then read requests, calling srv.Handler to reply to them. - * - * Files containing a certificate and matching private key for the - * server must be provided if neither the [Server]'s - * TLSConfig.Certificates, TLSConfig.GetCertificate nor - * config.GetConfigForClient are populated. - * If the certificate is signed by a certificate authority, the - * certFile should be the concatenation of the server's certificate, - * any intermediates, and the CA's certificate. - * - * ServeTLS always returns a non-nil error. After [Server.Shutdown] or [Server.Close], the - * returned error is [ErrServerClosed]. - */ - serveTLS(l: net.Listener, certFile: string, keyFile: string): void - } - interface Server { - /** - * SetKeepAlivesEnabled controls whether HTTP keep-alives are enabled. - * By default, keep-alives are always enabled. Only very - * resource-constrained environments or servers in the process of - * shutting down should disable them. - */ - setKeepAlivesEnabled(v: boolean): void - } - interface Server { - /** - * ListenAndServeTLS listens on the TCP network address srv.Addr and - * then calls [ServeTLS] to handle requests on incoming TLS connections. - * Accepted connections are configured to enable TCP keep-alives. - * - * Filenames containing a certificate and matching private key for the - * server must be provided if neither the [Server]'s TLSConfig.Certificates - * nor TLSConfig.GetCertificate are populated. If the certificate is - * signed by a certificate authority, the certFile should be the - * concatenation of the server's certificate, any intermediates, and - * the CA's certificate. - * - * If srv.Addr is blank, ":https" is used. - * - * ListenAndServeTLS always returns a non-nil error. After [Server.Shutdown] or - * [Server.Close], the returned error is [ErrServerClosed]. - */ - listenAndServeTLS(certFile: string, keyFile: string): void - } -} - -namespace store { - /** - * Store defines a concurrent safe in memory key-value data store. - */ - interface Store { - } - interface Store { - /** - * Reset clears the store and replaces the store data with a - * shallow copy of the provided newData. - */ - reset(newData: _TygojaDict): void - } - interface Store { - /** - * Length returns the current number of elements in the store. - */ - length(): number - } - interface Store { - /** - * RemoveAll removes all the existing store entries. - */ - removeAll(): void - } - interface Store { - /** - * Remove removes a single entry from the store. - * - * Remove does nothing if key doesn't exist in the store. - */ - remove(key: K): void - } - interface Store { - /** - * Has checks if element with the specified key exist or not. - */ - has(key: K): boolean - } - interface Store { - /** - * Get returns a single element value from the store. - * - * If key is not set, the zero T value is returned. - */ - get(key: K): T - } - interface Store { - /** - * GetOk is similar to Get but returns also a boolean indicating whether the key exists or not. - */ - getOk(key: K): [T, boolean] - } - interface Store { - /** - * GetAll returns a shallow copy of the current store data. - */ - getAll(): _TygojaDict - } - interface Store { - /** - * Values returns a slice with all of the current store values. - */ - values(): Array - } - interface Store { - /** - * Set sets (or overwrite if already exists) a new value for key. - */ - set(key: K, value: T): void - } - interface Store { - /** - * SetFunc sets (or overwrite if already exists) a new value resolved - * from the function callback for the provided key. - * - * The function callback receives as argument the old store element value (if exists). - * If there is no old store element, the argument will be the T zero value. - * - * Example: - * - * ``` - * s := store.New[string, int](nil) - * s.SetFunc("count", func(old int) int { - * return old + 1 - * }) - * ``` - */ - setFunc(key: K, fn: (old: T) => T): void - } - interface Store { - /** - * GetOrSet retrieves a single existing value for the provided key - * or stores a new one if it doesn't exist. - */ - getOrSet(key: K, setFunc: () => T): T - } - interface Store { - /** - * SetIfLessThanLimit sets (or overwrite if already exist) a new value for key. - * - * This method is similar to Set() but **it will skip adding new elements** - * to the store if the store length has reached the specified limit. - * false is returned if maxAllowedElements limit is reached. - */ - setIfLessThanLimit(key: K, value: T, maxAllowedElements: number): boolean - } - interface Store { - /** - * UnmarshalJSON implements [json.Unmarshaler] and imports the - * provided JSON data into the store. - * - * The store entries that match with the ones from the data will be overwritten with the new value. - */ - unmarshalJSON(data: string|Array): void - } - interface Store { - /** - * MarshalJSON implements [json.Marshaler] and export the current - * store data into valid JSON. - */ - marshalJSON(): string|Array - } -} - -namespace exec { - /** - * Cmd represents an external command being prepared or run. - * - * A Cmd cannot be reused after calling its [Cmd.Run], [Cmd.Output] or [Cmd.CombinedOutput] - * methods. - */ - interface Cmd { - /** - * Path is the path of the command to run. - * - * This is the only field that must be set to a non-zero - * value. If Path is relative, it is evaluated relative - * to Dir. - */ - path: string - /** - * Args holds command line arguments, including the command as Args[0]. - * If the Args field is empty or nil, Run uses {Path}. - * - * In typical use, both Path and Args are set by calling Command. - */ - args: Array - /** - * Env specifies the environment of the process. - * Each entry is of the form "key=value". - * If Env is nil, the new process uses the current process's - * environment. - * If Env contains duplicate environment keys, only the last - * value in the slice for each duplicate key is used. - * As a special case on Windows, SYSTEMROOT is always added if - * missing and not explicitly set to the empty string. - */ - env: Array - /** - * Dir specifies the working directory of the command. - * If Dir is the empty string, Run runs the command in the - * calling process's current directory. - */ - dir: string - /** - * Stdin specifies the process's standard input. - * - * If Stdin is nil, the process reads from the null device (os.DevNull). - * - * If Stdin is an *os.File, the process's standard input is connected - * directly to that file. - * - * Otherwise, during the execution of the command a separate - * goroutine reads from Stdin and delivers that data to the command - * over a pipe. In this case, Wait does not complete until the goroutine - * stops copying, either because it has reached the end of Stdin - * (EOF or a read error), or because writing to the pipe returned an error, - * or because a nonzero WaitDelay was set and expired. - */ - stdin: io.Reader - /** - * Stdout and Stderr specify the process's standard output and error. - * - * If either is nil, Run connects the corresponding file descriptor - * to the null device (os.DevNull). - * - * If either is an *os.File, the corresponding output from the process - * is connected directly to that file. - * - * Otherwise, during the execution of the command a separate goroutine - * reads from the process over a pipe and delivers that data to the - * corresponding Writer. In this case, Wait does not complete until the - * goroutine reaches EOF or encounters an error or a nonzero WaitDelay - * expires. - * - * If Stdout and Stderr are the same writer, and have a type that can - * be compared with ==, at most one goroutine at a time will call Write. - */ - stdout: io.Writer - stderr: io.Writer - /** - * ExtraFiles specifies additional open files to be inherited by the - * new process. It does not include standard input, standard output, or - * standard error. If non-nil, entry i becomes file descriptor 3+i. - * - * ExtraFiles is not supported on Windows. - */ - extraFiles: Array<(os.File | undefined)> - /** - * SysProcAttr holds optional, operating system-specific attributes. - * Run passes it to os.StartProcess as the os.ProcAttr's Sys field. - */ - sysProcAttr?: syscall.SysProcAttr - /** - * Process is the underlying process, once started. - */ - process?: os.Process - /** - * ProcessState contains information about an exited process. - * If the process was started successfully, Wait or Run will - * populate its ProcessState when the command completes. - */ - processState?: os.ProcessState - err: Error // LookPath error, if any. - /** - * If Cancel is non-nil, the command must have been created with - * CommandContext and Cancel will be called when the command's - * Context is done. By default, CommandContext sets Cancel to - * call the Kill method on the command's Process. - * - * Typically a custom Cancel will send a signal to the command's - * Process, but it may instead take other actions to initiate cancellation, - * such as closing a stdin or stdout pipe or sending a shutdown request on a - * network socket. - * - * If the command exits with a success status after Cancel is - * called, and Cancel does not return an error equivalent to - * os.ErrProcessDone, then Wait and similar methods will return a non-nil - * error: either an error wrapping the one returned by Cancel, - * or the error from the Context. - * (If the command exits with a non-success status, or Cancel - * returns an error that wraps os.ErrProcessDone, Wait and similar methods - * continue to return the command's usual exit status.) - * - * If Cancel is set to nil, nothing will happen immediately when the command's - * Context is done, but a nonzero WaitDelay will still take effect. That may - * be useful, for example, to work around deadlocks in commands that do not - * support shutdown signals but are expected to always finish quickly. - * - * Cancel will not be called if Start returns a non-nil error. - */ - cancel: () => void - /** - * If WaitDelay is non-zero, it bounds the time spent waiting on two sources - * of unexpected delay in Wait: a child process that fails to exit after the - * associated Context is canceled, and a child process that exits but leaves - * its I/O pipes unclosed. - * - * The WaitDelay timer starts when either the associated Context is done or a - * call to Wait observes that the child process has exited, whichever occurs - * first. When the delay has elapsed, the command shuts down the child process - * and/or its I/O pipes. - * - * If the child process has failed to exit — perhaps because it ignored or - * failed to receive a shutdown signal from a Cancel function, or because no - * Cancel function was set — then it will be terminated using os.Process.Kill. - * - * Then, if the I/O pipes communicating with the child process are still open, - * those pipes are closed in order to unblock any goroutines currently blocked - * on Read or Write calls. - * - * If pipes are closed due to WaitDelay, no Cancel call has occurred, - * and the command has otherwise exited with a successful status, Wait and - * similar methods will return ErrWaitDelay instead of nil. - * - * If WaitDelay is zero (the default), I/O pipes will be read until EOF, - * which might not occur until orphaned subprocesses of the command have - * also closed their descriptors for the pipes. - */ - waitDelay: time.Duration - } - interface Cmd { - /** - * String returns a human-readable description of c. - * It is intended only for debugging. - * In particular, it is not suitable for use as input to a shell. - * The output of String may vary across Go releases. - */ - string(): string - } - interface Cmd { - /** - * Run starts the specified command and waits for it to complete. - * - * The returned error is nil if the command runs, has no problems - * copying stdin, stdout, and stderr, and exits with a zero exit - * status. - * - * If the command starts but does not complete successfully, the error is of - * type [*ExitError]. Other error types may be returned for other situations. - * - * If the calling goroutine has locked the operating system thread - * with [runtime.LockOSThread] and modified any inheritable OS-level - * thread state (for example, Linux or Plan 9 name spaces), the new - * process will inherit the caller's thread state. - */ - run(): void - } - interface Cmd { - /** - * Start starts the specified command but does not wait for it to complete. - * - * If Start returns successfully, the c.Process field will be set. - * - * After a successful call to Start the [Cmd.Wait] method must be called in - * order to release associated system resources. - */ - start(): void - } - interface Cmd { - /** - * Wait waits for the command to exit and waits for any copying to - * stdin or copying from stdout or stderr to complete. - * - * The command must have been started by [Cmd.Start]. - * - * The returned error is nil if the command runs, has no problems - * copying stdin, stdout, and stderr, and exits with a zero exit - * status. - * - * If the command fails to run or doesn't complete successfully, the - * error is of type [*ExitError]. Other error types may be - * returned for I/O problems. - * - * If any of c.Stdin, c.Stdout or c.Stderr are not an [*os.File], Wait also waits - * for the respective I/O loop copying to or from the process to complete. - * - * Wait releases any resources associated with the [Cmd]. - */ - wait(): void - } - interface Cmd { - /** - * Output runs the command and returns its standard output. - * Any returned error will usually be of type [*ExitError]. - * If c.Stderr was nil, Output populates [ExitError.Stderr]. - */ - output(): string|Array - } - interface Cmd { - /** - * CombinedOutput runs the command and returns its combined standard - * output and standard error. - */ - combinedOutput(): string|Array - } - interface Cmd { - /** - * StdinPipe returns a pipe that will be connected to the command's - * standard input when the command starts. - * The pipe will be closed automatically after [Cmd.Wait] sees the command exit. - * A caller need only call Close to force the pipe to close sooner. - * For example, if the command being run will not exit until standard input - * is closed, the caller must close the pipe. - */ - stdinPipe(): io.WriteCloser - } - interface Cmd { - /** - * StdoutPipe returns a pipe that will be connected to the command's - * standard output when the command starts. - * - * [Cmd.Wait] will close the pipe after seeing the command exit, so most callers - * need not close the pipe themselves. It is thus incorrect to call Wait - * before all reads from the pipe have completed. - * For the same reason, it is incorrect to call [Cmd.Run] when using StdoutPipe. - * See the example for idiomatic usage. - */ - stdoutPipe(): io.ReadCloser - } - interface Cmd { - /** - * StderrPipe returns a pipe that will be connected to the command's - * standard error when the command starts. - * - * [Cmd.Wait] will close the pipe after seeing the command exit, so most callers - * need not close the pipe themselves. It is thus incorrect to call Wait - * before all reads from the pipe have completed. - * For the same reason, it is incorrect to use [Cmd.Run] when using StderrPipe. - * See the StdoutPipe example for idiomatic usage. - */ - stderrPipe(): io.ReadCloser - } - interface Cmd { - /** - * Environ returns a copy of the environment in which the command would be run - * as it is currently configured. - */ - environ(): Array - } -} - -/** - * Package cron implements a crontab-like service to execute and schedule - * repeative tasks/jobs. - * - * Example: - * - * ``` - * c := cron.New() - * c.MustAdd("dailyReport", "0 0 * * *", func() { ... }) - * c.Start() - * ``` - */ -namespace cron { - /** - * Cron is a crontab-like struct for tasks/jobs scheduling. - */ - interface Cron { - } - interface Cron { - /** - * SetInterval changes the current cron tick interval - * (it usually should be >= 1 minute). - */ - setInterval(d: time.Duration): void - } - interface Cron { - /** - * SetTimezone changes the current cron tick timezone. - */ - setTimezone(l: time.Location): void - } - interface Cron { - /** - * MustAdd is similar to Add() but panic on failure. - */ - mustAdd(jobId: string, cronExpr: string, run: () => void): void - } - interface Cron { - /** - * Add registers a single cron job. - * - * If there is already a job with the provided id, then the old job - * will be replaced with the new one. - * - * cronExpr is a regular cron expression, eg. "0 *\/3 * * *" (aka. at minute 0 past every 3rd hour). - * Check cron.NewSchedule() for the supported tokens. - */ - add(jobId: string, cronExpr: string, fn: () => void): void - } - interface Cron { - /** - * Remove removes a single cron job by its id. - */ - remove(jobId: string): void - } - interface Cron { - /** - * RemoveAll removes all registered cron jobs. - */ - removeAll(): void - } - interface Cron { - /** - * Total returns the current total number of registered cron jobs. - */ - total(): number - } - interface Cron { - /** - * Jobs returns a shallow copy of the currently registered cron jobs. - */ - jobs(): Array<(Job | undefined)> - } - interface Cron { - /** - * Stop stops the current cron ticker (if not already). - * - * You can resume the ticker by calling Start(). - */ - stop(): void - } - interface Cron { - /** - * Start starts the cron ticker. - * - * Calling Start() on already started cron will restart the ticker. - */ - start(): void - } - interface Cron { - /** - * HasStarted checks whether the current Cron ticker has been started. - */ - hasStarted(): boolean - } -} - -namespace hook { - /** - * Event implements [Resolver] and it is intended to be used as a base - * Hook event that you can embed in your custom typed event structs. - * - * Example: - * - * ``` - * type CustomEvent struct { - * hook.Event - * - * SomeField int - * } - * ``` - */ - interface Event { - } - interface Event { - /** - * Next calls the next hook handler. - */ - next(): void - } - /** - * Handler defines a single Hook handler. - * Multiple handlers can share the same id. - * If Id is not explicitly set it will be autogenerated by Hook.Add and Hook.AddHandler. - */ - interface Handler { - /** - * Func defines the handler function to execute. - * - * Note that users need to call e.Next() in order to proceed with - * the execution of the hook chain. - */ - func: (_arg0: T) => void - /** - * Id is the unique identifier of the handler. - * - * It could be used later to remove the handler from a hook via [Hook.Remove]. - * - * If missing, an autogenerated value will be assigned when adding - * the handler to a hook. - */ - id: string - /** - * Priority allows changing the default exec priority of the handler within a hook. - * - * If 0, the handler will be executed in the same order it was registered. - */ - priority: number - } - /** - * Hook defines a generic concurrent safe structure for managing event hooks. - * - * When using custom event it must embed the base [hook.Event]. - * - * Example: - * - * ``` - * type CustomEvent struct { - * hook.Event - * SomeField int - * } - * - * h := Hook[*CustomEvent]{} - * - * h.BindFunc(func(e *CustomEvent) error { - * println(e.SomeField) - * - * return e.Next() - * }) - * - * h.Trigger(&CustomEvent{ SomeField: 123 }) - * ``` - */ - interface Hook { - } - /** - * TaggedHook defines a proxy hook which register handlers that are triggered only - * if the TaggedHook.tags are empty or includes at least one of the event data tag(s). - */ - type _sbtKKCI = mainHook - interface TaggedHook extends _sbtKKCI { - } -} - -namespace auth { - /** - * Provider defines a common interface for an OAuth2 client. - */ - interface Provider { - [key:string]: any; - /** - * Context returns the context associated with the provider (if any). - */ - context(): context.Context - /** - * SetContext assigns the specified context to the current provider. - */ - setContext(ctx: context.Context): void - /** - * PKCE indicates whether the provider can use the PKCE flow. - */ - pkce(): boolean - /** - * SetPKCE toggles the state whether the provider can use the PKCE flow or not. - */ - setPKCE(enable: boolean): void - /** - * DisplayName usually returns provider name as it is officially written - * and it could be used directly in the UI. - */ - displayName(): string - /** - * SetDisplayName sets the provider's display name. - */ - setDisplayName(displayName: string): void - /** - * Scopes returns the provider access permissions that will be requested. - */ - scopes(): Array - /** - * SetScopes sets the provider access permissions that will be requested later. - */ - setScopes(scopes: Array): void - /** - * ClientId returns the provider client's app ID. - */ - clientId(): string - /** - * SetClientId sets the provider client's ID. - */ - setClientId(clientId: string): void - /** - * ClientSecret returns the provider client's app secret. - */ - clientSecret(): string - /** - * SetClientSecret sets the provider client's app secret. - */ - setClientSecret(secret: string): void - /** - * RedirectURL returns the end address to redirect the user - * going through the OAuth flow. - */ - redirectURL(): string - /** - * SetRedirectURL sets the provider's RedirectURL. - */ - setRedirectURL(url: string): void - /** - * AuthURL returns the provider's authorization service url. - */ - authURL(): string - /** - * SetAuthURL sets the provider's AuthURL. - */ - setAuthURL(url: string): void - /** - * TokenURL returns the provider's token exchange service url. - */ - tokenURL(): string - /** - * SetTokenURL sets the provider's TokenURL. - */ - setTokenURL(url: string): void - /** - * UserInfoURL returns the provider's user info api url. - */ - userInfoURL(): string - /** - * SetUserInfoURL sets the provider's UserInfoURL. - */ - setUserInfoURL(url: string): void - /** - * Extra returns a shallow copy of any custom config data - * that the provider may be need. - */ - extra(): _TygojaDict - /** - * SetExtra updates the provider's custom config data. - */ - setExtra(data: _TygojaDict): void - /** - * Client returns an http client using the provided token. - */ - client(token: oauth2.Token): (any) - /** - * BuildAuthURL returns a URL to the provider's consent page - * that asks for permissions for the required scopes explicitly. - */ - buildAuthURL(state: string, ...opts: oauth2.AuthCodeOption[]): string - /** - * FetchToken converts an authorization code to token. - */ - fetchToken(code: string, ...opts: oauth2.AuthCodeOption[]): (oauth2.Token) - /** - * FetchRawUserInfo requests and marshalizes into `result` the - * the OAuth user api response. - */ - fetchRawUserInfo(token: oauth2.Token): string|Array - /** - * FetchAuthUser is similar to FetchRawUserInfo, but normalizes and - * marshalizes the user api response into a standardized AuthUser struct. - */ - fetchAuthUser(token: oauth2.Token): (AuthUser) - } - /** - * AuthUser defines a standardized OAuth2 user data structure. - */ - interface AuthUser { - expiry: types.DateTime - rawUser: _TygojaDict - id: string - name: string - username: string - email: string - avatarURL: string - accessToken: string - refreshToken: string - /** - * @todo - * deprecated: use AvatarURL instead - * AvatarUrl will be removed after dropping v0.22 support - */ - avatarUrl: string - } - interface AuthUser { - /** - * MarshalJSON implements the [json.Marshaler] interface. - * - * @todo remove after dropping v0.22 support - */ - marshalJSON(): string|Array - } -} - -/** - * Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces. - * In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code. - */ -namespace cobra { - interface Command { - /** - * GenBashCompletion generates bash completion file and writes to the passed writer. - */ - genBashCompletion(w: io.Writer): void - } - interface Command { - /** - * GenBashCompletionFile generates bash completion file. - */ - genBashCompletionFile(filename: string): void - } - interface Command { - /** - * GenBashCompletionFileV2 generates Bash completion version 2. - */ - genBashCompletionFileV2(filename: string, includeDesc: boolean): void - } - interface Command { - /** - * GenBashCompletionV2 generates Bash completion file version 2 - * and writes it to the passed writer. - */ - genBashCompletionV2(w: io.Writer, includeDesc: boolean): void - } - // @ts-ignore - import flag = pflag - /** - * Command is just that, a command for your application. - * E.g. 'go run ...' - 'run' is the command. Cobra requires - * you to define the usage and description as part of your command - * definition to ensure usability. - */ - interface Command { - /** - * Use is the one-line usage message. - * Recommended syntax is as follows: - * ``` - * [ ] identifies an optional argument. Arguments that are not enclosed in brackets are required. - * ... indicates that you can specify multiple values for the previous argument. - * | indicates mutually exclusive information. You can use the argument to the left of the separator or the - * argument to the right of the separator. You cannot use both arguments in a single use of the command. - * { } delimits a set of mutually exclusive arguments when one of the arguments is required. If the arguments are - * optional, they are enclosed in brackets ([ ]). - * ``` - * Example: add [-F file | -D dir]... [-f format] profile - */ - use: string - /** - * Aliases is an array of aliases that can be used instead of the first word in Use. - */ - aliases: Array - /** - * SuggestFor is an array of command names for which this command will be suggested - - * similar to aliases but only suggests. - */ - suggestFor: Array - /** - * Short is the short description shown in the 'help' output. - */ - short: string - /** - * The group id under which this subcommand is grouped in the 'help' output of its parent. - */ - groupID: string - /** - * Long is the long message shown in the 'help ' output. - */ - long: string - /** - * Example is examples of how to use the command. - */ - example: string - /** - * ValidArgs is list of all valid non-flag arguments that are accepted in shell completions - */ - validArgs: Array - /** - * ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion. - * It is a dynamic version of using ValidArgs. - * Only one of ValidArgs and ValidArgsFunction can be used for a command. - */ - validArgsFunction: CompletionFunc - /** - * Expected arguments - */ - args: PositionalArgs - /** - * ArgAliases is List of aliases for ValidArgs. - * These are not suggested to the user in the shell completion, - * but accepted if entered manually. - */ - argAliases: Array - /** - * BashCompletionFunction is custom bash functions used by the legacy bash autocompletion generator. - * For portability with other shells, it is recommended to instead use ValidArgsFunction - */ - bashCompletionFunction: string - /** - * Deprecated defines, if this command is deprecated and should print this string when used. - */ - deprecated: string - /** - * Annotations are key/value pairs that can be used by applications to identify or - * group commands or set special options. - */ - annotations: _TygojaDict - /** - * Version defines the version for this command. If this value is non-empty and the command does not - * define a "version" flag, a "version" boolean flag will be added to the command and, if specified, - * will print content of the "Version" variable. A shorthand "v" flag will also be added if the - * command does not define one. - */ - version: string - /** - * The *Run functions are executed in the following order: - * ``` - * * PersistentPreRun() - * * PreRun() - * * Run() - * * PostRun() - * * PersistentPostRun() - * ``` - * All functions get the same args, the arguments after the command name. - * The *PreRun and *PostRun functions will only be executed if the Run function of the current - * command has been declared. - * - * PersistentPreRun: children of this command will inherit and execute. - */ - persistentPreRun: (cmd: Command, args: Array) => void - /** - * PersistentPreRunE: PersistentPreRun but returns an error. - */ - persistentPreRunE: (cmd: Command, args: Array) => void - /** - * PreRun: children of this command will not inherit. - */ - preRun: (cmd: Command, args: Array) => void - /** - * PreRunE: PreRun but returns an error. - */ - preRunE: (cmd: Command, args: Array) => void - /** - * Run: Typically the actual work function. Most commands will only implement this. - */ - run: (cmd: Command, args: Array) => void - /** - * RunE: Run but returns an error. - */ - runE: (cmd: Command, args: Array) => void - /** - * PostRun: run after the Run command. - */ - postRun: (cmd: Command, args: Array) => void - /** - * PostRunE: PostRun but returns an error. - */ - postRunE: (cmd: Command, args: Array) => void - /** - * PersistentPostRun: children of this command will inherit and execute after PostRun. - */ - persistentPostRun: (cmd: Command, args: Array) => void - /** - * PersistentPostRunE: PersistentPostRun but returns an error. - */ - persistentPostRunE: (cmd: Command, args: Array) => void - /** - * FParseErrWhitelist flag parse errors to be ignored - */ - fParseErrWhitelist: FParseErrWhitelist - /** - * CompletionOptions is a set of options to control the handling of shell completion - */ - completionOptions: CompletionOptions - /** - * TraverseChildren parses flags on all parents before executing child command. - */ - traverseChildren: boolean - /** - * Hidden defines, if this command is hidden and should NOT show up in the list of available commands. - */ - hidden: boolean - /** - * SilenceErrors is an option to quiet errors down stream. - */ - silenceErrors: boolean - /** - * SilenceUsage is an option to silence usage when an error occurs. - */ - silenceUsage: boolean - /** - * DisableFlagParsing disables the flag parsing. - * If this is true all flags will be passed to the command as arguments. - */ - disableFlagParsing: boolean - /** - * DisableAutoGenTag defines, if gen tag ("Auto generated by spf13/cobra...") - * will be printed by generating docs for this command. - */ - disableAutoGenTag: boolean - /** - * DisableFlagsInUseLine will disable the addition of [flags] to the usage - * line of a command when printing help or generating docs - */ - disableFlagsInUseLine: boolean - /** - * DisableSuggestions disables the suggestions based on Levenshtein distance - * that go along with 'unknown command' messages. - */ - disableSuggestions: boolean - /** - * SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions. - * Must be > 0. - */ - suggestionsMinimumDistance: number - } - interface Command { - /** - * Context returns underlying command context. If command was executed - * with ExecuteContext or the context was set with SetContext, the - * previously set context will be returned. Otherwise, nil is returned. - * - * Notice that a call to Execute and ExecuteC will replace a nil context of - * a command with a context.Background, so a background context will be - * returned by Context after one of these functions has been called. - */ - context(): context.Context - } - interface Command { - /** - * SetContext sets context for the command. This context will be overwritten by - * Command.ExecuteContext or Command.ExecuteContextC. - */ - setContext(ctx: context.Context): void - } - interface Command { - /** - * SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden - * particularly useful when testing. - */ - setArgs(a: Array): void - } - interface Command { - /** - * SetOutput sets the destination for usage and error messages. - * If output is nil, os.Stderr is used. - * - * Deprecated: Use SetOut and/or SetErr instead - */ - setOutput(output: io.Writer): void - } - interface Command { - /** - * SetOut sets the destination for usage messages. - * If newOut is nil, os.Stdout is used. - */ - setOut(newOut: io.Writer): void - } - interface Command { - /** - * SetErr sets the destination for error messages. - * If newErr is nil, os.Stderr is used. - */ - setErr(newErr: io.Writer): void - } - interface Command { - /** - * SetIn sets the source for input data - * If newIn is nil, os.Stdin is used. - */ - setIn(newIn: io.Reader): void - } - interface Command { - /** - * SetUsageFunc sets usage function. Usage can be defined by application. - */ - setUsageFunc(f: (_arg0: Command) => void): void - } - interface Command { - /** - * SetUsageTemplate sets usage template. Can be defined by Application. - */ - setUsageTemplate(s: string): void - } - interface Command { - /** - * SetFlagErrorFunc sets a function to generate an error when flag parsing - * fails. - */ - setFlagErrorFunc(f: (_arg0: Command, _arg1: Error) => void): void - } - interface Command { - /** - * SetHelpFunc sets help function. Can be defined by Application. - */ - setHelpFunc(f: (_arg0: Command, _arg1: Array) => void): void - } - interface Command { - /** - * SetHelpCommand sets help command. - */ - setHelpCommand(cmd: Command): void - } - interface Command { - /** - * SetHelpCommandGroupID sets the group id of the help command. - */ - setHelpCommandGroupID(groupID: string): void - } - interface Command { - /** - * SetCompletionCommandGroupID sets the group id of the completion command. - */ - setCompletionCommandGroupID(groupID: string): void - } - interface Command { - /** - * SetHelpTemplate sets help template to be used. Application can use it to set custom template. - */ - setHelpTemplate(s: string): void - } - interface Command { - /** - * SetVersionTemplate sets version template to be used. Application can use it to set custom template. - */ - setVersionTemplate(s: string): void - } - interface Command { - /** - * SetErrPrefix sets error message prefix to be used. Application can use it to set custom prefix. - */ - setErrPrefix(s: string): void - } - interface Command { - /** - * SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands. - * The user should not have a cyclic dependency on commands. - */ - setGlobalNormalizationFunc(n: (f: any, name: string) => any): void - } - interface Command { - /** - * OutOrStdout returns output to stdout. - */ - outOrStdout(): io.Writer - } - interface Command { - /** - * OutOrStderr returns output to stderr - */ - outOrStderr(): io.Writer - } - interface Command { - /** - * ErrOrStderr returns output to stderr - */ - errOrStderr(): io.Writer - } - interface Command { - /** - * InOrStdin returns input to stdin - */ - inOrStdin(): io.Reader - } - interface Command { - /** - * UsageFunc returns either the function set by SetUsageFunc for this command - * or a parent, or it returns a default usage function. - */ - usageFunc(): (_arg0: Command) => void - } - interface Command { - /** - * Usage puts out the usage for the command. - * Used when a user provides invalid input. - * Can be defined by user by overriding UsageFunc. - */ - usage(): void - } - interface Command { - /** - * HelpFunc returns either the function set by SetHelpFunc for this command - * or a parent, or it returns a function with default help behavior. - */ - helpFunc(): (_arg0: Command, _arg1: Array) => void - } - interface Command { - /** - * Help puts out the help for the command. - * Used when a user calls help [command]. - * Can be defined by user by overriding HelpFunc. - */ - help(): void - } - interface Command { - /** - * UsageString returns usage string. - */ - usageString(): string - } - interface Command { - /** - * FlagErrorFunc returns either the function set by SetFlagErrorFunc for this - * command or a parent, or it returns a function which returns the original - * error. - */ - flagErrorFunc(): (_arg0: Command, _arg1: Error) => void - } - interface Command { - /** - * UsagePadding return padding for the usage. - */ - usagePadding(): number - } - interface Command { - /** - * CommandPathPadding return padding for the command path. - */ - commandPathPadding(): number - } - interface Command { - /** - * NamePadding returns padding for the name. - */ - namePadding(): number - } - interface Command { - /** - * UsageTemplate returns usage template for the command. - * This function is kept for backwards-compatibility reasons. - */ - usageTemplate(): string - } - interface Command { - /** - * HelpTemplate return help template for the command. - * This function is kept for backwards-compatibility reasons. - */ - helpTemplate(): string - } - interface Command { - /** - * VersionTemplate return version template for the command. - * This function is kept for backwards-compatibility reasons. - */ - versionTemplate(): string - } - interface Command { - /** - * ErrPrefix return error message prefix for the command - */ - errPrefix(): string - } - interface Command { - /** - * Find the target command given the args and command tree - * Meant to be run on the highest node. Only searches down. - */ - find(args: Array): [(Command), Array] - } - interface Command { - /** - * Traverse the command tree to find the command, and parse args for - * each parent. - */ - traverse(args: Array): [(Command), Array] - } - interface Command { - /** - * SuggestionsFor provides suggestions for the typedName. - */ - suggestionsFor(typedName: string): Array - } - interface Command { - /** - * VisitParents visits all parents of the command and invokes fn on each parent. - */ - visitParents(fn: (_arg0: Command) => void): void - } - interface Command { - /** - * Root finds root command. - */ - root(): (Command) - } - interface Command { - /** - * ArgsLenAtDash will return the length of c.Flags().Args at the moment - * when a -- was found during args parsing. - */ - argsLenAtDash(): number - } - interface Command { - /** - * ExecuteContext is the same as Execute(), but sets the ctx on the command. - * Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs - * functions. - */ - executeContext(ctx: context.Context): void - } - interface Command { - /** - * Execute uses the args (os.Args[1:] by default) - * and run through the command tree finding appropriate matches - * for commands and then corresponding flags. - */ - execute(): void - } - interface Command { - /** - * ExecuteContextC is the same as ExecuteC(), but sets the ctx on the command. - * Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs - * functions. - */ - executeContextC(ctx: context.Context): (Command) - } - interface Command { - /** - * ExecuteC executes the command. - */ - executeC(): (Command) - } - interface Command { - validateArgs(args: Array): void - } - interface Command { - /** - * ValidateRequiredFlags validates all required flags are present and returns an error otherwise - */ - validateRequiredFlags(): void - } - interface Command { - /** - * InitDefaultHelpFlag adds default help flag to c. - * It is called automatically by executing the c or by calling help and usage. - * If c already has help flag, it will do nothing. - */ - initDefaultHelpFlag(): void - } - interface Command { - /** - * InitDefaultVersionFlag adds default version flag to c. - * It is called automatically by executing the c. - * If c already has a version flag, it will do nothing. - * If c.Version is empty, it will do nothing. - */ - initDefaultVersionFlag(): void - } - interface Command { - /** - * InitDefaultHelpCmd adds default help command to c. - * It is called automatically by executing the c or by calling help and usage. - * If c already has help command or c has no subcommands, it will do nothing. - */ - initDefaultHelpCmd(): void - } - interface Command { - /** - * ResetCommands delete parent, subcommand and help command from c. - */ - resetCommands(): void - } - interface Command { - /** - * Commands returns a sorted slice of child commands. - */ - commands(): Array<(Command | undefined)> - } - interface Command { - /** - * AddCommand adds one or more commands to this parent command. - */ - addCommand(...cmds: (Command | undefined)[]): void - } - interface Command { - /** - * Groups returns a slice of child command groups. - */ - groups(): Array<(Group | undefined)> - } - interface Command { - /** - * AllChildCommandsHaveGroup returns if all subcommands are assigned to a group - */ - allChildCommandsHaveGroup(): boolean - } - interface Command { - /** - * ContainsGroup return if groupID exists in the list of command groups. - */ - containsGroup(groupID: string): boolean - } - interface Command { - /** - * AddGroup adds one or more command groups to this parent command. - */ - addGroup(...groups: (Group | undefined)[]): void - } - interface Command { - /** - * RemoveCommand removes one or more commands from a parent command. - */ - removeCommand(...cmds: (Command | undefined)[]): void - } - interface Command { - /** - * Print is a convenience method to Print to the defined output, fallback to Stderr if not set. - */ - print(...i: { - }[]): void - } - interface Command { - /** - * Println is a convenience method to Println to the defined output, fallback to Stderr if not set. - */ - println(...i: { - }[]): void - } - interface Command { - /** - * Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set. - */ - printf(format: string, ...i: { - }[]): void - } - interface Command { - /** - * PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set. - */ - printErr(...i: { - }[]): void - } - interface Command { - /** - * PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set. - */ - printErrln(...i: { - }[]): void - } - interface Command { - /** - * PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set. - */ - printErrf(format: string, ...i: { - }[]): void - } - interface Command { - /** - * CommandPath returns the full path to this command. - */ - commandPath(): string - } - interface Command { - /** - * DisplayName returns the name to display in help text. Returns command Name() - * If CommandDisplayNameAnnoation is not set - */ - displayName(): string - } - interface Command { - /** - * UseLine puts out the full usage for a given command (including parents). - */ - useLine(): string - } - interface Command { - /** - * DebugFlags used to determine which flags have been assigned to which commands - * and which persist. - */ - debugFlags(): void - } - interface Command { - /** - * Name returns the command's name: the first word in the use line. - */ - name(): string - } - interface Command { - /** - * HasAlias determines if a given string is an alias of the command. - */ - hasAlias(s: string): boolean - } - interface Command { - /** - * CalledAs returns the command name or alias that was used to invoke - * this command or an empty string if the command has not been called. - */ - calledAs(): string - } - interface Command { - /** - * NameAndAliases returns a list of the command name and all aliases - */ - nameAndAliases(): string - } - interface Command { - /** - * HasExample determines if the command has example. - */ - hasExample(): boolean - } - interface Command { - /** - * Runnable determines if the command is itself runnable. - */ - runnable(): boolean - } - interface Command { - /** - * HasSubCommands determines if the command has children commands. - */ - hasSubCommands(): boolean - } - interface Command { - /** - * IsAvailableCommand determines if a command is available as a non-help command - * (this includes all non deprecated/hidden commands). - */ - isAvailableCommand(): boolean - } - interface Command { - /** - * IsAdditionalHelpTopicCommand determines if a command is an additional - * help topic command; additional help topic command is determined by the - * fact that it is NOT runnable/hidden/deprecated, and has no sub commands that - * are runnable/hidden/deprecated. - * Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924. - */ - isAdditionalHelpTopicCommand(): boolean - } - interface Command { - /** - * HasHelpSubCommands determines if a command has any available 'help' sub commands - * that need to be shown in the usage/help default template under 'additional help - * topics'. - */ - hasHelpSubCommands(): boolean - } - interface Command { - /** - * HasAvailableSubCommands determines if a command has available sub commands that - * need to be shown in the usage/help default template under 'available commands'. - */ - hasAvailableSubCommands(): boolean - } - interface Command { - /** - * HasParent determines if the command is a child command. - */ - hasParent(): boolean - } - interface Command { - /** - * GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist. - */ - globalNormalizationFunc(): (f: any, name: string) => any - } - interface Command { - /** - * Flags returns the complete FlagSet that applies - * to this command (local and persistent declared here and by all parents). - */ - flags(): (any) - } - interface Command { - /** - * LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands. - * This function does not modify the flags of the current command, it's purpose is to return the current state. - */ - localNonPersistentFlags(): (any) - } - interface Command { - /** - * LocalFlags returns the local FlagSet specifically set in the current command. - * This function does not modify the flags of the current command, it's purpose is to return the current state. - */ - localFlags(): (any) - } - interface Command { - /** - * InheritedFlags returns all flags which were inherited from parent commands. - * This function does not modify the flags of the current command, it's purpose is to return the current state. - */ - inheritedFlags(): (any) - } - interface Command { - /** - * NonInheritedFlags returns all flags which were not inherited from parent commands. - * This function does not modify the flags of the current command, it's purpose is to return the current state. - */ - nonInheritedFlags(): (any) - } - interface Command { - /** - * PersistentFlags returns the persistent FlagSet specifically set in the current command. - */ - persistentFlags(): (any) - } - interface Command { - /** - * ResetFlags deletes all flags from command. - */ - resetFlags(): void - } - interface Command { - /** - * HasFlags checks if the command contains any flags (local plus persistent from the entire structure). - */ - hasFlags(): boolean - } - interface Command { - /** - * HasPersistentFlags checks if the command contains persistent flags. - */ - hasPersistentFlags(): boolean - } - interface Command { - /** - * HasLocalFlags checks if the command has flags specifically declared locally. - */ - hasLocalFlags(): boolean - } - interface Command { - /** - * HasInheritedFlags checks if the command has flags inherited from its parent command. - */ - hasInheritedFlags(): boolean - } - interface Command { - /** - * HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire - * structure) which are not hidden or deprecated. - */ - hasAvailableFlags(): boolean - } - interface Command { - /** - * HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated. - */ - hasAvailablePersistentFlags(): boolean - } - interface Command { - /** - * HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden - * or deprecated. - */ - hasAvailableLocalFlags(): boolean - } - interface Command { - /** - * HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are - * not hidden or deprecated. - */ - hasAvailableInheritedFlags(): boolean - } - interface Command { - /** - * Flag climbs up the command tree looking for matching flag. - */ - flag(name: string): (any) - } - interface Command { - /** - * ParseFlags parses persistent flag tree and local flags. - */ - parseFlags(args: Array): void - } - interface Command { - /** - * Parent returns a commands parent command. - */ - parent(): (Command) - } - interface Command { - /** - * RegisterFlagCompletionFunc should be called to register a function to provide completion for a flag. - * - * You can use pre-defined completion functions such as [FixedCompletions] or [NoFileCompletions], - * or you can define your own. - */ - registerFlagCompletionFunc(flagName: string, f: CompletionFunc): void - } - interface Command { - /** - * GetFlagCompletionFunc returns the completion function for the given flag of the command, if available. - */ - getFlagCompletionFunc(flagName: string): [CompletionFunc, boolean] - } - interface Command { - /** - * InitDefaultCompletionCmd adds a default 'completion' command to c. - * This function will do nothing if any of the following is true: - * 1- the feature has been explicitly disabled by the program, - * 2- c has no subcommands (to avoid creating one), - * 3- c already has a 'completion' command provided by the program. - */ - initDefaultCompletionCmd(...args: string[]): void - } - interface Command { - /** - * GenFishCompletion generates fish completion file and writes to the passed writer. - */ - genFishCompletion(w: io.Writer, includeDesc: boolean): void - } - interface Command { - /** - * GenFishCompletionFile generates fish completion file. - */ - genFishCompletionFile(filename: string, includeDesc: boolean): void - } - interface Command { - /** - * MarkFlagsRequiredTogether marks the given flags with annotations so that Cobra errors - * if the command is invoked with a subset (but not all) of the given flags. - */ - markFlagsRequiredTogether(...flagNames: string[]): void - } - interface Command { - /** - * MarkFlagsOneRequired marks the given flags with annotations so that Cobra errors - * if the command is invoked without at least one flag from the given set of flags. - */ - markFlagsOneRequired(...flagNames: string[]): void - } - interface Command { - /** - * MarkFlagsMutuallyExclusive marks the given flags with annotations so that Cobra errors - * if the command is invoked with more than one flag from the given set of flags. - */ - markFlagsMutuallyExclusive(...flagNames: string[]): void - } - interface Command { - /** - * ValidateFlagGroups validates the mutuallyExclusive/oneRequired/requiredAsGroup logic and returns the - * first error encountered. - */ - validateFlagGroups(): void - } - interface Command { - /** - * GenPowerShellCompletionFile generates powershell completion file without descriptions. - */ - genPowerShellCompletionFile(filename: string): void - } - interface Command { - /** - * GenPowerShellCompletion generates powershell completion file without descriptions - * and writes it to the passed writer. - */ - genPowerShellCompletion(w: io.Writer): void - } - interface Command { - /** - * GenPowerShellCompletionFileWithDesc generates powershell completion file with descriptions. - */ - genPowerShellCompletionFileWithDesc(filename: string): void - } - interface Command { - /** - * GenPowerShellCompletionWithDesc generates powershell completion file with descriptions - * and writes it to the passed writer. - */ - genPowerShellCompletionWithDesc(w: io.Writer): void - } - interface Command { - /** - * MarkFlagRequired instructs the various shell completion implementations to - * prioritize the named flag when performing completion, - * and causes your command to report an error if invoked without the flag. - */ - markFlagRequired(name: string): void - } - interface Command { - /** - * MarkPersistentFlagRequired instructs the various shell completion implementations to - * prioritize the named persistent flag when performing completion, - * and causes your command to report an error if invoked without the flag. - */ - markPersistentFlagRequired(name: string): void - } - interface Command { - /** - * MarkFlagFilename instructs the various shell completion implementations to - * limit completions for the named flag to the specified file extensions. - */ - markFlagFilename(name: string, ...extensions: string[]): void - } - interface Command { - /** - * MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. - * The bash completion script will call the bash function f for the flag. - * - * This will only work for bash completion. - * It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows - * to register a Go function which will work across all shells. - */ - markFlagCustom(name: string, f: string): void - } - interface Command { - /** - * MarkPersistentFlagFilename instructs the various shell completion - * implementations to limit completions for the named persistent flag to the - * specified file extensions. - */ - markPersistentFlagFilename(name: string, ...extensions: string[]): void - } - interface Command { - /** - * MarkFlagDirname instructs the various shell completion implementations to - * limit completions for the named flag to directory names. - */ - markFlagDirname(name: string): void - } - interface Command { - /** - * MarkPersistentFlagDirname instructs the various shell completion - * implementations to limit completions for the named persistent flag to - * directory names. - */ - markPersistentFlagDirname(name: string): void - } - interface Command { - /** - * GenZshCompletionFile generates zsh completion file including descriptions. - */ - genZshCompletionFile(filename: string): void - } - interface Command { - /** - * GenZshCompletion generates zsh completion file including descriptions - * and writes it to the passed writer. - */ - genZshCompletion(w: io.Writer): void - } - interface Command { - /** - * GenZshCompletionFileNoDesc generates zsh completion file without descriptions. - */ - genZshCompletionFileNoDesc(filename: string): void - } - interface Command { - /** - * GenZshCompletionNoDesc generates zsh completion file without descriptions - * and writes it to the passed writer. - */ - genZshCompletionNoDesc(w: io.Writer): void - } - interface Command { - /** - * MarkZshCompPositionalArgumentFile only worked for zsh and its behavior was - * not consistent with Bash completion. It has therefore been disabled. - * Instead, when no other completion is specified, file completion is done by - * default for every argument. One can disable file completion on a per-argument - * basis by using ValidArgsFunction and ShellCompDirectiveNoFileComp. - * To achieve file extension filtering, one can use ValidArgsFunction and - * ShellCompDirectiveFilterFileExt. - * - * Deprecated - */ - markZshCompPositionalArgumentFile(argPosition: number, ...patterns: string[]): void - } - interface Command { - /** - * MarkZshCompPositionalArgumentWords only worked for zsh. It has therefore - * been disabled. - * To achieve the same behavior across all shells, one can use - * ValidArgs (for the first argument only) or ValidArgsFunction for - * any argument (can include the first one also). - * - * Deprecated - */ - markZshCompPositionalArgumentWords(argPosition: number, ...words: string[]): void - } -} - -/** - * Package blob defines a lightweight abstration for interacting with - * various storage services (local filesystem, S3, etc.). - * - * NB! - * For compatibility with earlier PocketBase versions and to prevent - * unnecessary breaking changes, this package is based and implemented - * as a minimal, stripped down version of the previously used gocloud.dev/blob. - * While there is no promise that it won't diverge in the future to accommodate - * better some PocketBase specific use cases, currently it copies and - * tries to follow as close as possible the same implementations, - * conventions and rules for the key escaping/unescaping, blob read/write - * interfaces and struct options as gocloud.dev/blob, therefore the - * credits goes to the original Go Cloud Development Kit Authors. - */ -namespace blob { - /** - * ListObject represents a single blob returned from List. - */ - interface ListObject { - /** - * Key is the key for this blob. - */ - key: string - /** - * ModTime is the time the blob was last modified. - */ - modTime: time.Time - /** - * Size is the size of the blob's content in bytes. - */ - size: number - /** - * MD5 is an MD5 hash of the blob contents or nil if not available. - */ - md5: string|Array - /** - * IsDir indicates that this result represents a "directory" in the - * hierarchical namespace, ending in ListOptions.Delimiter. Key can be - * passed as ListOptions.Prefix to list items in the "directory". - * Fields other than Key and IsDir will not be set if IsDir is true. - */ - isDir: boolean - } - /** - * Attributes contains attributes about a blob. - */ - interface Attributes { - /** - * CacheControl specifies caching attributes that services may use - * when serving the blob. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control - */ - cacheControl: string - /** - * ContentDisposition specifies whether the blob content is expected to be - * displayed inline or as an attachment. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition - */ - contentDisposition: string - /** - * ContentEncoding specifies the encoding used for the blob's content, if any. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding - */ - contentEncoding: string - /** - * ContentLanguage specifies the language used in the blob's content, if any. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language - */ - contentLanguage: string - /** - * ContentType is the MIME type of the blob. It will not be empty. - * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type - */ - contentType: string - /** - * Metadata holds key/value pairs associated with the blob. - * Keys are guaranteed to be in lowercase, even if the backend service - * has case-sensitive keys (although note that Metadata written via - * this package will always be lowercased). If there are duplicate - * case-insensitive keys (e.g., "foo" and "FOO"), only one value - * will be kept, and it is undefined which one. - */ - metadata: _TygojaDict - /** - * CreateTime is the time the blob was created, if available. If not available, - * CreateTime will be the zero time. - */ - createTime: time.Time - /** - * ModTime is the time the blob was last modified. - */ - modTime: time.Time - /** - * Size is the size of the blob's content in bytes. - */ - size: number - /** - * MD5 is an MD5 hash of the blob contents or nil if not available. - */ - md5: string|Array - /** - * ETag for the blob; see https://en.wikipedia.org/wiki/HTTP_ETag. - */ - eTag: string - } - /** - * Reader reads bytes from a blob. - * It implements io.ReadSeekCloser, and must be closed after reads are finished. - */ - interface Reader { - } - interface Reader { - /** - * Read implements io.Reader (https://golang.org/pkg/io/#Reader). - */ - read(p: string|Array): number - } - interface Reader { - /** - * Seek implements io.Seeker (https://golang.org/pkg/io/#Seeker). - */ - seek(offset: number, whence: number): number - } - interface Reader { - /** - * Close implements io.Closer (https://golang.org/pkg/io/#Closer). - */ - close(): void - } - interface Reader { - /** - * ContentType returns the MIME type of the blob. - */ - contentType(): string - } - interface Reader { - /** - * ModTime returns the time the blob was last modified. - */ - modTime(): time.Time - } - interface Reader { - /** - * Size returns the size of the blob content in bytes. - */ - size(): number - } - interface Reader { - /** - * WriteTo reads from r and writes to w until there's no more data or - * an error occurs. - * The return value is the number of bytes written to w. - * - * It implements the io.WriterTo interface. - */ - writeTo(w: io.Writer): number - } -} - -namespace search { - /** - * Result defines the returned search result structure. - */ - interface Result { - items: any - page: number - perPage: number - totalItems: number - totalPages: number - } - /** - * ResolverResult defines a single FieldResolver.Resolve() successfully parsed result. - */ - interface ResolverResult { - /** - * Identifier is the plain SQL identifier/column that will be used - * in the final db expression as left or right operand. - */ - identifier: string - /** - * NoCoalesce instructs to not use COALESCE or NULL fallbacks - * when building the identifier expression. - */ - noCoalesce: boolean - /** - * Params is a map with db placeholder->value pairs that will be added - * to the query when building both resolved operands/sides in a single expression. - */ - params: dbx.Params - /** - * MultiMatchSubQuery is an optional sub query expression that will be added - * in addition to the combined ResolverResult expression during build. - */ - multiMatchSubQuery: dbx.Expression - /** - * AfterBuild is an optional function that will be called after building - * and combining the result of both resolved operands/sides in a single expression. - */ - afterBuild: (expr: dbx.Expression) => dbx.Expression - } -} - -namespace router { - // @ts-ignore - import validation = ozzo_validation - /** - * ApiError defines the struct for a basic api error response. - */ - interface ApiError { - data: _TygojaDict - message: string - status: number - } - interface ApiError { - /** - * Error makes it compatible with the `error` interface. - */ - error(): string - } - interface ApiError { - /** - * RawData returns the unformatted error data (could be an internal error, text, etc.) - */ - rawData(): any - } - interface ApiError { - /** - * Is reports whether the current ApiError wraps the target. - */ - is(target: Error): boolean - } - /** - * Event specifies based Route handler event that is usually intended - * to be embedded as part of a custom event struct. - * - * NB! It is expected that the Response and Request fields are always set. - */ - type _sTluqnw = hook.Event - interface Event extends _sTluqnw { - response: http.ResponseWriter - request?: http.Request - } - interface Event { - /** - * Written reports whether the current response has already been written. - * - * This method always returns false if e.ResponseWritter doesn't implement the WriteTracker interface - * (all router package handlers receives a ResponseWritter that implements it unless explicitly replaced with a custom one). - */ - written(): boolean - } - interface Event { - /** - * Status reports the status code of the current response. - * - * This method always returns 0 if e.Response doesn't implement the StatusTracker interface - * (all router package handlers receives a ResponseWritter that implements it unless explicitly replaced with a custom one). - */ - status(): number - } - interface Event { - /** - * Flush flushes buffered data to the current response. - * - * Returns [http.ErrNotSupported] if e.Response doesn't implement the [http.Flusher] interface - * (all router package handlers receives a ResponseWritter that implements it unless explicitly replaced with a custom one). - */ - flush(): void - } - interface Event { - /** - * IsTLS reports whether the connection on which the request was received is TLS. - */ - isTLS(): boolean - } - interface Event { - /** - * SetCookie is an alias for [http.SetCookie]. - * - * SetCookie adds a Set-Cookie header to the current response's headers. - * The provided cookie must have a valid Name. - * Invalid cookies may be silently dropped. - */ - setCookie(cookie: http.Cookie): void - } - interface Event { - /** - * RemoteIP returns the IP address of the client that sent the request. - * - * IPv6 addresses are returned expanded. - * For example, "2001:db8::1" becomes "2001:0db8:0000:0000:0000:0000:0000:0001". - * - * Note that if you are behind reverse proxy(ies), this method returns - * the IP of the last connecting proxy. - */ - remoteIP(): string - } - interface Event { - /** - * FindUploadedFiles extracts all form files of "key" from a http request - * and returns a slice with filesystem.File instances (if any). - */ - findUploadedFiles(key: string): Array<(filesystem.File | undefined)> - } - interface Event { - /** - * Get retrieves single value from the current event data store. - */ - get(key: string): any - } - interface Event { - /** - * GetAll returns a copy of the current event data store. - */ - getAll(): _TygojaDict - } - interface Event { - /** - * Set saves single value into the current event data store. - */ - set(key: string, value: any): void - } - interface Event { - /** - * SetAll saves all items from m into the current event data store. - */ - setAll(m: _TygojaDict): void - } - interface Event { - /** - * String writes a plain string response. - */ - string(status: number, data: string): void - } - interface Event { - /** - * HTML writes an HTML response. - */ - html(status: number, data: string): void - } - interface Event { - /** - * JSON writes a JSON response. - * - * It also provides a generic response data fields picker if the "fields" query parameter is set. - * For example, if you are requesting `?fields=a,b` for `e.JSON(200, map[string]int{ "a":1, "b":2, "c":3 })`, - * it should result in a JSON response like: `{"a":1, "b": 2}`. - */ - json(status: number, data: any): void - } - interface Event { - /** - * XML writes an XML response. - * It automatically prepends the generic [xml.Header] string to the response. - */ - xml(status: number, data: any): void - } - interface Event { - /** - * Stream streams the specified reader into the response. - */ - stream(status: number, contentType: string, reader: io.Reader): void - } - interface Event { - /** - * Blob writes a blob (bytes slice) response. - */ - blob(status: number, contentType: string, b: string|Array): void - } - interface Event { - /** - * FileFS serves the specified filename from fsys. - * - * It is similar to [echo.FileFS] for consistency with earlier versions. - */ - fileFS(fsys: fs.FS, filename: string): void - } - interface Event { - /** - * NoContent writes a response with no body (ex. 204). - */ - noContent(status: number): void - } - interface Event { - /** - * Redirect writes a redirect response to the specified url. - * The status code must be in between 300 – 399 range. - */ - redirect(status: number, url: string): void - } - interface Event { - error(status: number, message: string, errData: any): (ApiError) - } - interface Event { - badRequestError(message: string, errData: any): (ApiError) - } - interface Event { - notFoundError(message: string, errData: any): (ApiError) - } - interface Event { - forbiddenError(message: string, errData: any): (ApiError) - } - interface Event { - unauthorizedError(message: string, errData: any): (ApiError) - } - interface Event { - tooManyRequestsError(message: string, errData: any): (ApiError) - } - interface Event { - internalServerError(message: string, errData: any): (ApiError) - } - interface Event { - /** - * BindBody unmarshal the request body into the provided dst. - * - * dst must be either a struct pointer or map[string]any. - * - * The rules how the body will be scanned depends on the request Content-Type. - * - * Currently the following Content-Types are supported: - * ``` - * - application/json - * - text/xml, application/xml - * - multipart/form-data, application/x-www-form-urlencoded - * ``` - * - * Respectively the following struct tags are supported (again, which one will be used depends on the Content-Type): - * ``` - * - "json" (json body)- uses the builtin Go json package for unmarshaling. - * - "xml" (xml body) - uses the builtin Go xml package for unmarshaling. - * - "form" (form data) - utilizes the custom [router.UnmarshalRequestData] method. - * ``` - * - * NB! When dst is a struct make sure that it doesn't have public fields - * that shouldn't be bindable and it is advisible such fields to be unexported - * or have a separate struct just for the binding. For example: - * - * ``` - * data := struct{ - * somethingPrivate string - * - * Title string `json:"title" form:"title"` - * Total int `json:"total" form:"total"` - * } - * err := e.BindBody(&data) - * ``` - */ - bindBody(dst: any): void - } - /** - * Router defines a thin wrapper around the standard Go [http.ServeMux] by - * adding support for routing sub-groups, middlewares and other common utils. - * - * Example: - * - * ``` - * r := NewRouter[*MyEvent](eventFactory) - * - * // middlewares - * r.BindFunc(m1, m2) - * - * // routes - * r.GET("/test", handler1) - * - * // sub-routers/groups - * api := r.Group("/api") - * api.GET("/admins", handler2) - * - * // generate a http.ServeMux instance based on the router configurations - * mux, _ := r.BuildMux() - * - * http.ListenAndServe("localhost:8090", mux) - * ``` - */ - type _sAiKeOv = RouterGroup - interface Router extends _sAiKeOv { - } -} - -namespace mailer { - /** - * Message defines a generic email message struct. - */ - interface Message { - from: { address: string; name?: string; } - to: Array<{ address: string; name?: string; }> - bcc: Array<{ address: string; name?: string; }> - cc: Array<{ address: string; name?: string; }> - subject: string - html: string - text: string - headers: _TygojaDict - attachments: _TygojaDict - inlineAttachments: _TygojaDict - } - /** - * Mailer defines a base mail client interface. - */ - interface Mailer { - [key:string]: any; - /** - * Send sends an email with the provided Message. - */ - send(message: Message): void - } -} - -/** - * Package slog provides structured logging, - * in which log records include a message, - * a severity level, and various other attributes - * expressed as key-value pairs. - * - * It defines a type, [Logger], - * which provides several methods (such as [Logger.Info] and [Logger.Error]) - * for reporting events of interest. - * - * Each Logger is associated with a [Handler]. - * A Logger output method creates a [Record] from the method arguments - * and passes it to the Handler, which decides how to handle it. - * There is a default Logger accessible through top-level functions - * (such as [Info] and [Error]) that call the corresponding Logger methods. - * - * A log record consists of a time, a level, a message, and a set of key-value - * pairs, where the keys are strings and the values may be of any type. - * As an example, - * - * ``` - * slog.Info("hello", "count", 3) - * ``` - * - * creates a record containing the time of the call, - * a level of Info, the message "hello", and a single - * pair with key "count" and value 3. - * - * The [Info] top-level function calls the [Logger.Info] method on the default Logger. - * In addition to [Logger.Info], there are methods for Debug, Warn and Error levels. - * Besides these convenience methods for common levels, - * there is also a [Logger.Log] method which takes the level as an argument. - * Each of these methods has a corresponding top-level function that uses the - * default logger. - * - * The default handler formats the log record's message, time, level, and attributes - * as a string and passes it to the [log] package. - * - * ``` - * 2022/11/08 15:28:26 INFO hello count=3 - * ``` - * - * For more control over the output format, create a logger with a different handler. - * This statement uses [New] to create a new logger with a [TextHandler] - * that writes structured records in text form to standard error: - * - * ``` - * logger := slog.New(slog.NewTextHandler(os.Stderr, nil)) - * ``` - * - * [TextHandler] output is a sequence of key=value pairs, easily and unambiguously - * parsed by machine. This statement: - * - * ``` - * logger.Info("hello", "count", 3) - * ``` - * - * produces this output: - * - * ``` - * time=2022-11-08T15:28:26.000-05:00 level=INFO msg=hello count=3 - * ``` - * - * The package also provides [JSONHandler], whose output is line-delimited JSON: - * - * ``` - * logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) - * logger.Info("hello", "count", 3) - * ``` - * - * produces this output: - * - * ``` - * {"time":"2022-11-08T15:28:26.000000000-05:00","level":"INFO","msg":"hello","count":3} - * ``` - * - * Both [TextHandler] and [JSONHandler] can be configured with [HandlerOptions]. - * There are options for setting the minimum level (see Levels, below), - * displaying the source file and line of the log call, and - * modifying attributes before they are logged. - * - * Setting a logger as the default with - * - * ``` - * slog.SetDefault(logger) - * ``` - * - * will cause the top-level functions like [Info] to use it. - * [SetDefault] also updates the default logger used by the [log] package, - * so that existing applications that use [log.Printf] and related functions - * will send log records to the logger's handler without needing to be rewritten. - * - * Some attributes are common to many log calls. - * For example, you may wish to include the URL or trace identifier of a server request - * with all log events arising from the request. - * Rather than repeat the attribute with every log call, you can use [Logger.With] - * to construct a new Logger containing the attributes: - * - * ``` - * logger2 := logger.With("url", r.URL) - * ``` - * - * The arguments to With are the same key-value pairs used in [Logger.Info]. - * The result is a new Logger with the same handler as the original, but additional - * attributes that will appear in the output of every call. - * - * # Levels - * - * A [Level] is an integer representing the importance or severity of a log event. - * The higher the level, the more severe the event. - * This package defines constants for the most common levels, - * but any int can be used as a level. - * - * In an application, you may wish to log messages only at a certain level or greater. - * One common configuration is to log messages at Info or higher levels, - * suppressing debug logging until it is needed. - * The built-in handlers can be configured with the minimum level to output by - * setting [HandlerOptions.Level]. - * The program's `main` function typically does this. - * The default value is LevelInfo. - * - * Setting the [HandlerOptions.Level] field to a [Level] value - * fixes the handler's minimum level throughout its lifetime. - * Setting it to a [LevelVar] allows the level to be varied dynamically. - * A LevelVar holds a Level and is safe to read or write from multiple - * goroutines. - * To vary the level dynamically for an entire program, first initialize - * a global LevelVar: - * - * ``` - * var programLevel = new(slog.LevelVar) // Info by default - * ``` - * - * Then use the LevelVar to construct a handler, and make it the default: - * - * ``` - * h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel}) - * slog.SetDefault(slog.New(h)) - * ``` - * - * Now the program can change its logging level with a single statement: - * - * ``` - * programLevel.Set(slog.LevelDebug) - * ``` - * - * # Groups - * - * Attributes can be collected into groups. - * A group has a name that is used to qualify the names of its attributes. - * How this qualification is displayed depends on the handler. - * [TextHandler] separates the group and attribute names with a dot. - * [JSONHandler] treats each group as a separate JSON object, with the group name as the key. - * - * Use [Group] to create a Group attribute from a name and a list of key-value pairs: - * - * ``` - * slog.Group("request", - * "method", r.Method, - * "url", r.URL) - * ``` - * - * TextHandler would display this group as - * - * ``` - * request.method=GET request.url=http://example.com - * ``` - * - * JSONHandler would display it as - * - * ``` - * "request":{"method":"GET","url":"http://example.com"} - * ``` - * - * Use [Logger.WithGroup] to qualify all of a Logger's output - * with a group name. Calling WithGroup on a Logger results in a - * new Logger with the same Handler as the original, but with all - * its attributes qualified by the group name. - * - * This can help prevent duplicate attribute keys in large systems, - * where subsystems might use the same keys. - * Pass each subsystem a different Logger with its own group name so that - * potential duplicates are qualified: - * - * ``` - * logger := slog.Default().With("id", systemID) - * parserLogger := logger.WithGroup("parser") - * parseInput(input, parserLogger) - * ``` - * - * When parseInput logs with parserLogger, its keys will be qualified with "parser", - * so even if it uses the common key "id", the log line will have distinct keys. - * - * # Contexts - * - * Some handlers may wish to include information from the [context.Context] that is - * available at the call site. One example of such information - * is the identifier for the current span when tracing is enabled. - * - * The [Logger.Log] and [Logger.LogAttrs] methods take a context as a first - * argument, as do their corresponding top-level functions. - * - * Although the convenience methods on Logger (Info and so on) and the - * corresponding top-level functions do not take a context, the alternatives ending - * in "Context" do. For example, - * - * ``` - * slog.InfoContext(ctx, "message") - * ``` - * - * It is recommended to pass a context to an output method if one is available. - * - * # Attrs and Values - * - * An [Attr] is a key-value pair. The Logger output methods accept Attrs as well as - * alternating keys and values. The statement - * - * ``` - * slog.Info("hello", slog.Int("count", 3)) - * ``` - * - * behaves the same as - * - * ``` - * slog.Info("hello", "count", 3) - * ``` - * - * There are convenience constructors for [Attr] such as [Int], [String], and [Bool] - * for common types, as well as the function [Any] for constructing Attrs of any - * type. - * - * The value part of an Attr is a type called [Value]. - * Like an [any], a Value can hold any Go value, - * but it can represent typical values, including all numbers and strings, - * without an allocation. - * - * For the most efficient log output, use [Logger.LogAttrs]. - * It is similar to [Logger.Log] but accepts only Attrs, not alternating - * keys and values; this allows it, too, to avoid allocation. - * - * The call - * - * ``` - * logger.LogAttrs(ctx, slog.LevelInfo, "hello", slog.Int("count", 3)) - * ``` - * - * is the most efficient way to achieve the same output as - * - * ``` - * slog.InfoContext(ctx, "hello", "count", 3) - * ``` - * - * # Customizing a type's logging behavior - * - * If a type implements the [LogValuer] interface, the [Value] returned from its LogValue - * method is used for logging. You can use this to control how values of the type - * appear in logs. For example, you can redact secret information like passwords, - * or gather a struct's fields in a Group. See the examples under [LogValuer] for - * details. - * - * A LogValue method may return a Value that itself implements [LogValuer]. The [Value.Resolve] - * method handles these cases carefully, avoiding infinite loops and unbounded recursion. - * Handler authors and others may wish to use [Value.Resolve] instead of calling LogValue directly. - * - * # Wrapping output methods - * - * The logger functions use reflection over the call stack to find the file name - * and line number of the logging call within the application. This can produce - * incorrect source information for functions that wrap slog. For instance, if you - * define this function in file mylog.go: - * - * ``` - * func Infof(logger *slog.Logger, format string, args ...any) { - * logger.Info(fmt.Sprintf(format, args...)) - * } - * ``` - * - * and you call it like this in main.go: - * - * ``` - * Infof(slog.Default(), "hello, %s", "world") - * ``` - * - * then slog will report the source file as mylog.go, not main.go. - * - * A correct implementation of Infof will obtain the source location - * (pc) and pass it to NewRecord. - * The Infof function in the package-level example called "wrapping" - * demonstrates how to do this. - * - * # Working with Records - * - * Sometimes a Handler will need to modify a Record - * before passing it on to another Handler or backend. - * A Record contains a mixture of simple public fields (e.g. Time, Level, Message) - * and hidden fields that refer to state (such as attributes) indirectly. This - * means that modifying a simple copy of a Record (e.g. by calling - * [Record.Add] or [Record.AddAttrs] to add attributes) - * may have unexpected effects on the original. - * Before modifying a Record, use [Record.Clone] to - * create a copy that shares no state with the original, - * or create a new Record with [NewRecord] - * and build up its Attrs by traversing the old ones with [Record.Attrs]. - * - * # Performance considerations - * - * If profiling your application demonstrates that logging is taking significant time, - * the following suggestions may help. - * - * If many log lines have a common attribute, use [Logger.With] to create a Logger with - * that attribute. The built-in handlers will format that attribute only once, at the - * call to [Logger.With]. The [Handler] interface is designed to allow that optimization, - * and a well-written Handler should take advantage of it. - * - * The arguments to a log call are always evaluated, even if the log event is discarded. - * If possible, defer computation so that it happens only if the value is actually logged. - * For example, consider the call - * - * ``` - * slog.Info("starting request", "url", r.URL.String()) // may compute String unnecessarily - * ``` - * - * The URL.String method will be called even if the logger discards Info-level events. - * Instead, pass the URL directly: - * - * ``` - * slog.Info("starting request", "url", &r.URL) // calls URL.String only if needed - * ``` - * - * The built-in [TextHandler] will call its String method, but only - * if the log event is enabled. - * Avoiding the call to String also preserves the structure of the underlying value. - * For example [JSONHandler] emits the components of the parsed URL as a JSON object. - * If you want to avoid eagerly paying the cost of the String call - * without causing the handler to potentially inspect the structure of the value, - * wrap the value in a fmt.Stringer implementation that hides its Marshal methods. - * - * You can also use the [LogValuer] interface to avoid unnecessary work in disabled log - * calls. Say you need to log some expensive value: - * - * ``` - * slog.Debug("frobbing", "value", computeExpensiveValue(arg)) - * ``` - * - * Even if this line is disabled, computeExpensiveValue will be called. - * To avoid that, define a type implementing LogValuer: - * - * ``` - * type expensive struct { arg int } - * - * func (e expensive) LogValue() slog.Value { - * return slog.AnyValue(computeExpensiveValue(e.arg)) - * } - * ``` - * - * Then use a value of that type in log calls: - * - * ``` - * slog.Debug("frobbing", "value", expensive{arg}) - * ``` - * - * Now computeExpensiveValue will only be called when the line is enabled. - * - * The built-in handlers acquire a lock before calling [io.Writer.Write] - * to ensure that exactly one [Record] is written at a time in its entirety. - * Although each log record has a timestamp, - * the built-in handlers do not use that time to sort the written records. - * User-defined handlers are responsible for their own locking and sorting. - * - * # Writing a handler - * - * For a guide to writing a custom handler, see https://golang.org/s/slog-handler-guide. - */ -namespace slog { - // @ts-ignore - import loginternal = internal - /** - * A Logger records structured information about each call to its - * Log, Debug, Info, Warn, and Error methods. - * For each call, it creates a [Record] and passes it to a [Handler]. - * - * To create a new Logger, call [New] or a Logger method - * that begins "With". - */ - interface Logger { - } - interface Logger { - /** - * Handler returns l's Handler. - */ - handler(): Handler - } - interface Logger { - /** - * With returns a Logger that includes the given attributes - * in each output operation. Arguments are converted to - * attributes as if by [Logger.Log]. - */ - with(...args: any[]): (Logger) - } - interface Logger { - /** - * WithGroup returns a Logger that starts a group, if name is non-empty. - * The keys of all attributes added to the Logger will be qualified by the given - * name. (How that qualification happens depends on the [Handler.WithGroup] - * method of the Logger's Handler.) - * - * If name is empty, WithGroup returns the receiver. - */ - withGroup(name: string): (Logger) - } - interface Logger { - /** - * Enabled reports whether l emits log records at the given context and level. - */ - enabled(ctx: context.Context, level: Level): boolean - } - interface Logger { - /** - * Log emits a log record with the current time and the given level and message. - * The Record's Attrs consist of the Logger's attributes followed by - * the Attrs specified by args. - * - * The attribute arguments are processed as follows: - * ``` - * - If an argument is an Attr, it is used as is. - * - If an argument is a string and this is not the last argument, - * the following argument is treated as the value and the two are combined - * into an Attr. - * - Otherwise, the argument is treated as a value with key "!BADKEY". - * ``` - */ - log(ctx: context.Context, level: Level, msg: string, ...args: any[]): void - } - interface Logger { - /** - * LogAttrs is a more efficient version of [Logger.Log] that accepts only Attrs. - */ - logAttrs(ctx: context.Context, level: Level, msg: string, ...attrs: Attr[]): void - } - interface Logger { - /** - * Debug logs at [LevelDebug]. - */ - debug(msg: string, ...args: any[]): void - } - interface Logger { - /** - * DebugContext logs at [LevelDebug] with the given context. - */ - debugContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Info logs at [LevelInfo]. - */ - info(msg: string, ...args: any[]): void - } - interface Logger { - /** - * InfoContext logs at [LevelInfo] with the given context. - */ - infoContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Warn logs at [LevelWarn]. - */ - warn(msg: string, ...args: any[]): void - } - interface Logger { - /** - * WarnContext logs at [LevelWarn] with the given context. - */ - warnContext(ctx: context.Context, msg: string, ...args: any[]): void - } - interface Logger { - /** - * Error logs at [LevelError]. - */ - error(msg: string, ...args: any[]): void - } - interface Logger { - /** - * ErrorContext logs at [LevelError] with the given context. - */ - errorContext(ctx: context.Context, msg: string, ...args: any[]): void - } -} - -namespace subscriptions { - /** - * Broker defines a struct for managing subscriptions clients. - */ - interface Broker { - } - interface Broker { - /** - * Clients returns a shallow copy of all registered clients indexed - * with their connection id. - */ - clients(): _TygojaDict - } - interface Broker { - /** - * ChunkedClients splits the current clients into a chunked slice. - */ - chunkedClients(chunkSize: number): Array> - } - interface Broker { - /** - * TotalClients returns the total number of registered clients. - */ - totalClients(): number - } - interface Broker { - /** - * ClientById finds a registered client by its id. - * - * Returns non-nil error when client with clientId is not registered. - */ - clientById(clientId: string): Client - } - interface Broker { - /** - * Register adds a new client to the broker instance. - */ - register(client: Client): void - } - interface Broker { - /** - * Unregister removes a single client by its id and marks it as discarded. - * - * If client with clientId doesn't exist, this method does nothing. - */ - unregister(clientId: string): void - } - /** - * Client is an interface for a generic subscription client. - */ - interface Client { - [key:string]: any; - /** - * Id Returns the unique id of the client. - */ - id(): string - /** - * Channel returns the client's communication channel. - * - * NB! The channel shouldn't be used after calling Discard(). - */ - channel(): undefined - /** - * Subscriptions returns a shallow copy of the client subscriptions matching the prefixes. - * If no prefix is specified, returns all subscriptions. - */ - subscriptions(...prefixes: string[]): _TygojaDict - /** - * Subscribe subscribes the client to the provided subscriptions list. - * - * Each subscription can also have "options" (json serialized SubscriptionOptions) as query parameter. - * - * Example: - * - * ``` - * Subscribe( - * "subscriptionA", - * `subscriptionB?options={"query":{"a":1},"headers":{"x_token":"abc"}}`, - * ) - * ``` - */ - subscribe(...subs: string[]): void - /** - * Unsubscribe unsubscribes the client from the provided subscriptions list. - */ - unsubscribe(...subs: string[]): void - /** - * HasSubscription checks if the client is subscribed to `sub`. - */ - hasSubscription(sub: string): boolean - /** - * Set stores any value to the client's context. - */ - set(key: string, value: any): void - /** - * Unset removes a single value from the client's context. - */ - unset(key: string): void - /** - * Get retrieves the key value from the client's context. - */ - get(key: string): any - /** - * Discard marks the client as "discarded" (and closes its channel), - * meaning that it shouldn't be used anymore for sending new messages. - * - * It is safe to call Discard() multiple times. - */ - discard(): void - /** - * IsDiscarded indicates whether the client has been "discarded" - * and should no longer be used. - */ - isDiscarded(): boolean - /** - * Send sends the specified message to the client's channel (if not discarded). - */ - send(m: Message): void - } - /** - * Message defines a client's channel data. - */ - interface Message { - name: string - data: string|Array - } - interface Message { - /** - * WriteSSE writes the current message in a SSE format into the provided writer. - * - * For example, writing to a router.Event: - * - * ``` - * m := Message{Name: "users/create", Data: []byte{...}} - * m.Write(e.Response, "yourEventId") - * e.Flush() - * ``` - */ - writeSSE(w: io.Writer, eventId: string): void - } -} - -namespace sync { - /** - * A Locker represents an object that can be locked and unlocked. - */ - interface Locker { - [key:string]: any; - lock(): void - unlock(): void - } -} - -namespace io { - /** - * WriteCloser is the interface that groups the basic Write and Close methods. - */ - interface WriteCloser { - [key:string]: any; - } -} - -namespace bufio { - /** - * Reader implements buffering for an io.Reader object. - */ - interface Reader { - } - interface Reader { - /** - * Size returns the size of the underlying buffer in bytes. - */ - size(): number - } - interface Reader { - /** - * Reset discards any buffered data, resets all state, and switches - * the buffered reader to read from r. - * Calling Reset on the zero value of [Reader] initializes the internal buffer - * to the default size. - * Calling b.Reset(b) (that is, resetting a [Reader] to itself) does nothing. - */ - reset(r: io.Reader): void - } - interface Reader { - /** - * Peek returns the next n bytes without advancing the reader. The bytes stop - * being valid at the next read call. If Peek returns fewer than n bytes, it - * also returns an error explaining why the read is short. The error is - * [ErrBufferFull] if n is larger than b's buffer size. - * - * Calling Peek prevents a [Reader.UnreadByte] or [Reader.UnreadRune] call from succeeding - * until the next read operation. - */ - peek(n: number): string|Array - } - interface Reader { - /** - * Discard skips the next n bytes, returning the number of bytes discarded. - * - * If Discard skips fewer than n bytes, it also returns an error. - * If 0 <= n <= b.Buffered(), Discard is guaranteed to succeed without - * reading from the underlying io.Reader. - */ - discard(n: number): number - } - interface Reader { - /** - * Read reads data into p. - * It returns the number of bytes read into p. - * The bytes are taken from at most one Read on the underlying [Reader], - * hence n may be less than len(p). - * To read exactly len(p) bytes, use io.ReadFull(b, p). - * If the underlying [Reader] can return a non-zero count with io.EOF, - * then this Read method can do so as well; see the [io.Reader] docs. - */ - read(p: string|Array): number - } - interface Reader { - /** - * ReadByte reads and returns a single byte. - * If no byte is available, returns an error. - */ - readByte(): number - } - interface Reader { - /** - * UnreadByte unreads the last byte. Only the most recently read byte can be unread. - * - * UnreadByte returns an error if the most recent method called on the - * [Reader] was not a read operation. Notably, [Reader.Peek], [Reader.Discard], and [Reader.WriteTo] are not - * considered read operations. - */ - unreadByte(): void - } - interface Reader { - /** - * ReadRune reads a single UTF-8 encoded Unicode character and returns the - * rune and its size in bytes. If the encoded rune is invalid, it consumes one byte - * and returns unicode.ReplacementChar (U+FFFD) with a size of 1. - */ - readRune(): [number, number] - } - interface Reader { - /** - * UnreadRune unreads the last rune. If the most recent method called on - * the [Reader] was not a [Reader.ReadRune], [Reader.UnreadRune] returns an error. (In this - * regard it is stricter than [Reader.UnreadByte], which will unread the last byte - * from any read operation.) - */ - unreadRune(): void - } - interface Reader { - /** - * Buffered returns the number of bytes that can be read from the current buffer. - */ - buffered(): number - } - interface Reader { - /** - * ReadSlice reads until the first occurrence of delim in the input, - * returning a slice pointing at the bytes in the buffer. - * The bytes stop being valid at the next read. - * If ReadSlice encounters an error before finding a delimiter, - * it returns all the data in the buffer and the error itself (often io.EOF). - * ReadSlice fails with error [ErrBufferFull] if the buffer fills without a delim. - * Because the data returned from ReadSlice will be overwritten - * by the next I/O operation, most clients should use - * [Reader.ReadBytes] or ReadString instead. - * ReadSlice returns err != nil if and only if line does not end in delim. - */ - readSlice(delim: number): string|Array - } - interface Reader { - /** - * ReadLine is a low-level line-reading primitive. Most callers should use - * [Reader.ReadBytes]('\n') or [Reader.ReadString]('\n') instead or use a [Scanner]. - * - * ReadLine tries to return a single line, not including the end-of-line bytes. - * If the line was too long for the buffer then isPrefix is set and the - * beginning of the line is returned. The rest of the line will be returned - * from future calls. isPrefix will be false when returning the last fragment - * of the line. The returned buffer is only valid until the next call to - * ReadLine. ReadLine either returns a non-nil line or it returns an error, - * never both. - * - * The text returned from ReadLine does not include the line end ("\r\n" or "\n"). - * No indication or error is given if the input ends without a final line end. - * Calling [Reader.UnreadByte] after ReadLine will always unread the last byte read - * (possibly a character belonging to the line end) even if that byte is not - * part of the line returned by ReadLine. - */ - readLine(): [string|Array, boolean] - } - interface Reader { - /** - * ReadBytes reads until the first occurrence of delim in the input, - * returning a slice containing the data up to and including the delimiter. - * If ReadBytes encounters an error before finding a delimiter, - * it returns the data read before the error and the error itself (often io.EOF). - * ReadBytes returns err != nil if and only if the returned data does not end in - * delim. - * For simple uses, a Scanner may be more convenient. - */ - readBytes(delim: number): string|Array - } - interface Reader { - /** - * ReadString reads until the first occurrence of delim in the input, - * returning a string containing the data up to and including the delimiter. - * If ReadString encounters an error before finding a delimiter, - * it returns the data read before the error and the error itself (often io.EOF). - * ReadString returns err != nil if and only if the returned data does not end in - * delim. - * For simple uses, a Scanner may be more convenient. - */ - readString(delim: number): string - } - interface Reader { - /** - * WriteTo implements io.WriterTo. - * This may make multiple calls to the [Reader.Read] method of the underlying [Reader]. - * If the underlying reader supports the [Reader.WriteTo] method, - * this calls the underlying [Reader.WriteTo] without buffering. - */ - writeTo(w: io.Writer): number - } - /** - * Writer implements buffering for an [io.Writer] object. - * If an error occurs writing to a [Writer], no more data will be - * accepted and all subsequent writes, and [Writer.Flush], will return the error. - * After all data has been written, the client should call the - * [Writer.Flush] method to guarantee all data has been forwarded to - * the underlying [io.Writer]. - */ - interface Writer { - } - interface Writer { - /** - * Size returns the size of the underlying buffer in bytes. - */ - size(): number - } - interface Writer { - /** - * Reset discards any unflushed buffered data, clears any error, and - * resets b to write its output to w. - * Calling Reset on the zero value of [Writer] initializes the internal buffer - * to the default size. - * Calling w.Reset(w) (that is, resetting a [Writer] to itself) does nothing. - */ - reset(w: io.Writer): void - } - interface Writer { - /** - * Flush writes any buffered data to the underlying [io.Writer]. - */ - flush(): void - } - interface Writer { - /** - * Available returns how many bytes are unused in the buffer. - */ - available(): number - } - interface Writer { - /** - * AvailableBuffer returns an empty buffer with b.Available() capacity. - * This buffer is intended to be appended to and - * passed to an immediately succeeding [Writer.Write] call. - * The buffer is only valid until the next write operation on b. - */ - availableBuffer(): string|Array - } - interface Writer { - /** - * Buffered returns the number of bytes that have been written into the current buffer. - */ - buffered(): number - } - interface Writer { - /** - * Write writes the contents of p into the buffer. - * It returns the number of bytes written. - * If nn < len(p), it also returns an error explaining - * why the write is short. - */ - write(p: string|Array): number - } - interface Writer { - /** - * WriteByte writes a single byte. - */ - writeByte(c: number): void - } - interface Writer { - /** - * WriteRune writes a single Unicode code point, returning - * the number of bytes written and any error. - */ - writeRune(r: number): number - } - interface Writer { - /** - * WriteString writes a string. - * It returns the number of bytes written. - * If the count is less than len(s), it also returns an error explaining - * why the write is short. - */ - writeString(s: string): number - } - interface Writer { - /** - * ReadFrom implements [io.ReaderFrom]. If the underlying writer - * supports the ReadFrom method, this calls the underlying ReadFrom. - * If there is buffered data and an underlying ReadFrom, this fills - * the buffer and writes it before calling ReadFrom. - */ - readFrom(r: io.Reader): number - } -} - -namespace syscall { - /** - * SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux. - * See user_namespaces(7). - * - * Note that User Namespaces are not available on a number of popular Linux - * versions (due to security issues), or are available but subject to AppArmor - * restrictions like in Ubuntu 24.04. - */ - interface SysProcIDMap { - containerID: number // Container ID. - hostID: number // Host ID. - size: number // Size. - } - // @ts-ignore - import errorspkg = errors - /** - * Credential holds user and group identities to be assumed - * by a child process started by [StartProcess]. - */ - interface Credential { - uid: number // User ID. - gid: number // Group ID. - groups: Array // Supplementary group IDs. - noSetGroups: boolean // If true, don't set supplementary groups - } - // @ts-ignore - import runtimesyscall = syscall - /** - * A Signal is a number describing a process signal. - * It implements the [os.Signal] interface. - */ - interface Signal extends Number{} - interface Signal { - signal(): void - } - interface Signal { - string(): string - } -} - -namespace time { - /** - * A Month specifies a month of the year (January = 1, ...). - */ - interface Month extends Number{} - interface Month { - /** - * String returns the English name of the month ("January", "February", ...). - */ - string(): string - } - /** - * A Weekday specifies a day of the week (Sunday = 0, ...). - */ - interface Weekday extends Number{} - interface Weekday { - /** - * String returns the English name of the day ("Sunday", "Monday", ...). - */ - string(): string - } - /** - * A Location maps time instants to the zone in use at that time. - * Typically, the Location represents the collection of time offsets - * in use in a geographical area. For many Locations the time offset varies - * depending on whether daylight savings time is in use at the time instant. - * - * Location is used to provide a time zone in a printed Time value and for - * calculations involving intervals that may cross daylight savings time - * boundaries. - */ - interface Location { - } - interface Location { - /** - * String returns a descriptive name for the time zone information, - * corresponding to the name argument to [LoadLocation] or [FixedZone]. - */ - string(): string - } -} - -namespace fs { -} - -namespace context { -} - -namespace net { - /** - * Addr represents a network end point address. - * - * The two methods [Addr.Network] and [Addr.String] conventionally return strings - * that can be passed as the arguments to [Dial], but the exact form - * and meaning of the strings is up to the implementation. - */ - interface Addr { - [key:string]: any; - network(): string // name of the network (for example, "tcp", "udp") - string(): string // string form of address (for example, "192.0.2.1:25", "[2001:db8::1]:80") - } -} - -/** - * Package textproto implements generic support for text-based request/response - * protocols in the style of HTTP, NNTP, and SMTP. - * - * The package provides: - * - * [Error], which represents a numeric error response from - * a server. - * - * [Pipeline], to manage pipelined requests and responses - * in a client. - * - * [Reader], to read numeric response code lines, - * key: value headers, lines wrapped with leading spaces - * on continuation lines, and whole text blocks ending - * with a dot on a line by itself. - * - * [Writer], to write dot-encoded text blocks. - * - * [Conn], a convenient packaging of [Reader], [Writer], and [Pipeline] for use - * with a single network connection. - */ -namespace textproto { - /** - * A MIMEHeader represents a MIME-style header mapping - * keys to sets of values. - */ - interface MIMEHeader extends _TygojaDict{} - interface MIMEHeader { - /** - * Add adds the key, value pair to the header. - * It appends to any existing values associated with key. - */ - add(key: string, value: string): void - } - interface MIMEHeader { - /** - * Set sets the header entries associated with key to - * the single element value. It replaces any existing - * values associated with key. - */ - set(key: string, value: string): void - } - interface MIMEHeader { - /** - * Get gets the first value associated with the given key. - * It is case insensitive; [CanonicalMIMEHeaderKey] is used - * to canonicalize the provided key. - * If there are no values associated with the key, Get returns "". - * To use non-canonical keys, access the map directly. - */ - get(key: string): string - } - interface MIMEHeader { - /** - * Values returns all values associated with the given key. - * It is case insensitive; [CanonicalMIMEHeaderKey] is - * used to canonicalize the provided key. To use non-canonical - * keys, access the map directly. - * The returned slice is not a copy. - */ - values(key: string): Array - } - interface MIMEHeader { - /** - * Del deletes the values associated with key. - */ - del(key: string): void - } -} - -namespace multipart { - interface Reader { - /** - * ReadForm parses an entire multipart message whose parts have - * a Content-Disposition of "form-data". - * It stores up to maxMemory bytes + 10MB (reserved for non-file parts) - * in memory. File parts which can't be stored in memory will be stored on - * disk in temporary files. - * It returns [ErrMessageTooLarge] if all non-file parts can't be stored in - * memory. - */ - readForm(maxMemory: number): (Form) - } - /** - * Form is a parsed multipart form. - * Its File parts are stored either in memory or on disk, - * and are accessible via the [*FileHeader]'s Open method. - * Its Value parts are stored as strings. - * Both are keyed by field name. - */ - interface Form { - value: _TygojaDict - file: _TygojaDict - } - interface Form { - /** - * RemoveAll removes any temporary files associated with a [Form]. - */ - removeAll(): void - } - /** - * File is an interface to access the file part of a multipart message. - * Its contents may be either stored in memory or on disk. - * If stored on disk, the File's underlying concrete type will be an *os.File. - */ - interface File { - [key:string]: any; - } - /** - * Reader is an iterator over parts in a MIME multipart body. - * Reader's underlying parser consumes its input as needed. Seeking - * isn't supported. - */ - interface Reader { - } - interface Reader { - /** - * NextPart returns the next part in the multipart or an error. - * When there are no more parts, the error [io.EOF] is returned. - * - * As a special case, if the "Content-Transfer-Encoding" header - * has a value of "quoted-printable", that header is instead - * hidden and the body is transparently decoded during Read calls. - */ - nextPart(): (Part) - } - interface Reader { - /** - * NextRawPart returns the next part in the multipart or an error. - * When there are no more parts, the error [io.EOF] is returned. - * - * Unlike [Reader.NextPart], it does not have special handling for - * "Content-Transfer-Encoding: quoted-printable". - */ - nextRawPart(): (Part) - } -} - -namespace sql { - /** - * IsolationLevel is the transaction isolation level used in [TxOptions]. - */ - interface IsolationLevel extends Number{} - interface IsolationLevel { - /** - * String returns the name of the transaction isolation level. - */ - string(): string - } - /** - * DBStats contains database statistics. - */ - interface DBStats { - maxOpenConnections: number // Maximum number of open connections to the database. - /** - * Pool Status - */ - openConnections: number // The number of established connections both in use and idle. - inUse: number // The number of connections currently in use. - idle: number // The number of idle connections. - /** - * Counters - */ - waitCount: number // The total number of connections waited for. - waitDuration: time.Duration // The total time blocked waiting for a new connection. - maxIdleClosed: number // The total number of connections closed due to SetMaxIdleConns. - maxIdleTimeClosed: number // The total number of connections closed due to SetConnMaxIdleTime. - maxLifetimeClosed: number // The total number of connections closed due to SetConnMaxLifetime. - } - /** - * Conn represents a single database connection rather than a pool of database - * connections. Prefer running queries from [DB] unless there is a specific - * need for a continuous single database connection. - * - * A Conn must call [Conn.Close] to return the connection to the database pool - * and may do so concurrently with a running query. - * - * After a call to [Conn.Close], all operations on the - * connection fail with [ErrConnDone]. - */ - interface Conn { - } - interface Conn { - /** - * PingContext verifies the connection to the database is still alive. - */ - pingContext(ctx: context.Context): void - } - interface Conn { - /** - * ExecContext executes a query without returning any rows. - * The args are for any placeholder parameters in the query. - */ - execContext(ctx: context.Context, query: string, ...args: any[]): Result - } - interface Conn { - /** - * QueryContext executes a query that returns rows, typically a SELECT. - * The args are for any placeholder parameters in the query. - */ - queryContext(ctx: context.Context, query: string, ...args: any[]): (Rows) - } - interface Conn { - /** - * QueryRowContext executes a query that is expected to return at most one row. - * QueryRowContext always returns a non-nil value. Errors are deferred until - * the [*Row.Scan] method is called. - * If the query selects no rows, the [*Row.Scan] will return [ErrNoRows]. - * Otherwise, the [*Row.Scan] scans the first selected row and discards - * the rest. - */ - queryRowContext(ctx: context.Context, query: string, ...args: any[]): (Row) - } - interface Conn { - /** - * PrepareContext creates a prepared statement for later queries or executions. - * Multiple queries or executions may be run concurrently from the - * returned statement. - * The caller must call the statement's [*Stmt.Close] method - * when the statement is no longer needed. - * - * The provided context is used for the preparation of the statement, not for the - * execution of the statement. - */ - prepareContext(ctx: context.Context, query: string): (Stmt) - } - interface Conn { - /** - * Raw executes f exposing the underlying driver connection for the - * duration of f. The driverConn must not be used outside of f. - * - * Once f returns and err is not [driver.ErrBadConn], the [Conn] will continue to be usable - * until [Conn.Close] is called. - */ - raw(f: (driverConn: any) => void): void - } - interface Conn { - /** - * BeginTx starts a transaction. - * - * The provided context is used until the transaction is committed or rolled back. - * If the context is canceled, the sql package will roll back - * the transaction. [Tx.Commit] will return an error if the context provided to - * BeginTx is canceled. - * - * The provided [TxOptions] is optional and may be nil if defaults should be used. - * If a non-default isolation level is used that the driver doesn't support, - * an error will be returned. - */ - beginTx(ctx: context.Context, opts: TxOptions): (Tx) - } - interface Conn { - /** - * Close returns the connection to the connection pool. - * All operations after a Close will return with [ErrConnDone]. - * Close is safe to call concurrently with other operations and will - * block until all other operations finish. It may be useful to first - * cancel any used context and then call close directly after. - */ - close(): void - } - /** - * ColumnType contains the name and type of a column. - */ - interface ColumnType { - } - interface ColumnType { - /** - * Name returns the name or alias of the column. - */ - name(): string - } - interface ColumnType { - /** - * Length returns the column type length for variable length column types such - * as text and binary field types. If the type length is unbounded the value will - * be [math.MaxInt64] (any database limits will still apply). - * If the column type is not variable length, such as an int, or if not supported - * by the driver ok is false. - */ - length(): [number, boolean] - } - interface ColumnType { - /** - * DecimalSize returns the scale and precision of a decimal type. - * If not applicable or if not supported ok is false. - */ - decimalSize(): [number, number, boolean] - } - interface ColumnType { - /** - * ScanType returns a Go type suitable for scanning into using [Rows.Scan]. - * If a driver does not support this property ScanType will return - * the type of an empty interface. - */ - scanType(): any - } - interface ColumnType { - /** - * Nullable reports whether the column may be null. - * If a driver does not support this property ok will be false. - */ - nullable(): [boolean, boolean] - } - interface ColumnType { - /** - * DatabaseTypeName returns the database system name of the column type. If an empty - * string is returned, then the driver type name is not supported. - * Consult your driver documentation for a list of driver data types. [ColumnType.Length] specifiers - * are not included. - * Common type names include "VARCHAR", "TEXT", "NVARCHAR", "DECIMAL", "BOOL", - * "INT", and "BIGINT". - */ - databaseTypeName(): string - } - /** - * Row is the result of calling [DB.QueryRow] to select a single row. - */ - interface Row { - } - interface Row { - /** - * Scan copies the columns from the matched row into the values - * pointed at by dest. See the documentation on [Rows.Scan] for details. - * If more than one row matches the query, - * Scan uses the first row and discards the rest. If no row matches - * the query, Scan returns [ErrNoRows]. - */ - scan(...dest: any[]): void - } - interface Row { - /** - * Err provides a way for wrapping packages to check for - * query errors without calling [Row.Scan]. - * Err returns the error, if any, that was encountered while running the query. - * If this error is not nil, this error will also be returned from [Row.Scan]. - */ - err(): void - } -} - -/** - * Package url parses URLs and implements query escaping. - */ -namespace url { - /** - * A URL represents a parsed URL (technically, a URI reference). - * - * The general form represented is: - * - * ``` - * [scheme:][//[userinfo@]host][/]path[?query][#fragment] - * ``` - * - * URLs that do not start with a slash after the scheme are interpreted as: - * - * ``` - * scheme:opaque[?query][#fragment] - * ``` - * - * The Host field contains the host and port subcomponents of the URL. - * When the port is present, it is separated from the host with a colon. - * When the host is an IPv6 address, it must be enclosed in square brackets: - * "[fe80::1]:80". The [net.JoinHostPort] function combines a host and port - * into a string suitable for the Host field, adding square brackets to - * the host when necessary. - * - * Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/. - * A consequence is that it is impossible to tell which slashes in the Path were - * slashes in the raw URL and which were %2f. This distinction is rarely important, - * but when it is, the code should use the [URL.EscapedPath] method, which preserves - * the original encoding of Path. - * - * The RawPath field is an optional field which is only set when the default - * encoding of Path is different from the escaped path. See the EscapedPath method - * for more details. - * - * URL's String method uses the EscapedPath method to obtain the path. - */ - interface URL { - scheme: string - opaque: string // encoded opaque data - user?: Userinfo // username and password information - host: string // host or host:port (see Hostname and Port methods) - path: string // path (relative paths may omit leading slash) - rawPath: string // encoded path hint (see EscapedPath method) - omitHost: boolean // do not emit empty host (authority) - forceQuery: boolean // append a query ('?') even if RawQuery is empty - rawQuery: string // encoded query values, without '?' - fragment: string // fragment for references, without '#' - rawFragment: string // encoded fragment hint (see EscapedFragment method) - } - interface URL { - /** - * EscapedPath returns the escaped form of u.Path. - * In general there are multiple possible escaped forms of any path. - * EscapedPath returns u.RawPath when it is a valid escaping of u.Path. - * Otherwise EscapedPath ignores u.RawPath and computes an escaped - * form on its own. - * The [URL.String] and [URL.RequestURI] methods use EscapedPath to construct - * their results. - * In general, code should call EscapedPath instead of - * reading u.RawPath directly. - */ - escapedPath(): string - } - interface URL { - /** - * EscapedFragment returns the escaped form of u.Fragment. - * In general there are multiple possible escaped forms of any fragment. - * EscapedFragment returns u.RawFragment when it is a valid escaping of u.Fragment. - * Otherwise EscapedFragment ignores u.RawFragment and computes an escaped - * form on its own. - * The [URL.String] method uses EscapedFragment to construct its result. - * In general, code should call EscapedFragment instead of - * reading u.RawFragment directly. - */ - escapedFragment(): string - } - interface URL { - /** - * String reassembles the [URL] into a valid URL string. - * The general form of the result is one of: - * - * ``` - * scheme:opaque?query#fragment - * scheme://userinfo@host/path?query#fragment - * ``` - * - * If u.Opaque is non-empty, String uses the first form; - * otherwise it uses the second form. - * Any non-ASCII characters in host are escaped. - * To obtain the path, String uses u.EscapedPath(). - * - * In the second form, the following rules apply: - * ``` - * - if u.Scheme is empty, scheme: is omitted. - * - if u.User is nil, userinfo@ is omitted. - * - if u.Host is empty, host/ is omitted. - * - if u.Scheme and u.Host are empty and u.User is nil, - * the entire scheme://userinfo@host/ is omitted. - * - if u.Host is non-empty and u.Path begins with a /, - * the form host/path does not add its own /. - * - if u.RawQuery is empty, ?query is omitted. - * - if u.Fragment is empty, #fragment is omitted. - * ``` - */ - string(): string - } - interface URL { - /** - * Redacted is like [URL.String] but replaces any password with "xxxxx". - * Only the password in u.User is redacted. - */ - redacted(): string - } - /** - * Values maps a string key to a list of values. - * It is typically used for query parameters and form values. - * Unlike in the http.Header map, the keys in a Values map - * are case-sensitive. - */ - interface Values extends _TygojaDict{} - interface Values { - /** - * Get gets the first value associated with the given key. - * If there are no values associated with the key, Get returns - * the empty string. To access multiple values, use the map - * directly. - */ - get(key: string): string - } - interface Values { - /** - * Set sets the key to value. It replaces any existing - * values. - */ - set(key: string, value: string): void - } - interface Values { - /** - * Add adds the value to key. It appends to any existing - * values associated with key. - */ - add(key: string, value: string): void - } - interface Values { - /** - * Del deletes the values associated with key. - */ - del(key: string): void - } - interface Values { - /** - * Has checks whether a given key is set. - */ - has(key: string): boolean - } - interface Values { - /** - * Encode encodes the values into “URL encoded” form - * ("bar=baz&foo=quux") sorted by key. - */ - encode(): string - } - interface URL { - /** - * IsAbs reports whether the [URL] is absolute. - * Absolute means that it has a non-empty scheme. - */ - isAbs(): boolean - } - interface URL { - /** - * Parse parses a [URL] in the context of the receiver. The provided URL - * may be relative or absolute. Parse returns nil, err on parse - * failure, otherwise its return value is the same as [URL.ResolveReference]. - */ - parse(ref: string): (URL) - } - interface URL { - /** - * ResolveReference resolves a URI reference to an absolute URI from - * an absolute base URI u, per RFC 3986 Section 5.2. The URI reference - * may be relative or absolute. ResolveReference always returns a new - * [URL] instance, even if the returned URL is identical to either the - * base or reference. If ref is an absolute URL, then ResolveReference - * ignores base and returns a copy of ref. - */ - resolveReference(ref: URL): (URL) - } - interface URL { - /** - * Query parses RawQuery and returns the corresponding values. - * It silently discards malformed value pairs. - * To check errors use [ParseQuery]. - */ - query(): Values - } - interface URL { - /** - * RequestURI returns the encoded path?query or opaque?query - * string that would be used in an HTTP request for u. - */ - requestURI(): string - } - interface URL { - /** - * Hostname returns u.Host, stripping any valid port number if present. - * - * If the result is enclosed in square brackets, as literal IPv6 addresses are, - * the square brackets are removed from the result. - */ - hostname(): string - } - interface URL { - /** - * Port returns the port part of u.Host, without the leading colon. - * - * If u.Host doesn't contain a valid numeric port, Port returns an empty string. - */ - port(): string - } - interface URL { - marshalBinary(): string|Array - } - interface URL { - unmarshalBinary(text: string|Array): void - } - interface URL { - /** - * JoinPath returns a new [URL] with the provided path elements joined to - * any existing path and the resulting path cleaned of any ./ or ../ elements. - * Any sequences of multiple / characters will be reduced to a single /. - */ - joinPath(...elem: string[]): (URL) - } -} - -namespace http { - /** - * A Cookie represents an HTTP cookie as sent in the Set-Cookie header of an - * HTTP response or the Cookie header of an HTTP request. - * - * See https://tools.ietf.org/html/rfc6265 for details. - */ - interface Cookie { - name: string - value: string - quoted: boolean // indicates whether the Value was originally quoted - path: string // optional - domain: string // optional - expires: time.Time // optional - rawExpires: string // for reading cookies only - /** - * MaxAge=0 means no 'Max-Age' attribute specified. - * MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0' - * MaxAge>0 means Max-Age attribute present and given in seconds - */ - maxAge: number - secure: boolean - httpOnly: boolean - sameSite: SameSite - partitioned: boolean - raw: string - unparsed: Array // Raw text of unparsed attribute-value pairs - } - interface Cookie { - /** - * String returns the serialization of the cookie for use in a [Cookie] - * header (if only Name and Value are set) or a Set-Cookie response - * header (if other fields are set). - * If c is nil or c.Name is invalid, the empty string is returned. - */ - string(): string - } - interface Cookie { - /** - * Valid reports whether the cookie is valid. - */ - valid(): void - } - // @ts-ignore - import mathrand = rand - /** - * A Header represents the key-value pairs in an HTTP header. - * - * The keys should be in canonical form, as returned by - * [CanonicalHeaderKey]. - */ - interface Header extends _TygojaDict{} - interface Header { - /** - * Add adds the key, value pair to the header. - * It appends to any existing values associated with key. - * The key is case insensitive; it is canonicalized by - * [CanonicalHeaderKey]. - */ - add(key: string, value: string): void - } - interface Header { - /** - * Set sets the header entries associated with key to the - * single element value. It replaces any existing values - * associated with key. The key is case insensitive; it is - * canonicalized by [textproto.CanonicalMIMEHeaderKey]. - * To use non-canonical keys, assign to the map directly. - */ - set(key: string, value: string): void - } - interface Header { - /** - * Get gets the first value associated with the given key. If - * there are no values associated with the key, Get returns "". - * It is case insensitive; [textproto.CanonicalMIMEHeaderKey] is - * used to canonicalize the provided key. Get assumes that all - * keys are stored in canonical form. To use non-canonical keys, - * access the map directly. - */ - get(key: string): string - } - interface Header { - /** - * Values returns all values associated with the given key. - * It is case insensitive; [textproto.CanonicalMIMEHeaderKey] is - * used to canonicalize the provided key. To use non-canonical - * keys, access the map directly. - * The returned slice is not a copy. - */ - values(key: string): Array - } - interface Header { - /** - * Del deletes the values associated with key. - * The key is case insensitive; it is canonicalized by - * [CanonicalHeaderKey]. - */ - del(key: string): void - } - interface Header { - /** - * Write writes a header in wire format. - */ - write(w: io.Writer): void - } - interface Header { - /** - * Clone returns a copy of h or nil if h is nil. - */ - clone(): Header - } - interface Header { - /** - * WriteSubset writes a header in wire format. - * If exclude is not nil, keys where exclude[key] == true are not written. - * Keys are not canonicalized before checking the exclude map. - */ - writeSubset(w: io.Writer, exclude: _TygojaDict): void - } - // @ts-ignore - import urlpkg = url - /** - * Response represents the response from an HTTP request. - * - * The [Client] and [Transport] return Responses from servers once - * the response headers have been received. The response body - * is streamed on demand as the Body field is read. - */ - interface Response { - status: string // e.g. "200 OK" - statusCode: number // e.g. 200 - proto: string // e.g. "HTTP/1.0" - protoMajor: number // e.g. 1 - protoMinor: number // e.g. 0 - /** - * Header maps header keys to values. If the response had multiple - * headers with the same key, they may be concatenated, with comma - * delimiters. (RFC 7230, section 3.2.2 requires that multiple headers - * be semantically equivalent to a comma-delimited sequence.) When - * Header values are duplicated by other fields in this struct (e.g., - * ContentLength, TransferEncoding, Trailer), the field values are - * authoritative. - * - * Keys in the map are canonicalized (see CanonicalHeaderKey). - */ - header: Header - /** - * Body represents the response body. - * - * The response body is streamed on demand as the Body field - * is read. If the network connection fails or the server - * terminates the response, Body.Read calls return an error. - * - * The http Client and Transport guarantee that Body is always - * non-nil, even on responses without a body or responses with - * a zero-length body. It is the caller's responsibility to - * close Body. The default HTTP client's Transport may not - * reuse HTTP/1.x "keep-alive" TCP connections if the Body is - * not read to completion and closed. - * - * The Body is automatically dechunked if the server replied - * with a "chunked" Transfer-Encoding. - * - * As of Go 1.12, the Body will also implement io.Writer - * on a successful "101 Switching Protocols" response, - * as used by WebSockets and HTTP/2's "h2c" mode. - */ - body: io.ReadCloser - /** - * ContentLength records the length of the associated content. The - * value -1 indicates that the length is unknown. Unless Request.Method - * is "HEAD", values >= 0 indicate that the given number of bytes may - * be read from Body. - */ - contentLength: number - /** - * Contains transfer encodings from outer-most to inner-most. Value is - * nil, means that "identity" encoding is used. - */ - transferEncoding: Array - /** - * Close records whether the header directed that the connection be - * closed after reading Body. The value is advice for clients: neither - * ReadResponse nor Response.Write ever closes a connection. - */ - close: boolean - /** - * Uncompressed reports whether the response was sent compressed but - * was decompressed by the http package. When true, reading from - * Body yields the uncompressed content instead of the compressed - * content actually set from the server, ContentLength is set to -1, - * and the "Content-Length" and "Content-Encoding" fields are deleted - * from the responseHeader. To get the original response from - * the server, set Transport.DisableCompression to true. - */ - uncompressed: boolean - /** - * Trailer maps trailer keys to values in the same - * format as Header. - * - * The Trailer initially contains only nil values, one for - * each key specified in the server's "Trailer" header - * value. Those values are not added to Header. - * - * Trailer must not be accessed concurrently with Read calls - * on the Body. - * - * After Body.Read has returned io.EOF, Trailer will contain - * any trailer values sent by the server. - */ - trailer: Header - /** - * Request is the request that was sent to obtain this Response. - * Request's Body is nil (having already been consumed). - * This is only populated for Client requests. - */ - request?: Request - /** - * TLS contains information about the TLS connection on which the - * response was received. It is nil for unencrypted responses. - * The pointer is shared between responses and should not be - * modified. - */ - tls?: any - } - interface Response { - /** - * Cookies parses and returns the cookies set in the Set-Cookie headers. - */ - cookies(): Array<(Cookie | undefined)> - } - interface Response { - /** - * Location returns the URL of the response's "Location" header, - * if present. Relative redirects are resolved relative to - * [Response.Request]. [ErrNoLocation] is returned if no - * Location header is present. - */ - location(): (url.URL) - } - interface Response { - /** - * ProtoAtLeast reports whether the HTTP protocol used - * in the response is at least major.minor. - */ - protoAtLeast(major: number, minor: number): boolean - } - interface Response { - /** - * Write writes r to w in the HTTP/1.x server response format, - * including the status line, headers, body, and optional trailer. - * - * This method consults the following fields of the response r: - * - * ``` - * StatusCode - * ProtoMajor - * ProtoMinor - * Request.Method - * TransferEncoding - * Trailer - * Body - * ContentLength - * Header, values for non-canonical keys will have unpredictable behavior - * ``` - * - * The Response Body is closed after it is sent. - */ - write(w: io.Writer): void - } - /** - * A ConnState represents the state of a client connection to a server. - * It's used by the optional [Server.ConnState] hook. - */ - interface ConnState extends Number{} - interface ConnState { - string(): string - } -} - -namespace store { -} - -namespace jwt { - /** - * NumericDate represents a JSON numeric date value, as referenced at - * https://datatracker.ietf.org/doc/html/rfc7519#section-2. - */ - type _secYAvb = time.Time - interface NumericDate extends _secYAvb { - } - interface NumericDate { - /** - * MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch - * represented in NumericDate to a byte array, using the precision specified in TimePrecision. - */ - marshalJSON(): string|Array - } - interface NumericDate { - /** - * UnmarshalJSON is an implementation of the json.RawMessage interface and - * deserializes a [NumericDate] from a JSON representation, i.e. a - * [json.Number]. This number represents an UNIX epoch with either integer or - * non-integer seconds. - */ - unmarshalJSON(b: string|Array): void - } - /** - * ClaimStrings is basically just a slice of strings, but it can be either - * serialized from a string array or just a string. This type is necessary, - * since the "aud" claim can either be a single string or an array. - */ - interface ClaimStrings extends Array{} - interface ClaimStrings { - unmarshalJSON(data: string|Array): void - } - interface ClaimStrings { - marshalJSON(): string|Array - } -} - -namespace hook { - /** - * wrapped local Hook embedded struct to limit the public API surface. - */ - type _sNBbKuL = Hook - interface mainHook extends _sNBbKuL { - } -} - -namespace types { -} - -namespace search { -} - -namespace router { - // @ts-ignore - import validation = ozzo_validation - /** - * RouterGroup represents a collection of routes and other sub groups - * that share common pattern prefix and middlewares. - */ - interface RouterGroup { - prefix: string - middlewares: Array<(hook.Handler | undefined)> - } -} - -namespace slog { - /** - * An Attr is a key-value pair. - */ - interface Attr { - key: string - value: Value - } - interface Attr { - /** - * Equal reports whether a and b have equal keys and values. - */ - equal(b: Attr): boolean - } - interface Attr { - string(): string - } - /** - * A Handler handles log records produced by a Logger. - * - * A typical handler may print log records to standard error, - * or write them to a file or database, or perhaps augment them - * with additional attributes and pass them on to another handler. - * - * Any of the Handler's methods may be called concurrently with itself - * or with other methods. It is the responsibility of the Handler to - * manage this concurrency. - * - * Users of the slog package should not invoke Handler methods directly. - * They should use the methods of [Logger] instead. - */ - interface Handler { - [key:string]: any; - /** - * Enabled reports whether the handler handles records at the given level. - * The handler ignores records whose level is lower. - * It is called early, before any arguments are processed, - * to save effort if the log event should be discarded. - * If called from a Logger method, the first argument is the context - * passed to that method, or context.Background() if nil was passed - * or the method does not take a context. - * The context is passed so Enabled can use its values - * to make a decision. - */ - enabled(_arg0: context.Context, _arg1: Level): boolean - /** - * Handle handles the Record. - * It will only be called when Enabled returns true. - * The Context argument is as for Enabled. - * It is present solely to provide Handlers access to the context's values. - * Canceling the context should not affect record processing. - * (Among other things, log messages may be necessary to debug a - * cancellation-related problem.) - * - * Handle methods that produce output should observe the following rules: - * ``` - * - If r.Time is the zero time, ignore the time. - * - If r.PC is zero, ignore it. - * - Attr's values should be resolved. - * - If an Attr's key and value are both the zero value, ignore the Attr. - * This can be tested with attr.Equal(Attr{}). - * - If a group's key is empty, inline the group's Attrs. - * - If a group has no Attrs (even if it has a non-empty key), - * ignore it. - * ``` - */ - handle(_arg0: context.Context, _arg1: Record): void - /** - * WithAttrs returns a new Handler whose attributes consist of - * both the receiver's attributes and the arguments. - * The Handler owns the slice: it may retain, modify or discard it. - */ - withAttrs(attrs: Array): Handler - /** - * WithGroup returns a new Handler with the given group appended to - * the receiver's existing groups. - * The keys of all subsequent attributes, whether added by With or in a - * Record, should be qualified by the sequence of group names. - * - * How this qualification happens is up to the Handler, so long as - * this Handler's attribute keys differ from those of another Handler - * with a different sequence of group names. - * - * A Handler should treat WithGroup as starting a Group of Attrs that ends - * at the end of the log event. That is, - * - * ``` - * logger.WithGroup("s").LogAttrs(ctx, level, msg, slog.Int("a", 1), slog.Int("b", 2)) - * ``` - * - * should behave like - * - * ``` - * logger.LogAttrs(ctx, level, msg, slog.Group("s", slog.Int("a", 1), slog.Int("b", 2))) - * ``` - * - * If the name is empty, WithGroup returns the receiver. - */ - withGroup(name: string): Handler - } - /** - * A Level is the importance or severity of a log event. - * The higher the level, the more important or severe the event. - */ - interface Level extends Number{} - interface Level { - /** - * String returns a name for the level. - * If the level has a name, then that name - * in uppercase is returned. - * If the level is between named values, then - * an integer is appended to the uppercased name. - * Examples: - * - * ``` - * LevelWarn.String() => "WARN" - * (LevelInfo+2).String() => "INFO+2" - * ``` - */ - string(): string - } - interface Level { - /** - * MarshalJSON implements [encoding/json.Marshaler] - * by quoting the output of [Level.String]. - */ - marshalJSON(): string|Array - } - interface Level { - /** - * UnmarshalJSON implements [encoding/json.Unmarshaler] - * It accepts any string produced by [Level.MarshalJSON], - * ignoring case. - * It also accepts numeric offsets that would result in a different string on - * output. For example, "Error-8" would marshal as "INFO". - */ - unmarshalJSON(data: string|Array): void - } - interface Level { - /** - * MarshalText implements [encoding.TextMarshaler] - * by calling [Level.String]. - */ - marshalText(): string|Array - } - interface Level { - /** - * UnmarshalText implements [encoding.TextUnmarshaler]. - * It accepts any string produced by [Level.MarshalText], - * ignoring case. - * It also accepts numeric offsets that would result in a different string on - * output. For example, "Error-8" would marshal as "INFO". - */ - unmarshalText(data: string|Array): void - } - interface Level { - /** - * Level returns the receiver. - * It implements [Leveler]. - */ - level(): Level - } - // @ts-ignore - import loginternal = internal -} - -/** - * Package oauth2 provides support for making - * OAuth2 authorized and authenticated HTTP requests, - * as specified in RFC 6749. - * It can additionally grant authorization with Bearer JWT. - */ -namespace oauth2 { - /** - * An AuthCodeOption is passed to Config.AuthCodeURL. - */ - interface AuthCodeOption { - [key:string]: any; - } - /** - * Token represents the credentials used to authorize - * the requests to access protected resources on the OAuth 2.0 - * provider's backend. - * - * Most users of this package should not access fields of Token - * directly. They're exported mostly for use by related packages - * implementing derivative OAuth2 flows. - */ - interface Token { - /** - * AccessToken is the token that authorizes and authenticates - * the requests. - */ - accessToken: string - /** - * TokenType is the type of token. - * The Type method returns either this or "Bearer", the default. - */ - tokenType: string - /** - * RefreshToken is a token that's used by the application - * (as opposed to the user) to refresh the access token - * if it expires. - */ - refreshToken: string - /** - * Expiry is the optional expiration time of the access token. - * - * If zero, [TokenSource] implementations will reuse the same - * token forever and RefreshToken or equivalent - * mechanisms for that TokenSource will not be used. - */ - expiry: time.Time - /** - * ExpiresIn is the OAuth2 wire format "expires_in" field, - * which specifies how many seconds later the token expires, - * relative to an unknown time base approximately around "now". - * It is the application's responsibility to populate - * `Expiry` from `ExpiresIn` when required. - */ - expiresIn: number - } - interface Token { - /** - * Type returns t.TokenType if non-empty, else "Bearer". - */ - type(): string - } - interface Token { - /** - * SetAuthHeader sets the Authorization header to r using the access - * token in t. - * - * This method is unnecessary when using [Transport] or an HTTP Client - * returned by this package. - */ - setAuthHeader(r: http.Request): void - } - interface Token { - /** - * WithExtra returns a new [Token] that's a clone of t, but using the - * provided raw extra map. This is only intended for use by packages - * implementing derivative OAuth2 flows. - */ - withExtra(extra: any): (Token) - } - interface Token { - /** - * Extra returns an extra field. - * Extra fields are key-value pairs returned by the server as a - * part of the token retrieval response. - */ - extra(key: string): any - } - interface Token { - /** - * Valid reports whether t is non-nil, has an AccessToken, and is not expired. - */ - valid(): boolean - } -} - -namespace cron { - /** - * Job defines a single registered cron job. - */ - interface Job { - } - interface Job { - /** - * Id returns the cron job id. - */ - id(): string - } - interface Job { - /** - * Expression returns the plain cron job schedule expression. - */ - expression(): string - } - interface Job { - /** - * Run runs the cron job function. - */ - run(): void - } - interface Job { - /** - * MarshalJSON implements [json.Marshaler] and export the current - * jobs data into valid JSON. - */ - marshalJSON(): string|Array - } -} - -namespace subscriptions { -} - -namespace cobra { - interface PositionalArgs {(cmd: Command, args: Array): void } - // @ts-ignore - import flag = pflag - /** - * FParseErrWhitelist configures Flag parse errors to be ignored - */ - interface FParseErrWhitelist extends _TygojaAny{} - /** - * Group Structure to manage groups for commands - */ - interface Group { - id: string - title: string - } - /** - * CompletionOptions are the options to control shell completion - */ - interface CompletionOptions { - /** - * DisableDefaultCmd prevents Cobra from creating a default 'completion' command - */ - disableDefaultCmd: boolean - /** - * DisableNoDescFlag prevents Cobra from creating the '--no-descriptions' flag - * for shells that support completion descriptions - */ - disableNoDescFlag: boolean - /** - * DisableDescriptions turns off all completion descriptions for shells - * that support them - */ - disableDescriptions: boolean - /** - * HiddenDefaultCmd makes the default 'completion' command hidden - */ - hiddenDefaultCmd: boolean - } - /** - * Completion is a string that can be used for completions - * - * two formats are supported: - * ``` - * - the completion choice - * - the completion choice with a textual description (separated by a TAB). - * ``` - * - * [CompletionWithDesc] can be used to create a completion string with a textual description. - * - * Note: Go type alias is used to provide a more descriptive name in the documentation, but any string can be used. - */ - interface Completion extends String{} - /** - * CompletionFunc is a function that provides completion results. - */ - interface CompletionFunc {(cmd: Command, args: Array, toComplete: string): [Array, ShellCompDirective] } -} - -namespace slog { - // @ts-ignore - import loginternal = internal - /** - * A Record holds information about a log event. - * Copies of a Record share state. - * Do not modify a Record after handing out a copy to it. - * Call [NewRecord] to create a new Record. - * Use [Record.Clone] to create a copy with no shared state. - */ - interface Record { - /** - * The time at which the output method (Log, Info, etc.) was called. - */ - time: time.Time - /** - * The log message. - */ - message: string - /** - * The level of the event. - */ - level: Level - /** - * The program counter at the time the record was constructed, as determined - * by runtime.Callers. If zero, no program counter is available. - * - * The only valid use for this value is as an argument to - * [runtime.CallersFrames]. In particular, it must not be passed to - * [runtime.FuncForPC]. - */ - pc: number - } - interface Record { - /** - * Clone returns a copy of the record with no shared state. - * The original record and the clone can both be modified - * without interfering with each other. - */ - clone(): Record - } - interface Record { - /** - * NumAttrs returns the number of attributes in the [Record]. - */ - numAttrs(): number - } - interface Record { - /** - * Attrs calls f on each Attr in the [Record]. - * Iteration stops if f returns false. - */ - attrs(f: (_arg0: Attr) => boolean): void - } - interface Record { - /** - * AddAttrs appends the given Attrs to the [Record]'s list of Attrs. - * It omits empty groups. - */ - addAttrs(...attrs: Attr[]): void - } - interface Record { - /** - * Add converts the args to Attrs as described in [Logger.Log], - * then appends the Attrs to the [Record]'s list of Attrs. - * It omits empty groups. - */ - add(...args: any[]): void - } - /** - * A Value can represent any Go value, but unlike type any, - * it can represent most small values without an allocation. - * The zero Value corresponds to nil. - */ - interface Value { - } - interface Value { - /** - * Kind returns v's Kind. - */ - kind(): Kind - } - interface Value { - /** - * Any returns v's value as an any. - */ - any(): any - } - interface Value { - /** - * String returns Value's value as a string, formatted like [fmt.Sprint]. Unlike - * the methods Int64, Float64, and so on, which panic if v is of the - * wrong kind, String never panics. - */ - string(): string - } - interface Value { - /** - * Int64 returns v's value as an int64. It panics - * if v is not a signed integer. - */ - int64(): number - } - interface Value { - /** - * Uint64 returns v's value as a uint64. It panics - * if v is not an unsigned integer. - */ - uint64(): number - } - interface Value { - /** - * Bool returns v's value as a bool. It panics - * if v is not a bool. - */ - bool(): boolean - } - interface Value { - /** - * Duration returns v's value as a [time.Duration]. It panics - * if v is not a time.Duration. - */ - duration(): time.Duration - } - interface Value { - /** - * Float64 returns v's value as a float64. It panics - * if v is not a float64. - */ - float64(): number - } - interface Value { - /** - * Time returns v's value as a [time.Time]. It panics - * if v is not a time.Time. - */ - time(): time.Time - } - interface Value { - /** - * LogValuer returns v's value as a LogValuer. It panics - * if v is not a LogValuer. - */ - logValuer(): LogValuer - } - interface Value { - /** - * Group returns v's value as a []Attr. - * It panics if v's [Kind] is not [KindGroup]. - */ - group(): Array - } - interface Value { - /** - * Equal reports whether v and w represent the same Go value. - */ - equal(w: Value): boolean - } - interface Value { - /** - * Resolve repeatedly calls LogValue on v while it implements [LogValuer], - * and returns the result. - * If v resolves to a group, the group's attributes' values are not recursively - * resolved. - * If the number of LogValue calls exceeds a threshold, a Value containing an - * error is returned. - * Resolve's return value is guaranteed not to be of Kind [KindLogValuer]. - */ - resolve(): Value - } -} - -namespace url { - /** - * The Userinfo type is an immutable encapsulation of username and - * password details for a [URL]. An existing Userinfo value is guaranteed - * to have a username set (potentially empty, as allowed by RFC 2396), - * and optionally a password. - */ - interface Userinfo { - } - interface Userinfo { - /** - * Username returns the username. - */ - username(): string - } - interface Userinfo { - /** - * Password returns the password in case it is set, and whether it is set. - */ - password(): [string, boolean] - } - interface Userinfo { - /** - * String returns the encoded userinfo information in the standard form - * of "username[:password]". - */ - string(): string - } -} - -namespace multipart { - /** - * A Part represents a single part in a multipart body. - */ - interface Part { - /** - * The headers of the body, if any, with the keys canonicalized - * in the same fashion that the Go http.Request headers are. - * For example, "foo-bar" changes case to "Foo-Bar" - */ - header: textproto.MIMEHeader - } - interface Part { - /** - * FormName returns the name parameter if p has a Content-Disposition - * of type "form-data". Otherwise it returns the empty string. - */ - formName(): string - } - interface Part { - /** - * FileName returns the filename parameter of the [Part]'s Content-Disposition - * header. If not empty, the filename is passed through filepath.Base (which is - * platform dependent) before being returned. - */ - fileName(): string - } - interface Part { - /** - * Read reads the body of a part, after its headers and before the - * next part (if any) begins. - */ - read(d: string|Array): number - } - interface Part { - close(): void - } -} - -namespace http { - /** - * SameSite allows a server to define a cookie attribute making it impossible for - * the browser to send this cookie along with cross-site requests. The main - * goal is to mitigate the risk of cross-origin information leakage, and provide - * some protection against cross-site request forgery attacks. - * - * See https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 for details. - */ - interface SameSite extends Number{} - // @ts-ignore - import mathrand = rand - // @ts-ignore - import urlpkg = url -} - -namespace oauth2 { -} - -namespace cobra { - // @ts-ignore - import flag = pflag - /** - * ShellCompDirective is a bit map representing the different behaviors the shell - * can be instructed to have once completions have been provided. - */ - interface ShellCompDirective extends Number{} -} - -namespace slog { - // @ts-ignore - import loginternal = internal - /** - * Kind is the kind of a [Value]. - */ - interface Kind extends Number{} - interface Kind { - string(): string - } - /** - * A LogValuer is any Go value that can convert itself into a Value for logging. - * - * This mechanism may be used to defer expensive operations until they are - * needed, or to expand a single value into a sequence of components. - */ - interface LogValuer { - [key:string]: any; - logValue(): Value - } -} From 323ac36b654287e6d594fbc9b8b0eff49910c787 Mon Sep 17 00:00:00 2001 From: ghotso Date: Thu, 21 Aug 2025 16:53:56 +0200 Subject: [PATCH 38/46] chore: add server/pb_data/ to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8987ced..e798e2d 100644 --- a/.gitignore +++ b/.gitignore @@ -24,5 +24,6 @@ dist-ssr *.sw? pocketbase.exe application/src/lib/pocketbase.ts +server/pb_data/ Dockerfile application/src/lib/pocketbase-prod.ts From e3a7865e40af88539020f38a875c9438cbeeb34c Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 22 Aug 2025 02:37:11 +0700 Subject: [PATCH 39/46] feat: Allow user to update the schema directly from the dashboard Includes: - Dashboard "Update Schema" action - Multiple notification/alert fixes and enhancements - This allow to update the schema for the latest update of environment, this update include with multiple fixes Closes The notification function is not available #138 Still can't enable and create notifications, And A new problems #136 Can not turn on notification (Telegram , Mail....) #120 Notification type 'slack' not supported #26 REQUEST: webhook notification #43 Notification can't be enabled (Discord) #77 --- .../settings/about-system/AboutSystem.tsx | 391 ++++++++++++++++-- 1 file changed, 357 insertions(+), 34 deletions(-) diff --git a/application/src/components/settings/about-system/AboutSystem.tsx b/application/src/components/settings/about-system/AboutSystem.tsx index 677d2dd..e3fc5ec 100644 --- a/application/src/components/settings/about-system/AboutSystem.tsx +++ b/application/src/components/settings/about-system/AboutSystem.tsx @@ -1,50 +1,293 @@ -import React, { useEffect, useState } from 'react'; -import { format } from 'date-fns'; -import { - Card, CardContent, CardDescription, CardHeader, CardTitle, -} from "@/components/ui/card"; +import React, { useState } from 'react'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; -import { - Github, FileText, Twitter, MessageCircle, Code2, ServerIcon, -} from "lucide-react"; +import { Github, FileText, Twitter, MessageCircle, Code2, ServerIcon, FolderOpen, Database, CheckCircle } from "lucide-react"; import { Button } from "@/components/ui/button"; +import { Label } from "@/components/ui/label"; +import { Checkbox } from "@/components/ui/checkbox"; import { useLanguage } from "@/contexts/LanguageContext"; import { useTheme } from "@/contexts/ThemeContext"; import { useSystemSettings } from "@/hooks/useSystemSettings"; +import { pb } from "@/lib/pocketbase"; +import { toast } from "@/components/ui/use-toast"; export const AboutSystem: React.FC = () => { const { t } = useLanguage(); const { theme } = useTheme(); const { systemName } = useSystemSettings(); + const [isImporting, setIsImporting] = useState(false); + const [mergeFields, setMergeFields] = useState(true); + const [importResult, setImportResult] = useState<{ + success: boolean; + created: number; + updated: number; + skipped: number; + } | null>(null); - const [version, setVersion] = useState('...'); - const [releaseDate, setReleaseDate] = useState('...'); + // Helper function to check if a collection is a system collection + const isSystemCollection = (name: string): boolean => { + return name.startsWith('_') || ['users'].includes(name); + }; - useEffect(() => { - const fetchLatestRelease = async () => { - try { - const res = await fetch('https://api.github.com/repos/operacle/checkcle/releases/latest'); - const data = await res.json(); - setVersion(data.tag_name || 'v1.x.x'); - setReleaseDate(data.published_at ? format(new Date(data.published_at), 'MMMM d, yyyy') : t('unknown')); - } catch (err) { - setVersion('v1.x.x'); - setReleaseDate(t('unknown')); + // Helper function to validate collection schema + const validateCollectionSchema = (collection: any): string | null => { + if (!collection.name) return "Collection name is required"; + if (typeof collection.name !== 'string') return "Collection name must be a string"; + if (!/^[a-z][a-z0-9_]*$/.test(collection.name)) { + return "Collection name must start with a letter and contain only lowercase letters, numbers, and underscores"; + } + if (collection.name.length < 3 || collection.name.length > 32) { + return "Collection name must be between 3 and 32 characters"; + } + + // Validate schema array if present + if (collection.schema && !Array.isArray(collection.schema)) { + return "Collection schema must be an array"; + } + + // Validate each field in the schema + if (collection.schema) { + for (const field of collection.schema) { + if (!field.name || typeof field.name !== 'string') { + return `Invalid field name in collection '${collection.name}'`; + } + if (!field.type || typeof field.type !== 'string') { + return `Invalid field type for '${field.name}' in collection '${collection.name}'`; + } } - }; - fetchLatestRelease(); - }, [t]); + } + + return null; + }; + + const handleSchemaImport = async (schemaData: string) => { + if (!schemaData.trim()) { + toast({ + title: "Error", + description: "No schema data provided", + variant: "destructive", + }); + return; + } + + try { + setIsImporting(true); + setImportResult(null); + + // Parse the JSON to validate it + const collections = JSON.parse(schemaData); + + if (!Array.isArray(collections)) { + throw new Error("Schema must be an array of collections"); + } + + // Check if user is authenticated as admin + if (!pb.authStore.isValid) { + throw new Error("Authentication required. Please log in as an admin."); + } + // Create/update collections one by one using PocketBase client + let successCount = 0; + let errorCount = 0; + let updatedCount = 0; + let skippedCount = 0; + const errors = []; + + for (const collection of collections) { + try { + // Skip system collections + if (isSystemCollection(collection.name)) { + skippedCount++; + continue; + } + + // Validate collection schema + const validationError = validateCollectionSchema(collection); + if (validationError) { + throw new Error(validationError); + } + // Check if collection already exists + const existingCollections = await pb.collections.getFullList(); + const existingCollection = existingCollections.find(c => c.name === collection.name); + + if (existingCollection) { + if (mergeFields) { + + try { + // Get existing schema + const existingSchema = existingCollection.schema || []; + const newSchema = collection.schema || []; + // Merge schemas - add new fields, keep existing ones + const mergedSchema = [...existingSchema]; + let fieldsAdded = 0; + + for (const newField of newSchema) { + const existingFieldIndex = mergedSchema.findIndex(f => f.name === newField.name); + if (existingFieldIndex >= 0) { + } else { + // Add new field + mergedSchema.push(newField); + fieldsAdded++; + } + } + + // Update the collection with merged schema + const updateData = { + ...collection, + schema: mergedSchema + }; + + const updatedCollection = await pb.collections.update(existingCollection.id, updateData); + updatedCount++; + } catch (mergeError) { + throw new Error(`Failed to merge fields: ${mergeError.message || mergeError}`); + } + } else { + skippedCount++; + continue; + } + } else { + // Create new collection + try { + const newCollection = await pb.collections.create(collection); + successCount++; + } catch (createError) { + + // Extract more detailed error information + let errorMessage = createError.message || createError; + if (createError.data) { + // Try to extract field-specific errors + if (createError.data.data) { + const fieldErrors = Object.entries(createError.data.data).map(([field, msgs]) => + `${field}: ${Array.isArray(msgs) ? msgs.join(', ') : msgs}` + ).join('; '); + if (fieldErrors) { + errorMessage += ` - Field errors: ${fieldErrors}`; + } + } + } + + throw new Error(`Failed to create collection: ${errorMessage}`); + } + } + } catch (error) { + errorCount++; + const errorMsg = `Failed to process collection '${collection.name}': ${error.message || error}`; + errors.push(errorMsg); + } + } + // Set import result for display + setImportResult({ + success: successCount + updatedCount > 0, + created: successCount, + updated: updatedCount, + skipped: skippedCount + }); + + // Show results + const totalProcessed = successCount + updatedCount; + if (totalProcessed > 0 || skippedCount > 0) { + let description = ''; + if (totalProcessed > 0) { + description = `Successfully processed ${totalProcessed} collection(s)`; + if (successCount > 0) description += ` (${successCount} created)`; + if (updatedCount > 0) description += ` (${updatedCount} updated)`; + } + if (skippedCount > 0) { + if (description) description += `, `; + description += `${skippedCount} skipped (system collections or existing)`; + } + if (errorCount > 0) description += `. ${errorCount} failed.`; + + toast({ + title: "Import Complete", + description, + variant: totalProcessed > errorCount ? "default" : "destructive", + }); + } else if (errorCount > 0) { + toast({ + title: "Import Failed", + description: "No collections were processed successfully.", + variant: "destructive", + }); + } else { + toast({ + title: "No Changes", + description: "All collections already exist and no changes were made.", + variant: "default", + }); + } + + if (errors.length > 0) { + // Show detailed errors for debugging + if (errors.length <= 3) { + toast({ + title: "Detailed Errors", + description: errors.join('; '), + variant: "destructive", + }); + } + } + + } catch (error) { + toast({ + title: "Import Failed", + description: error instanceof Error ? error.message : "Failed to import schema", + variant: "destructive", + }); + setImportResult({ + success: false, + created: 0, + updated: 0, + skipped: 0 + }); + } finally { + setIsImporting(false); + } + }; + + const handleLoadLocalSchema = async () => { + try { + setIsImporting(true); + setImportResult(null); + + const response = await fetch('/upload/data/pb_schema_latest.json'); + + if (!response.ok) { + throw new Error(`Failed to load local schema: ${response.status} ${response.statusText}`); + } + + const schemaText = await response.text(); + + // Validate that it's valid JSON + JSON.parse(schemaText); + + // Directly import the schema + await handleSchemaImport(schemaText); + + } catch (error) { + toast({ + title: "Import Failed", + description: error instanceof Error ? error.message : "Failed to load and import local schema file", + variant: "destructive", + }); + setImportResult({ + success: false, + created: 0, + updated: 0, + skipped: 0 + }); + setIsImporting(false); + } + }; return (

    {t('aboutSystem')}

    -

    -

    - + - +
    @@ -58,7 +301,7 @@ export const AboutSystem: React.FC = () => {
    {t('systemVersion')} - {version} + {t('version')} 1.5.1
    @@ -68,22 +311,20 @@ export const AboutSystem: React.FC = () => {
    {t('releasedOn')} - {releaseDate} + Auguest 21, 2025
    - + {t('links')} - - {systemName || 'CheckCle'} {t('resources').toLowerCase()} - + {systemName || 'CheckCle'} {t('resources').toLowerCase()}
    @@ -107,8 +348,90 @@ export const AboutSystem: React.FC = () => {
    + + + + + + + + Update Schema + + Automatic import collections schema + + +
    +
    + setMergeFields(checked === true)} + /> + +
    +
    + +
    + +
    + + {importResult && ( +
    +
    + + + {importResult.success ? 'Import Successful' : 'Import Failed'} + +
    +
    + {importResult.created > 0 && `${importResult.created} collections created`} + {importResult.updated > 0 && (importResult.created > 0 ? ', ' : '') + `${importResult.updated} collections updated`} + {importResult.skipped > 0 && ((importResult.created > 0 || importResult.updated > 0) ? ', ' : '') + `${importResult.skipped} collections skipped`} +
    +
    + )} + +
    +

    + Instructions: +

    +
      +
    • Merge fields: Safely add new fields to existing collections, preserves all data
    • +
    • System collections (starting with _) and users collection will be skipped automatically
    • +
    • Only authenticated admins can perform schema imports
    • +
    +
    +
    +
    ); }; -export default AboutSystem; +export default AboutSystem; \ No newline at end of file From 623e3d5ebf8f77d77c31c5368be1240d376938f0 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 22 Aug 2025 02:39:01 +0700 Subject: [PATCH 40/46] Add schema JSON file locally to allow direct updates from the UI. This schema is for CheckCle version v1.5.0. --- .../public/upload/data/pb_schema_latest.json | 5453 +++++++++++++++++ 1 file changed, 5453 insertions(+) create mode 100644 application/public/upload/data/pb_schema_latest.json diff --git a/application/public/upload/data/pb_schema_latest.json b/application/public/upload/data/pb_schema_latest.json new file mode 100644 index 0000000..a5b4a04 --- /dev/null +++ b/application/public/upload/data/pb_schema_latest.json @@ -0,0 +1,5453 @@ +[ + { + "id": "pbc_1938176441", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "alert_configurations", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "channel_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1104941267", + "max": 0, + "min": 0, + "name": "telegram_chat_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2654632018", + "max": 0, + "min": 0, + "name": "discord_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text904114323", + "max": 0, + "min": 0, + "name": "signal_number", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text709732016", + "max": 0, + "min": 0, + "name": "notify_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3787265959", + "max": 0, + "min": 0, + "name": "bot_token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2946855043", + "max": 0, + "min": 0, + "name": "slack_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select887233555", + "maxSelect": 1, + "name": "notification_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "telegram", + "signal", + "discord", + "slack", + "webhook", + "google_chat", + "email", + "ntfy" + ] + }, + { + "hidden": false, + "id": "select1358543748", + "maxSelect": 1, + "name": "enabled", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2962097998", + "max": 0, + "min": 0, + "name": "email_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3070882914", + "max": 0, + "min": 0, + "name": "email_sender_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2941943271", + "max": 0, + "min": 0, + "name": "smtp_port", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text393471132", + "max": 0, + "min": 0, + "name": "smtp_server", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2735050465", + "max": 0, + "min": 0, + "name": "google_chat_webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1263996916", + "max": 0, + "min": 0, + "name": "signal_api_endpoint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4212033756", + "max": 0, + "min": 0, + "name": "smtp_password", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text137129747", + "max": 0, + "min": 0, + "name": "webhook_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3590941513", + "max": 0, + "min": 0, + "name": "webhook_payload_template", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1654359675", + "max": 0, + "min": 0, + "name": "ntfy_endpoint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_2889059272", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "data_settings", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "number1569706847", + "max": null, + "min": null, + "name": "retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1419719274", + "max": null, + "min": null, + "name": "server_retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3508549248", + "max": null, + "min": null, + "name": "uptime_retention_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2800013036", + "max": 0, + "min": 0, + "name": "backup", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_285611395", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "dns_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2554192817", + "max": 0, + "min": 0, + "name": "query_type", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3731179111", + "max": 0, + "min": 0, + "name": "resolve_ip", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2323266619", + "max": 0, + "min": 0, + "name": "msg_size", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3069659470", + "max": 0, + "min": 0, + "name": "question", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3671935525", + "max": 0, + "min": 0, + "name": "answer", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1257859836", + "max": 0, + "min": 0, + "name": "authority", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2273667377", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3168803865", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "docker_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "docker_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text933879452", + "max": 0, + "min": 0, + "name": "ram_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4038915663", + "max": 0, + "min": 0, + "name": "ram_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3302315167", + "max": 0, + "min": 0, + "name": "ram_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1461425251", + "max": 0, + "min": 0, + "name": "cpu_cores", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2062996636", + "max": 0, + "min": 0, + "name": "cpu_usage", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1525183142", + "max": 0, + "min": 0, + "name": "cpu_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2583550350", + "max": 0, + "min": 0, + "name": "disk_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1976676007", + "max": 0, + "min": 0, + "name": "disk_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1102580855", + "max": 0, + "min": 0, + "name": "disk_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1936777896", + "max": null, + "min": null, + "name": "network_rx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3038767919", + "max": null, + "min": null, + "name": "network_tx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3452919696", + "max": null, + "min": null, + "name": "network_rx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number195057175", + "max": null, + "min": null, + "name": "network_tx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_583547467", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "dockers", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1069831160", + "max": 0, + "min": 0, + "name": "docker_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3847340049", + "max": 0, + "min": 0, + "name": "hostname", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text587191692", + "max": 0, + "min": 0, + "name": "ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063420466", + "max": 0, + "min": 0, + "name": "os_template", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1563400775", + "max": 0, + "min": 0, + "name": "uptime", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number933879452", + "max": null, + "min": null, + "name": "ram_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4038915663", + "max": null, + "min": null, + "name": "ram_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1461425251", + "max": null, + "min": null, + "name": "cpu_cores", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2062996636", + "max": null, + "min": null, + "name": "cpu_usage", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2583550350", + "max": null, + "min": null, + "name": "disk_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1976676007", + "max": null, + "min": null, + "name": "disk_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2782324286", + "max": 0, + "min": 0, + "name": "timestamp", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_2189087560", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "incidents", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2314121105", + "max": 0, + "min": 0, + "name": "assigned_users", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3210298530", + "max": 0, + "min": 0, + "name": "resolution_time", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text723782963", + "max": 0, + "min": 0, + "name": "affected_systems", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1210058505", + "max": 0, + "min": 0, + "name": "root_cause", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text178040949", + "max": 0, + "min": 0, + "name": "resolution_steps", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2767280054", + "max": 0, + "min": 0, + "name": "lessons_learned", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2722347397", + "maxSelect": 1, + "name": "impact_status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "investigating", + "found_root_cause", + "identified", + "monitoring", + "resolved" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1655102503", + "maxSelect": 1, + "name": "priority", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "hidden": false, + "id": "select3288973319", + "maxSelect": 1, + "name": "impact", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "minor", + "major", + "critical", + "none" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1738231158", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "maintenance", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date1345189255", + "max": "", + "min": "", + "name": "start_time", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "date1096160257", + "max": "", + "min": "", + "name": "end_time", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3922189066", + "max": 0, + "min": 0, + "name": "affected", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3725765462", + "max": 0, + "min": 0, + "name": "created_by", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1348078739", + "max": 0, + "min": 0, + "name": "notify_subscribers", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1655102503", + "maxSelect": 1, + "name": "priority", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "scheduled", + "completed", + "cancelled", + "in_progress" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1542800728", + "maxSelect": 1, + "name": "field", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "minor", + "major", + "critical", + "none" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3490420651", + "max": 0, + "min": 0, + "name": "assigned_users", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3662317132", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "operational_page", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text724990059", + "max": 0, + "min": 0, + "name": "title", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1811784642", + "maxSelect": 1, + "name": "is_public", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2560465762", + "max": 0, + "min": 0, + "name": "slug", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2541086472", + "max": 0, + "min": 0, + "name": "theme", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text156371623", + "max": 0, + "min": 0, + "name": "logo_url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2466564623", + "max": 0, + "min": 0, + "name": "custom_domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3581369753", + "max": 0, + "min": 0, + "name": "custom_css", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1430013884", + "max": 0, + "min": 0, + "name": "page_style", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "operational", + "degraded", + "partial_outage", + "major_outage", + "maintenance" + ] + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1168766540", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ping_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1341404999", + "max": 0, + "min": 0, + "name": "packet_loss", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2750318623", + "max": 0, + "min": 0, + "name": "max_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2645286934", + "max": 0, + "min": 0, + "name": "min_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text108668494", + "max": 0, + "min": 0, + "name": "packets_sent", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3848691274", + "max": 0, + "min": 0, + "name": "packets_recv", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2665772979", + "max": 0, + "min": 0, + "name": "avg_rtt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text836103155", + "max": 0, + "min": 0, + "name": "rtts", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_171698555", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "regional_service", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1404634243", + "max": 0, + "min": 0, + "name": "agent_ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text704082790", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1597481275", + "max": 0, + "min": 0, + "name": "token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1998570700", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text933879452", + "max": 0, + "min": 0, + "name": "ram_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4038915663", + "max": 0, + "min": 0, + "name": "ram_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3302315167", + "max": 0, + "min": 0, + "name": "ram_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1461425251", + "max": 0, + "min": 0, + "name": "cpu_cores", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2062996636", + "max": 0, + "min": 0, + "name": "cpu_usage", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1525183142", + "max": 0, + "min": 0, + "name": "cpu_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2583550350", + "max": 0, + "min": 0, + "name": "disk_total", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1976676007", + "max": 0, + "min": 0, + "name": "disk_used", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1102580855", + "max": 0, + "min": 0, + "name": "disk_free", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1936777896", + "max": null, + "min": null, + "name": "network_rx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3038767919", + "max": null, + "min": null, + "name": "network_tx_bytes", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3452919696", + "max": null, + "min": null, + "name": "network_rx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number195057175", + "max": null, + "min": null, + "name": "network_tx_speed", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text635908666", + "max": 0, + "min": 0, + "name": "agent_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1907735298", + "max": 0, + "min": 0, + "name": "max_retries", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3065852031", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text772177811", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1965843930", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2233324553", + "max": 0, + "min": 0, + "name": "ram_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3462525847", + "max": 0, + "min": 0, + "name": "cpu_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3499937189", + "max": 0, + "min": 0, + "name": "disk_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3897838783", + "max": 0, + "min": 0, + "name": "network_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "up_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "down_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2718833336", + "max": 0, + "min": 0, + "name": "paused_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3489289583", + "max": 0, + "min": 0, + "name": "cpu_temp_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2170408196", + "max": 0, + "min": 0, + "name": "disk_io_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4125531906", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1005957295", + "max": 0, + "min": 0, + "name": "warning_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text992877620", + "max": 0, + "min": 0, + "name": "restore_ram_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2334264704", + "max": 0, + "min": 0, + "name": "restore_cpu_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text808080362", + "max": 0, + "min": 0, + "name": "restore_disk_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2722458077", + "max": 0, + "min": 0, + "name": "restore_network_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text823542732", + "max": 0, + "min": 0, + "name": "restore_disk_io_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1526027363", + "max": 0, + "min": 0, + "name": "restore_cpu_temp_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1464856393", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "server_threshold_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2233324553", + "max": 0, + "min": 0, + "name": "ram_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3462525847", + "max": 0, + "min": 0, + "name": "cpu_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3499937189", + "max": 0, + "min": 0, + "name": "disk_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3897838783", + "max": 0, + "min": 0, + "name": "network_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3837604842", + "max": 0, + "min": 0, + "name": "disk_io_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2623591511", + "max": 0, + "min": 0, + "name": "cpu_temp_threshold", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3738798621", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "servers", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3847340049", + "max": 0, + "min": 0, + "name": "hostname", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text587191692", + "max": 0, + "min": 0, + "name": "ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063420466", + "max": 0, + "min": 0, + "name": "os_type", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1563400775", + "max": 0, + "min": 0, + "name": "uptime", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number933879452", + "max": null, + "min": null, + "name": "ram_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4038915663", + "max": null, + "min": null, + "name": "ram_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1461425251", + "max": null, + "min": null, + "name": "cpu_cores", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2062996636", + "max": null, + "min": null, + "name": "cpu_usage", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2583550350", + "max": null, + "min": null, + "name": "disk_total", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1976676007", + "max": null, + "min": null, + "name": "disk_used", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4290167602", + "max": 0, + "min": 0, + "name": "server_token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2782324286", + "max": 0, + "min": 0, + "name": "timestamp", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text704082790", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text635908666", + "max": 0, + "min": 0, + "name": "agent_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3661988513", + "max": 0, + "min": 0, + "name": "system_info", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1936777896", + "max": 0, + "min": 0, + "name": "network_rx_bytes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3038767919", + "max": 0, + "min": 0, + "name": "network_tx_bytes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3452919696", + "max": 0, + "min": 0, + "name": "network_rx_speed", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text195057175", + "max": 0, + "min": 0, + "name": "network_tx_speed", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number4097339557", + "max": null, + "min": null, + "name": "check_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "select4065722285", + "maxSelect": 1, + "name": "docker", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "true", + "false" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1907735298", + "max": 0, + "min": 0, + "name": "max_retries", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1080317331", + "max": 0, + "min": 0, + "name": "threshold_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "bool3215432513", + "name": "notification_status", + "presentable": false, + "required": false, + "system": false, + "type": "bool" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_763794515", + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "name": "service_group", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1572233440", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "service_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "up_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "down_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3477829101", + "max": 0, + "min": 0, + "name": "maintenance_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text293022370", + "max": 0, + "min": 0, + "name": "incident_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3490715516", + "max": 0, + "min": 0, + "name": "resolved_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1005957295", + "max": 0, + "min": 0, + "name": "warning_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4125531906", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_863811952", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "services", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3475444733", + "max": 0, + "min": 0, + "name": "host", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1563400775", + "max": null, + "min": null, + "name": "uptime", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1133600204", + "max": null, + "min": null, + "name": "port", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number3142844404", + "max": null, + "min": null, + "name": "heartbeat_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1907735298", + "max": null, + "min": null, + "name": "max_retries", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1117643717", + "maxSelect": 1, + "name": "service_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "http", + "tcp", + "ping", + "dns" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4101391790", + "max": 0, + "min": 0, + "name": "url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select3434705756", + "maxSelect": 1, + "name": "alerts", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "muted", + "unmuted" + ] + }, + { + "hidden": false, + "id": "bool3215432513", + "name": "notification_status", + "presentable": false, + "required": false, + "system": false, + "type": "bool" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1745692878", + "max": 0, + "min": 0, + "name": "regional_status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2502838439", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1841317061", + "max": 0, + "min": 0, + "name": "group_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_3575570325", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "services_metrics", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2422262506", + "max": 0, + "min": 0, + "name": "service_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3475444733", + "max": 0, + "min": 0, + "name": "host", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1563400775", + "max": null, + "min": null, + "name": "uptime", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "date3415181003", + "max": "", + "min": "", + "name": "last_checked", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1133600204", + "max": null, + "min": null, + "name": "port", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number3142844404", + "max": null, + "min": null, + "name": "heartbeat_interval", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1907735298", + "max": null, + "min": null, + "name": "max_retries", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select1117643717", + "maxSelect": 1, + "name": "service_type", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "http", + "tcp", + "ping", + "dns" + ] + }, + { + "hidden": false, + "id": "select2063623452", + "maxSelect": 1, + "name": "status", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "up", + "down", + "warning", + "paused" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4101391790", + "max": 0, + "min": 0, + "name": "url", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "select4152017003", + "maxSelect": 1, + "name": "alerts", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "muted", + "unmuted" + ] + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1519612219", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "region_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1404634243", + "max": 0, + "min": 0, + "name": "agent_ip_address", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1836745630", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ssl_certificates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2812878347", + "max": 0, + "min": 0, + "name": "domain", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2910474005", + "max": 0, + "min": 0, + "name": "issuer_o", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2857577546", + "max": "", + "min": "", + "name": "last_notified", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number2281365985", + "max": null, + "min": null, + "name": "warning_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number219021052", + "max": null, + "min": null, + "name": "expiry_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text98176952", + "max": 0, + "min": 0, + "name": "template_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3085370608", + "max": 0, + "min": 0, + "name": "notification_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2077745078", + "max": "", + "min": "", + "name": "valid_from", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number227839714", + "max": null, + "min": null, + "name": "serial_number", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2790380089", + "max": 0, + "min": 0, + "name": "issued_to", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date3449712486", + "max": "", + "min": "", + "name": "valid_till", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1533826704", + "max": null, + "min": null, + "name": "validity_days", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number4007784154", + "max": null, + "min": null, + "name": "days_left", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number437829758", + "max": null, + "min": null, + "name": "valid_days_to_expire", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3452125334", + "max": 0, + "min": 0, + "name": "resolved_ip", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2712104570", + "max": 0, + "min": 0, + "name": "issuer_cn", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1754636037", + "max": 0, + "min": 0, + "name": "cert_alg", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1208359189", + "max": 0, + "min": 0, + "name": "cert_sans", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4097339557", + "max": 0, + "min": 0, + "name": "check_interval", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2784829323", + "max": "", + "min": "", + "name": "check_at", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1553704459", + "max": 0, + "min": 0, + "name": "webhook_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_351174173", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "ssl_notification_templates", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2761878292", + "max": 0, + "min": 0, + "name": "expired", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3025025370", + "max": 0, + "min": 0, + "name": "exiring_soon", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1078893766", + "max": 0, + "min": 0, + "name": "warning", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4011498884", + "max": 0, + "min": 0, + "name": "placeholder", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_1636150439", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "status_page_components", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4053573849", + "max": 0, + "min": 0, + "name": "operational_status_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1843675174", + "max": 0, + "min": 0, + "name": "description", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number4101605491", + "max": null, + "min": null, + "name": "display_order", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_2331916230", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "tcp_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1341404999", + "max": 0, + "min": 0, + "name": "connection", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2770808759", + "max": 0, + "min": 0, + "name": "port", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2273667377", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text873754891", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + }, + { + "id": "pbc_67962705", + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "name": "uptime_data", + "type": "base", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3982272998", + "max": 0, + "min": 0, + "name": "service_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date2782324286", + "max": "", + "min": "", + "name": "timestamp", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number3275068127", + "max": null, + "min": null, + "name": "response_time", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1280981898", + "max": 0, + "min": 0, + "name": "packets", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text926446584", + "max": 0, + "min": 0, + "name": "latency", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text318214333", + "max": 0, + "min": 0, + "name": "status_codes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1519612219", + "max": 0, + "min": 0, + "name": "keyword", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text737763667", + "max": 0, + "min": 0, + "name": "error_message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1915095946", + "max": 0, + "min": 0, + "name": "details", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text258142582", + "max": 0, + "min": 0, + "name": "region_name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2552627541", + "max": 0, + "min": 0, + "name": "agent_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "indexes": [], + "system": false + } +] \ No newline at end of file From d01f682a833f866eaecd1dfb696fa495fae866ab Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Fri, 22 Aug 2025 16:44:27 +0700 Subject: [PATCH 41/46] =?UTF-8?q?=E2=8F=B3=20Update=20Project=20Developmen?= =?UTF-8?q?t=20Status=20and=20Progress?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DEVELOPMENT_ROADMAP.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/docs/DEVELOPMENT_ROADMAP.md b/docs/DEVELOPMENT_ROADMAP.md index 47e5549..c96a192 100644 --- a/docs/DEVELOPMENT_ROADMAP.md +++ b/docs/DEVELOPMENT_ROADMAP.md @@ -55,7 +55,7 @@ The roadmap is divided into the following stages: ## 🗂 Milestone Overview -### 📦 v1.0.0-1.3.0 – Initial Release _(Target: Q2 2025)_ +### 🚀 v1.0.0-1.3.0 – Initial Release _(Target: Q2 2025)_ **Status:** ✅ Completed **Goal:** MVP feature completion, API stability, and core use-case readiness. @@ -64,7 +64,7 @@ The roadmap is divided into the following stages: --- ### 🚀 v1.4 - 1.5 – Feature Enhancements _(Target: Q3 2025)_ -**Status:** 🔧 In Progress +**Status:** ✅ Completed #### Tentative Features: - [ ] ✅ Server and Service Table row clickable to detail page. - [ ] ✅ Implement pagination for the SSL dashboard table @@ -73,15 +73,31 @@ The roadmap is divided into the following stages: - [ ] ✅ Improve Uptime Service and Server connection update based on status and notification. - [ ] ✅ Improve SSL perform the initial check automatically after creation - [ ] ✅ Rate limiting and abuse protection -- [ ] 🔧 Add ntfy push notifications +- [ ] ✅ Add ntfy push notifications + +### 🚀 v1.6.0 – Feature Enhancements _(Target: Q3 2025)_ +**Status:** 🔧 In Progress +#### Tentative Features: +- [ ] ✅ Allow user to update the schema directly from the dashboard +- [ ] ✅ Add Korean translations and update types. By @taking [#143](https://github.com/operacle/checkcle/pull/143) +- [ ] ✅ Add Simplified Chinese translation. By @sqkkyzx [#128](https://github.com/operacle/checkcle/pull/128) +- [ ] ✅ improve i18n and add new translations. @sqkkyzx [#132](https://github.com/operacle/checkcle/pull/132) +- [ ] ✅ fix(incident): unify assigned user handling with fallback and UI update. By @ghotso [#142](https://github.com/operacle/checkcle/pull/142) +- [ ] ✅ sync German translations across incident, maintenance, services & settings. By @ghotso [#141](https://github.com/operacle/checkcle/pull/141) + +- [ ] 🔧 Enhance the Data retention feature +- [ ] 🔧 Improve docker agent for server monitoring +- [ ] 🔧 Improve the Server Agent on Unraid - [ ] 🔧 Server Windows Agent -- [ ] 🔧 Improve the Operational status page +- [ ] 🔧 Add Pushover notifications - [ ] 🔧 More Uptime Service Type (HTTP keyword, HTTP json) - [ ] 🔧 Server support with cpu temperature - [ ] 🔧 Server upport with multiple disks/volume - [ ] 🔧 Server support with Multiple Network Interfaces +- [ ] 🔧 Improve the Operational status page +- [ ] 🔧 Server network bandwidth monitoring - [ ] 🎯 Improve the Schedule and Incident for automation -- [ ] 🎯 Uptime Monitoring option for choose: HTTP/HTTPS +- [ ] 🎯 Uptime Monitoring option for choose: HTTP/HTTPS. Add Option to Bypass SSL Verification in Uptime - [ ] 🎯 Add 2FA support --- From 001f6f8783235ad3ec4811bc8e4e6bfdcc4655c7 Mon Sep 17 00:00:00 2001 From: ghotso <168240713+ghotso@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:10:01 +0200 Subject: [PATCH 42/46] fix: update ServiceConfigFields to set default value for retry attempts and enhance delete migration scripts for server processes and notifications with error handling for deleting non existing collections --- .../add-service/ServiceConfigFields.tsx | 2 +- .../1750414552_deleted_server_processes.js | 273 +++++++------- ...1750414561_deleted_server_notifications.js | 338 +++++++++--------- 3 files changed, 314 insertions(+), 299 deletions(-) diff --git a/application/src/components/services/add-service/ServiceConfigFields.tsx b/application/src/components/services/add-service/ServiceConfigFields.tsx index b9c2583..718505a 100644 --- a/application/src/components/services/add-service/ServiceConfigFields.tsx +++ b/application/src/components/services/add-service/ServiceConfigFields.tsx @@ -96,7 +96,7 @@ export function ServiceConfigFields({ form }: ServiceConfigFieldsProps) { {t("retryAttempts")} - diff --git a/server/pb_migrations/1750414552_deleted_server_processes.js b/server/pb_migrations/1750414552_deleted_server_processes.js index 034c38d..79af47c 100644 --- a/server/pb_migrations/1750414552_deleted_server_processes.js +++ b/server/pb_migrations/1750414552_deleted_server_processes.js @@ -1,137 +1,144 @@ /// migrate((app) => { - const collection = app.findCollectionByNameOrId("pbc_2018671343"); - - return app.delete(collection); + try { + const collection = app.findCollectionByNameOrId("pbc_2018671343"); + return app.delete(collection); + } catch (e) { + console.warn("Skip delete (server_processes):", e?.message); + } }, (app) => { - const collection = new Collection({ - "createRule": "", - "deleteRule": "", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1431356653", - "max": 0, - "min": 0, - "name": "pid", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text1579384326", - "max": 0, - "min": 0, - "name": "name", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "number1391558374", - "max": null, - "min": null, - "name": "memory_percent", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2651913466", - "max": null, - "min": null, - "name": "cpu_percent", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text2063623452", - "max": 0, - "min": 0, - "name": "status", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "id": "pbc_2018671343", - "indexes": [], - "listRule": "", - "name": "server_processes", - "system": false, - "type": "base", - "updateRule": "", - "viewRule": "" - }); + try { + const collection = new Collection({ + "createRule": "", + "deleteRule": "", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1431356653", + "max": 0, + "min": 0, + "name": "pid", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1579384326", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "number1391558374", + "max": null, + "min": null, + "name": "memory_percent", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2651913466", + "max": null, + "min": null, + "name": "cpu_percent", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2063623452", + "max": 0, + "min": 0, + "name": "status", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "pbc_2018671343", + "indexes": [], + "listRule": "", + "name": "server_processes", + "system": false, + "type": "base", + "updateRule": "", + "viewRule": "" + }); - return app.save(collection); -}) + return app.save(collection); + } catch (e) { + console.warn("Skip rollback (server_processes):", e?.message); + } +}); diff --git a/server/pb_migrations/1750414561_deleted_server_notifications.js b/server/pb_migrations/1750414561_deleted_server_notifications.js index 4a4b0aa..aa7c6c9 100644 --- a/server/pb_migrations/1750414561_deleted_server_notifications.js +++ b/server/pb_migrations/1750414561_deleted_server_notifications.js @@ -1,170 +1,178 @@ /// migrate((app) => { - const collection = app.findCollectionByNameOrId("pbc_3414192583"); - return app.delete(collection); + try { + const collection = app.findCollectionByNameOrId("pbc_3414192583"); + return app.delete(collection); + } catch (e) { + console.warn("Skip delete (server_notifications):", e?.message); + } }, (app) => { - const collection = new Collection({ - "createRule": "", - "deleteRule": "", - "fields": [ - { - "autogeneratePattern": "[a-z0-9]{15}", - "hidden": false, - "id": "text3208210256", - "max": 15, - "min": 15, - "name": "id", - "pattern": "^[a-z0-9]+$", - "presentable": false, - "primaryKey": true, - "required": true, - "system": true, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text407168695", - "max": 0, - "min": 0, - "name": "server_id", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text3065852031", - "max": 0, - "min": 0, - "name": "message", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "autogeneratePattern": "", - "hidden": false, - "id": "text887233555", - "max": 0, - "min": 0, - "name": "notification_type", - "pattern": "", - "presentable": false, - "primaryKey": false, - "required": false, - "system": false, - "type": "text" - }, - { - "hidden": false, - "id": "date3805952114", - "max": "", - "min": "", - "name": "read_at", - "presentable": false, - "required": false, - "system": false, - "type": "date" - }, - { - "hidden": false, - "id": "number1377725610", - "max": null, - "min": null, - "name": "cpu_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number3087505384", - "max": null, - "min": null, - "name": "ram_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2833320134", - "max": null, - "min": null, - "name": "disk_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number1826572927", - "max": null, - "min": null, - "name": "network_threshold", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "number2184331740", - "max": null, - "min": null, - "name": "notification_config_id", - "onlyInt": false, - "presentable": false, - "required": false, - "system": false, - "type": "number" - }, - { - "hidden": false, - "id": "autodate2990389176", - "name": "created", - "onCreate": true, - "onUpdate": false, - "presentable": false, - "system": false, - "type": "autodate" - }, - { - "hidden": false, - "id": "autodate3332085495", - "name": "updated", - "onCreate": true, - "onUpdate": true, - "presentable": false, - "system": false, - "type": "autodate" - } - ], - "id": "pbc_3414192583", - "indexes": [], - "listRule": "", - "name": "server_notifications", - "system": false, - "type": "base", - "updateRule": "", - "viewRule": "" - }); + try { + const collection = new Collection({ + "createRule": "", + "deleteRule": "", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text407168695", + "max": 0, + "min": 0, + "name": "server_id", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text3065852031", + "max": 0, + "min": 0, + "name": "message", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text887233555", + "max": 0, + "min": 0, + "name": "notification_type", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "date3805952114", + "max": "", + "min": "", + "name": "read_at", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "number1377725610", + "max": null, + "min": null, + "name": "cpu_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number3087505384", + "max": null, + "min": null, + "name": "ram_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2833320134", + "max": null, + "min": null, + "name": "disk_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number1826572927", + "max": null, + "min": null, + "name": "network_threshold", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "number2184331740", + "max": null, + "min": null, + "name": "notification_config_id", + "onlyInt": false, + "presentable": false, + "required": false, + "system": false, + "type": "number" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "pbc_3414192583", + "indexes": [], + "listRule": "", + "name": "server_notifications", + "system": false, + "type": "base", + "updateRule": "", + "viewRule": "" + }); - return app.save(collection); -}) + return app.save(collection); + } catch (e) { + console.warn("Skip rollback (server_notifications):", e?.message); + } +}); From b3b64806f65a149165d3b58419f8a6d068a71ff0 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Sat, 23 Aug 2025 20:10:03 +0700 Subject: [PATCH 43/46] feat: Add Pushover notification channel - Adds Pushover as a new notification channel option. Includes fields for `api_token` and `user_key` in the `alert_configurations` schema and integrates it into the channel type dropdown and form handling. --- .../public/upload/notification/pushover.png | Bin 0 -> 28086 bytes .../NotificationChannelDialog.tsx | 54 +++++++++++++++++- .../src/services/alertConfigService.ts | 8 ++- 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 application/public/upload/notification/pushover.png diff --git a/application/public/upload/notification/pushover.png b/application/public/upload/notification/pushover.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7b04d7764964f2969dcd0f79434d9efb0996e0 GIT binary patch literal 28086 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 H_3{4zK**s_ literal 0 HcmV?d00001 diff --git a/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx b/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx index 4d47b44..7b20f9f 100644 --- a/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx +++ b/application/src/components/settings/notification-settings/NotificationChannelDialog.tsx @@ -36,7 +36,7 @@ interface NotificationChannelDialogProps { const baseSchema = z.object({ notify_name: z.string().min(1, "Name is required"), - notification_type: z.enum(["telegram", "discord", "slack", "signal", "google_chat", "email", "ntfy", "webhook"]), + notification_type: z.enum(["telegram", "discord", "slack", "signal", "google_chat", "email", "ntfy", "pushover", "webhook"]), enabled: z.boolean().default(true), service_id: z.string().default("global"), template_id: z.string().optional(), @@ -89,6 +89,12 @@ const webhookSchema = baseSchema.extend({ webhook_payload_template: z.string().optional(), }); +const pushoverSchema = baseSchema.extend({ + notification_type: z.literal("pushover"), + api_token: z.string().min(1, "API token is required"), + user_key: z.string().min(1, "User key is required"), +}); + const formSchema = z.discriminatedUnion("notification_type", [ telegramSchema, discordSchema, @@ -97,7 +103,8 @@ const formSchema = z.discriminatedUnion("notification_type", [ googleChatSchema, emailSchema, ntfySchema, - webhookSchema + pushoverSchema, + webhookSchema, ]); type FormValues = z.infer; @@ -145,6 +152,12 @@ const notificationTypeOptions = [ description: "Send notifications via NTFY push service", icon: "/upload/notification/ntfy.png" }, + { + value: "pushover", + label: "Pushover", + description: "Send push notifications via Pushover", + icon: "/upload/notification/pushover.png" + }, { value: "webhook", label: "Webhook", @@ -570,6 +583,43 @@ export const NotificationChannelDialog = ({ )} /> )} + + {notificationType === "pushover" && ( + <> + ( + + API Token + + + + + Your Pushover application API token + + + + )} + /> + ( + + User Key + + + + + Your Pushover user key (or group key) + + + + )} + /> + + )} {notificationType === "webhook" && ( <> diff --git a/application/src/services/alertConfigService.ts b/application/src/services/alertConfigService.ts index 9df6e6a..83a702c 100644 --- a/application/src/services/alertConfigService.ts +++ b/application/src/services/alertConfigService.ts @@ -7,7 +7,7 @@ export interface AlertConfiguration { collectionId?: string; collectionName?: string; service_id: string; - notification_type: "telegram" | "discord" | "slack" | "signal" | "google_chat" | "email" | "ntfy" | "webhook"; + notification_type: "telegram" | "discord" | "slack" | "signal" | "google_chat" | "email" | "ntfy" | "pushover" | "webhook"; telegram_chat_id?: string; discord_webhook_url?: string; signal_number?: string; @@ -29,6 +29,8 @@ export interface AlertConfiguration { webhook_id?: string; channel_id?: string; ntfy_endpoint?: string; + api_token?: string; + user_key?: string; webhook_url?: string; webhook_payload_template?: string; } @@ -85,6 +87,10 @@ export const alertConfigService = { } else if (config.notification_type === "ntfy") { cleanConfig.ntfy_endpoint = config.ntfy_endpoint || ""; + + } else if (config.notification_type === "pushover") { + cleanConfig.api_token = config.api_token || ""; + cleanConfig.user_key = config.user_key || ""; } else if (config.notification_type === "webhook") { cleanConfig.webhook_url = config.webhook_url || ""; From d4423e328b8e533a608f810d4df11ec21cef7335 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Sat, 23 Aug 2025 20:47:46 +0700 Subject: [PATCH 44/46] feat: Implement Pushover notification - Implement Pushover notification functionality to send messages similar to Telegram. This includes adding `api_token` and `user_key` fields to the alert configuration for Pushover. Closes #135 #95 --- .../service-operation/notification/manager.go | 1 + .../notification/pushover.go | 360 ++++++++++++++++++ .../service-operation/notification/types.go | 2 + 3 files changed, 363 insertions(+) create mode 100644 server/service-operation/notification/pushover.go diff --git a/server/service-operation/notification/manager.go b/server/service-operation/notification/manager.go index 3f29165..39d5d69 100644 --- a/server/service-operation/notification/manager.go +++ b/server/service-operation/notification/manager.go @@ -30,6 +30,7 @@ func NewNotificationManager(pbClient *pocketbase.PocketBaseClient) *Notification services["email"] = NewEmailService() services["webhook"] = NewWebhookService() services["ntfy"] = NewNtfyService() + services["pushover"] = NewPushoverService() // log.Printf("✅ Notification services initialized: %v", getKeys(services)) diff --git a/server/service-operation/notification/pushover.go b/server/service-operation/notification/pushover.go new file mode 100644 index 0000000..f7d737e --- /dev/null +++ b/server/service-operation/notification/pushover.go @@ -0,0 +1,360 @@ +package notification + +import ( + "bytes" + "encoding/json" + "fmt" + "net/http" + "strings" +) + +// PushoverService handles Pushover notifications +type PushoverService struct{} + +// NewPushoverService creates a new Pushover notification service +func NewPushoverService() *PushoverService { + return &PushoverService{} +} + +// PushoverPayload represents the payload for Pushover API +type PushoverPayload struct { + Token string `json:"token"` + User string `json:"user"` + Message string `json:"message"` + Title string `json:"title,omitempty"` +} + +// PushoverResponse represents the response from Pushover API +type PushoverResponse struct { + Status int `json:"status"` + Request string `json:"request"` + User string `json:"user,omitempty"` + Errors []string `json:"errors,omitempty"` +} + +// SendNotification sends a notification via Pushover +func (ps *PushoverService) SendNotification(config *AlertConfiguration, message string) error { + // fmt.Printf("📱 [PUSHOVER] Attempting to send notification...\n") + // fmt.Printf("📱 [PUSHOVER] Config - API Token: %s, User Key: %s, Notify Name: %s\n", + // maskToken(config.APIToken), maskToken(config.UserKey), config.NotifyName) + // fmt.Printf("📱 [PUSHOVER] Message: %s\n", message) + + if config.APIToken == "" || config.UserKey == "" { + return fmt.Errorf("Pushover API token and user key are required") + } + + // Prepare the payload + payload := PushoverPayload{ + Token: config.APIToken, + User: config.UserKey, + Message: message, + Title: config.NotifyName, // Use notify_name as the title + } + + jsonData, err := json.Marshal(payload) + if err != nil { + // fmt.Printf("❌ [PUSHOVER] JSON marshal error: %v\n", err) + return err + } + + // fmt.Printf("📱 [PUSHOVER] Payload: %s\n", string(jsonData)) + // fmt.Printf("📱 [PUSHOVER] Sending POST request to Pushover API...\n") + + // Send the request to Pushover API + resp, err := http.Post("https://api.pushover.net/1/messages.json", "application/json", bytes.NewBuffer(jsonData)) + if err != nil { + // fmt.Printf("❌ [PUSHOVER] HTTP error: %v\n", err) + return err + } + defer resp.Body.Close() + + // Parse the response + var pushoverResp PushoverResponse + if err := json.NewDecoder(resp.Body).Decode(&pushoverResp); err != nil { + // fmt.Printf("❌ [PUSHOVER] Response decode error: %v\n", err) + return err + } + + // fmt.Printf("📱 [PUSHOVER] API response: %+v\n", pushoverResp) + + // Check if the request was successful + if pushoverResp.Status != 1 { + errorMsg := "Unknown error" + if len(pushoverResp.Errors) > 0 { + errorMsg = strings.Join(pushoverResp.Errors, ", ") + } + // fmt.Printf("❌ [PUSHOVER] API error: %s\n", errorMsg) + return fmt.Errorf("Pushover API error: %s", errorMsg) + } + + // fmt.Printf("✅ [PUSHOVER] Message sent successfully!\n") + return nil +} + +// SendServerNotification sends a server-specific notification via Pushover +func (ps *PushoverService) SendServerNotification(config *AlertConfiguration, payload *NotificationPayload, template *ServerNotificationTemplate, resourceType string) error { + message := ps.generateServerMessage(payload, template, resourceType) + return ps.SendNotification(config, message) +} + +// SendServiceNotification sends a service-specific notification via Pushover +func (ps *PushoverService) SendServiceNotification(config *AlertConfiguration, payload *NotificationPayload, template *ServiceNotificationTemplate) error { + message := ps.generateServiceMessage(payload, template) + return ps.SendNotification(config, message) +} + +// generateServerMessage creates a message for server notifications using server template +func (ps *PushoverService) generateServerMessage(payload *NotificationPayload, template *ServerNotificationTemplate, resourceType string) string { + var templateMessage string + + // Select appropriate template message based on status and resource type + switch strings.ToLower(payload.Status) { + case "down": + templateMessage = template.DownMessage + case "up": + templateMessage = template.UpMessage + case "warning": + templateMessage = template.WarningMessage + case "paused": + templateMessage = template.PausedMessage + default: + // Handle resource-specific messages + switch resourceType { + case "cpu": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreCPUMessage + } else { + templateMessage = template.CPUMessage + } + case "ram", "memory": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreRAMMessage + } else { + templateMessage = template.RAMMessage + } + case "disk": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreDiskMessage + } else { + templateMessage = template.DiskMessage + } + case "network": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreNetworkMessage + } else { + templateMessage = template.NetworkMessage + } + case "cpu_temp", "cpu_temperature": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreCPUTempMessage + } else { + templateMessage = template.CPUTempMessage + } + case "disk_io": + if strings.Contains(strings.ToLower(payload.Status), "restore") { + templateMessage = template.RestoreDiskIOMessage + } else { + templateMessage = template.DiskIOMessage + } + default: + templateMessage = template.WarningMessage + } + } + + // If no template message found, use a default + if templateMessage == "" { + templateMessage = ps.generateDefaultServerMessage(payload, resourceType) + } + + return ps.replacePlaceholders(templateMessage, payload) +} + +// generateServiceMessage creates a message for service notifications using service template +func (ps *PushoverService) generateServiceMessage(payload *NotificationPayload, template *ServiceNotificationTemplate) string { + var templateMessage string + + // Select appropriate template message based on status + switch strings.ToLower(payload.Status) { + case "up": + templateMessage = template.UpMessage + case "down": + templateMessage = template.DownMessage + case "maintenance": + templateMessage = template.MaintenanceMessage + case "incident": + templateMessage = template.IncidentMessage + case "resolved": + templateMessage = template.ResolvedMessage + case "warning": + templateMessage = template.WarningMessage + default: + templateMessage = template.WarningMessage + } + + // If no template message found, use a default + if templateMessage == "" { + templateMessage = ps.generateDefaultUptimeMessage(payload) + } + + return ps.replacePlaceholders(templateMessage, payload) +} + +// replacePlaceholders replaces all placeholders in the message with actual values +func (ps *PushoverService) replacePlaceholders(message string, payload *NotificationPayload) string { + // Replace basic placeholders + message = strings.ReplaceAll(message, "${service_name}", payload.ServiceName) + message = strings.ReplaceAll(message, "${server_name}", payload.ServiceName) // server_name maps to service_name + message = strings.ReplaceAll(message, "${status}", strings.ToUpper(payload.Status)) + message = strings.ReplaceAll(message, "${host}", ps.safeString(payload.Host)) + message = strings.ReplaceAll(message, "${hostname}", ps.safeString(payload.Hostname)) + + // Replace URL with fallback to host + url := ps.safeString(payload.URL) + if url == "N/A" && payload.Host != "" { + url = payload.Host + } + message = strings.ReplaceAll(message, "${url}", url) + + // Replace domain + message = strings.ReplaceAll(message, "${domain}", ps.safeString(payload.Domain)) + + // Replace service type + if payload.ServiceType != "" { + message = strings.ReplaceAll(message, "${service_type}", strings.ToUpper(payload.ServiceType)) + } else { + message = strings.ReplaceAll(message, "${service_type}", "N/A") + } + + // Replace region and agent info + message = strings.ReplaceAll(message, "${region_name}", ps.safeString(payload.RegionName)) + message = strings.ReplaceAll(message, "${agent_id}", ps.safeString(payload.AgentID)) + + // Handle numeric fields safely + if payload.Port > 0 { + message = strings.ReplaceAll(message, "${port}", fmt.Sprintf("%d", payload.Port)) + } else { + message = strings.ReplaceAll(message, "${port}", "N/A") + } + + if payload.ResponseTime > 0 { + message = strings.ReplaceAll(message, "${response_time}", fmt.Sprintf("%dms", payload.ResponseTime)) + } else { + message = strings.ReplaceAll(message, "${response_time}", "N/A") + } + + if payload.Uptime > 0 { + message = strings.ReplaceAll(message, "${uptime}", fmt.Sprintf("%d%%", payload.Uptime)) + } else { + message = strings.ReplaceAll(message, "${uptime}", "N/A") + } + + // Replace server monitoring fields + message = strings.ReplaceAll(message, "${cpu_usage}", ps.safeString(payload.CPUUsage)) + message = strings.ReplaceAll(message, "${ram_usage}", ps.safeString(payload.RAMUsage)) + message = strings.ReplaceAll(message, "${disk_usage}", ps.safeString(payload.DiskUsage)) + message = strings.ReplaceAll(message, "${network_usage}", ps.safeString(payload.NetworkUsage)) + message = strings.ReplaceAll(message, "${cpu_temp}", ps.safeString(payload.CPUTemp)) + message = strings.ReplaceAll(message, "${disk_io}", ps.safeString(payload.DiskIO)) + message = strings.ReplaceAll(message, "${threshold}", ps.safeString(payload.Threshold)) + + // Replace SSL certificate fields + message = strings.ReplaceAll(message, "${certificate_name}", ps.safeString(payload.CertificateName)) + message = strings.ReplaceAll(message, "${expiry_date}", ps.safeString(payload.ExpiryDate)) + message = strings.ReplaceAll(message, "${days_left}", ps.safeString(payload.DaysLeft)) + message = strings.ReplaceAll(message, "${issuer_cn}", ps.safeString(payload.IssuerCN)) + message = strings.ReplaceAll(message, "${issuer}", ps.safeString(payload.IssuerCN)) // alias + + // Replace error message - important for uptime services + message = strings.ReplaceAll(message, "${error_message}", ps.safeString(payload.ErrorMessage)) + message = strings.ReplaceAll(message, "${error}", ps.safeString(payload.ErrorMessage)) + message = strings.ReplaceAll(message, "${message}", ps.safeString(payload.Message)) + + // Replace time placeholders + message = strings.ReplaceAll(message, "${time}", payload.Timestamp.Format("2006-01-02 15:04:05")) + message = strings.ReplaceAll(message, "${timestamp}", payload.Timestamp.Format("2006-01-02 15:04:05")) + + return message +} + +// safeString returns the string value or "N/A" if empty +func (ps *PushoverService) safeString(value string) string { + if value == "" { + return "N/A" + } + return value +} + +// generateDefaultUptimeMessage creates a default uptime message with proper formatting +func (ps *PushoverService) generateDefaultUptimeMessage(payload *NotificationPayload) string { + message := fmt.Sprintf("Service %s is %s.", payload.ServiceName, strings.ToUpper(payload.Status)) + + // Build formatted details + details := []string{} + + // Add URL or host + if payload.URL != "" { + details = append(details, fmt.Sprintf("Host URL: %s", payload.URL)) + } else if payload.Host != "" { + details = append(details, fmt.Sprintf("Host: %s", payload.Host)) + } + + // Add service type + if payload.ServiceType != "" { + details = append(details, fmt.Sprintf("Type: %s", strings.ToUpper(payload.ServiceType))) + } + + // Add port if available + if payload.Port > 0 { + details = append(details, fmt.Sprintf("Port: %d", payload.Port)) + } + + // Add domain if available + if payload.Domain != "" { + details = append(details, fmt.Sprintf("Domain: %s", payload.Domain)) + } + + // Add response time + if payload.ResponseTime > 0 { + details = append(details, fmt.Sprintf("Response time: %dms", payload.ResponseTime)) + } else { + details = append(details, "Response time: N/A") + } + + // Add region info + if payload.RegionName != "" { + details = append(details, fmt.Sprintf("Region: %s", payload.RegionName)) + } + + // Add agent info + if payload.AgentID != "" { + details = append(details, fmt.Sprintf("Agent: %s", payload.AgentID)) + } + + // Add uptime if available + if payload.Uptime > 0 { + details = append(details, fmt.Sprintf("Uptime: %d%%", payload.Uptime)) + } + + // Add timestamp + details = append(details, fmt.Sprintf("Time: %s", payload.Timestamp.Format("2006-01-02 15:04:05"))) + + // Combine message with details + if len(details) > 0 { + message += "\n" + strings.Join(details, "\n") + } + + return message +} + +// generateDefaultServerMessage creates a default server message +func (ps *PushoverService) generateDefaultServerMessage(payload *NotificationPayload, resourceType string) string { + return fmt.Sprintf("Server %s (%s) status: %s", payload.ServiceName, payload.Hostname, strings.ToUpper(payload.Status)) +} + +// maskToken masks a token for logging purposes +func maskToken(token string) string { + if len(token) <= 8 { + return strings.Repeat("*", len(token)) + } + return token[:4] + strings.Repeat("*", len(token)-8) + token[len(token)-4:] +} \ No newline at end of file diff --git a/server/service-operation/notification/types.go b/server/service-operation/notification/types.go index 5ae8cb3..3a8a5d2 100644 --- a/server/service-operation/notification/types.go +++ b/server/service-operation/notification/types.go @@ -64,6 +64,8 @@ type AlertConfiguration struct { WebhookURL string `json:"webhook_url"` WebhookPayloadTemplate string `json:"webhook_payload_template"` NtfyEndpoint string `json:"ntfy_endpoint"` + APIToken string `json:"api_token"` + UserKey string `json:"user_key"` } // ServerNotificationTemplate represents a server notification template From 3d7172d9aa1f76fdb7fa8d0ab1eaac288040d2db Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Sun, 24 Aug 2025 16:58:52 +0700 Subject: [PATCH 45/46] =?UTF-8?q?=E2=8F=B3=20Update=20Project=20Developmen?= =?UTF-8?q?t=20Status=20and=20Progress?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - feat: Implement Pushover notification - fix(services-form): max retry attempts --- docs/DEVELOPMENT_ROADMAP.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DEVELOPMENT_ROADMAP.md b/docs/DEVELOPMENT_ROADMAP.md index c96a192..be995f4 100644 --- a/docs/DEVELOPMENT_ROADMAP.md +++ b/docs/DEVELOPMENT_ROADMAP.md @@ -84,12 +84,12 @@ The roadmap is divided into the following stages: - [ ] ✅ improve i18n and add new translations. @sqkkyzx [#132](https://github.com/operacle/checkcle/pull/132) - [ ] ✅ fix(incident): unify assigned user handling with fallback and UI update. By @ghotso [#142](https://github.com/operacle/checkcle/pull/142) - [ ] ✅ sync German translations across incident, maintenance, services & settings. By @ghotso [#141](https://github.com/operacle/checkcle/pull/141) - +- [ ] ✅ fix(services-form): max retry attempts. By @ghotso [#147](https://github.com/operacle/checkcle/pull/147) +- [ ] ✅ Add Pushover notifications - [ ] 🔧 Enhance the Data retention feature - [ ] 🔧 Improve docker agent for server monitoring - [ ] 🔧 Improve the Server Agent on Unraid - [ ] 🔧 Server Windows Agent -- [ ] 🔧 Add Pushover notifications - [ ] 🔧 More Uptime Service Type (HTTP keyword, HTTP json) - [ ] 🔧 Server support with cpu temperature - [ ] 🔧 Server upport with multiple disks/volume From 5f7c451fc0703afec9b1b16abbb924798d256db6 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Wed, 27 Aug 2025 17:24:02 +0700 Subject: [PATCH 46/46] feat: add Pushover notification channel schema --- .../public/upload/data/pb_schema_latest.json | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/application/public/upload/data/pb_schema_latest.json b/application/public/upload/data/pb_schema_latest.json index a5b4a04..79237a3 100644 --- a/application/public/upload/data/pb_schema_latest.json +++ b/application/public/upload/data/pb_schema_latest.json @@ -152,7 +152,8 @@ "webhook", "google_chat", "email", - "ntfy" + "ntfy", + "pushover" ] }, { @@ -309,6 +310,34 @@ "system": false, "type": "text" }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2074277355", + "max": 0, + "min": 0, + "name": "api_token", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1636223522", + "max": 0, + "min": 0, + "name": "user_key", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, { "hidden": false, "id": "autodate2990389176",